SNMP Agent 설치 (Linux)

Download Report

Transcript SNMP Agent 설치 (Linux)

TERM PROJECT 설명 문서
Subject : SNMP Manager
NETWORK PROGRAMING
SNMP의 개요
 SNMP는 Simple Network Management
Protocol의 약자
 네트워크 관리를 위해 사용되는 간단한 프로
토콜
 1970년대 후반 네트워크 장치인 연결 정보
를 얻기 위해 ICMP가 사용되었으나, 네트워
크의 발전과 함께 지금은 기존의 프로토콜을
향상 시킨 SNMP가 사용
 SNMP는 응용계층에서 동작하고 전송 계층
프로토콜로는 UDP(User Datagram
Protocol)를 사용
2
계명대학교 네트워크 프로그래밍
SNMP의 구성
Management Station
SNMP Manager
SNMP Agent
SNMP Agent
SNMP Agent
SNMP Client
SNMP Manager는 정보를 수집하기 위해서 Request 메시지를 SNMP Agnet에게 전송하고
Agent는 Response 메시지를 Manager에게 전송한다.
3
계명대학교 네트워크 프로그래밍
SNMP의 구성
 SNMP는 Manager 와 Agent의 구조로 이루
어짐
 SNMP Agent는 각 네트워크 장치(대부분의
workstation과 bridge, router, switch, hub
등)에 포함되어 정해 놓은 규격에 따라 장치
의 정보를 수집하고 보관하는 역할
 SNMP Manager는 SNMP Agent에게 정보를
요청하여 그 정보를 가지고 네트워크를 관리
하는 역할
 SNMP Agent 는 Client 역할을 하게 되고
SNMP Manager는 Server 역할
4
계명대학교 네트워크 프로그래밍
MIB(Management Information Base)
 관리객체 : SNMP가 관리해야 할 네트워크 상의 요
소들
 MIB : 관리객체를 효과적으로 관리하기 위해서 이
를 분류한 것
 MIB에는 시스템 정보, 네트워크 사용량, 네트워크
인터페이스 정보 등이 포함
 MIB 객체들은 관리하기 편하도록 Tree 구조를 가짐
5
계명대학교 네트워크 프로그래밍
MIB의 구조
root
ccitt/itut(0)
iso(1)
joint-iso-ccitt(2)
org(3)
dod(6)
internet(1)
directory(1)
mgmt(2)
experimental(3)
private(4)
security(5)
mib(1)
system(1)
sysDescr(1)
0
...
interfaces(2)
at(3)
sysObjectID(2) sysUpTime(3)
0
...
0
...
ip(4)
icmp(5)
sysContact(4)
sysName(5)
0
...
0
...
tcp(6)
udp(7)
sysLocation(6) sysServices(7)
0
...
0
...
※ ()안의 숫자는 해당 관리객체의 번호를 나타냄
6
계명대학교 네트워크 프로그래밍
OID(Object IDentifier)
 OID : 관리 객체들이 가지는 유일하게 자신을 식별
할 수 있는 식별자
 각 MIB옆에 붙어 있는 숫자가 MIB의 OID번호
 예를 들어 ‘internet’의 OID값은 1.3.6.1
 ※ OID 표기법 (3종류의 표기법)
 internet OBJECT IDENTIFIER := { iso(1) org(3) dod(6)
internet(1) }
 internet OBJECT IDENTIFIER := { 1 3 6 1 }
 internet OBJECT IDENTIFIER := 1.3.6.1
7
계명대학교 네트워크 프로그래밍
SNMP 명령어
 SNMPGET : SNMP Manager에서 SNMP Agent로 특
정 정보를 요청하기 위해서 사용
System.sysDescr.0 에 저장되어 있는 시스템 사양 정보를 가져옴
8
계명대학교 네트워크 프로그래밍
SNMP 명령어
 SNMPGETNEXT : 기본적으로는 GET과 동일. SNMP
에서 각 정보들은 계층적 구조로 관리. 동일 계층의
다음 정보들을 가지고 오고 싶을 때 GETNEXT를 사
용.
MIB 트리에서 system.sysDescr.0 다음 노드에 저장되어 있는
System.sysObjectID.0 의 정보를 가져 옴
9
계명대학교 네트워크 프로그래밍
SNMP 명령어
 SNMPWALK : 기본적으로 GET 명령어를 확장한 형태.
트리 구조에서 그 바로 아래 자식 노드의 정보를 한번
에 가져 올 때 사용.
system 관리객체 그 하위에 있는 sysDescr,sysObjectID, sysUpTime,
sysContact, sysName, sysLocation, sysServices 의 정보를 한꺼번에
가져옴
10
계명대학교 네트워크 프로그래밍
SNMP 명령어
 SNMPSET : SNMP Manager에서 SNMP Agent로 특
정 값을 설정하기 위해서 사용
System.sysContact.0 관리객체의 정보를 ‘[email protected]’ 로 변경함
11
계명대학교 네트워크 프로그래밍
SNMP 명령어
 SNMPTRAP : SNMP Agent에서 통보해야 될 어떤 정
보가 발생했을 때(임계치를 넘는 네트워크 자원 사용
등) SNMP Manager에게 해당 상황을 알리기 위해서
사용.(SNMP Agent의 명령어)
12
계명대학교 네트워크 프로그래밍
Message 송/수신
SNMP 프로토콜은 기본적으로 어떤 정․보를 요청하는 메시지와
이에 대한 응답메시지로 이루어 지며 그 모습은 아래와 같음
13
계명대학교 네트워크 프로그래밍
SNMP Packet 구조
IP header
UDP
header
Version
Community PDU type Request ID Error status Error index
name
value
...
SNMP Message
UDP datagram
IP datagram
 Version : SNMP의 버전번호
 요즘은 Version 2c 를 많이 사용.
 Community : 인증, 접근방침, proxy의 특성을 정의하는
하나의 SNMP Agent와 여러 SNMP Manager 사이의 관계
 한 SNMP Agent는 여러 Community를 가질 수 있으나, 그
Agent내에서 Community 각각의 이름은 서로 달라야 함
 Community의 이름은 패스워드의 역할을 하므로, SNMP
Manager로부터의 모든 메시지는 이름을 포함해야 함
14
계명대학교 네트워크 프로그래밍
SNMP Packet 구조
GetRequest PDU
GetNextRequest PDU
SetRequest PDU
PDU type
Request ID
0
0
name
value
...
GetResponse PDU
PDU type
Request ID
Error status
Error index
name
value
...
name
value
...
Trap PDU
PDU
type
Enterpri
se
Agent
addr
Generic Specific
trap
trap
Time
stamp
Variable bindings
 GetRequest/GetNextRequest/SetRequest Packet 구조

PDU type : Get, GetNext, Response, Set 등 PDU 종류
( GetRequest : 0, GetNextRequest : 1, SetRequest : 2, GetResponse : 3, Trap : 4 )


15
Request ID : 순서번호로서, 요청과 응답을 일치시키는데 사용
3번째 필드와 4번째 필드는 사용하지 않으므로 0 으로 초기화
계명대학교 네트워크 프로그래밍
SNMP Packet 구조

GetResponse 구조

PDU type : Get, GetNext, Response, Set 등 PDU 종류 표시
( GetRequest : 0, GetNextRequest : 1, SetRequest : 2, GetResponse : 3 )



16
Request ID : 순서번호로서, 요청과 응답을 일치시키는데 사용
Error Status : SNMP Agent가 전송한 Error 종류
상태
이름
설명
0
noError
에러 없음
1
tooBig
SNMP Agent 가 받을 수 있는 메시지의 크기를 초과
2
noSuchName
존재하지 않는 변수가 지정
3
badValue
무효인 값이나 문맥이 포함
4
readOnly
읽기전용 정보를 변경하려 함
5
genErr
그 밖의 에러
Error index : 오류를 발생시킨 변수가 어는 것인가를 식별. 응답 만 사용.
계명대학교 네트워크 프로그래밍
SNMP Packet 구조
 Trap Packet 구조







17
PDUtype : PDU의 종류가 무엇인지 알림
enterprise : trap 을 생성하는 네트워크 관리 서브시스템임을 인식.
이 값은 시스템 그룹의 sysObjectID로부터 결정
agent-addr : trap을 생성하는 오브젝트의 IP 주소
generic-trap : 미리 정의된 trap 형식 중의 하나
specific-trap : 세분화된 trap의 성질 혹은 명세
time-stamp : 초기화 시간에서부터 trap이 발생한 시간까지를 기록
variable-binding : trap과 관련된 추가 정보. trap은 송신자의 상태를
알리는데 도움이 될 수 있는 추가의 변수 리스트를 포함
계명대학교 네트워크 프로그래밍
Generic trap 필드의 속성값







18
coldStart(0) : 송신하는 SNMP 개체는 에이전트의 구성이나 프로토콜 개
체의 구현이 변경되어지는 경우에 스스로 재초기화 할 수 있음. 전형적으
로 이것은 충돌이나 주요 결함에 의한 예기치 않은 재시작임.
warmStart(1) : 송신하는 SNMP 개체는 에이전트의 구성이나 프로토콜 개
체의 구현이 변경되어지는 경우와 관계없이 스스로 재초기화 할 수 있음.
전형적으로 이것은 정해진 재시작임.
linkDown(2) : 에이전트의 통신 링크 중 하나에 결함이 생겼음을 알림.
variable binding의 처음은 참조하고자 하는 인터페이스의 ifIndex의 이름
과 값임.
linkUp(3) : 에이전트의 통신 링크가 가동되었음을 알림. variable binding
의 처음은 참조하고자 하는 인터페이스의 ifIndex의 이름과 값을 말함.
authenticationFailure(4) : 송신하는 프로토콜 개체가 인증에 실패했다는
메시지를 받았음을 알림.
egpNeighborLoss(5) : EGP이웃이 사라졌거나 이웃 관계가 더 이상 존재
하지 않을 때 이를 알림
enterpriseSpecific(6) : enterpriseSpecific은 표준 Trap을 제외한 그 밖의
상태를 알리고자 하는데 사용.
계명대학교 네트워크 프로그래밍
SNMP Agent 설치 (Windows)


19
제어판 -> 프로그램 추가/제거 -> Windows 구성요소 추가/제거
관리 및 모니터링 도구를 선택한 후 다음 버튼을 클릭하면 자동으로 SNMP Agent
가 설치
계명대학교 네트워크 프로그래밍
SNMP Agent 설치 (Windows)



20
제어판 -> 관리도구 -> 서비스
SNMP Service의 상태가 ‘시작됨’ 상태인지 확인
SNMP Service 의 속성창을 선택
계명대학교 네트워크 프로그래밍
SNMP Agent 설치 (Windows)



21
SNMP Service 의 속성창을 선택
로그온 탭에서 ‘계정지정’ 을 선택하고 윈도우의 사용자 이름과 암호를 입력
에이전트 탭에서 임의의 연락처와 위치를 입력
계명대학교 네트워크 프로그래밍
SNMP Agent 설치 (Linux)



22
http://www.net-snmp.org/download.html 에서 알맞은 버전의 SNMP Release 를 다운
(리눅스 버전이 낮으면 너무 높은 버전의 snmp는 설치가 안될 수 있음)
혹은 리눅스의 패키지 관리자를 통해 설치가 가능
터미널에서 설치 설치도 가능 : yum – y install net-snmp
계명대학교 네트워크 프로그래밍
SNMP Agent 설치 (Linux)

정상적인 설치가 이루어 졌다면 설정 -> 서비스 를 통해 Snmp Agent가 제대로 돌
아 가고 있는지 확인 가능
23
계명대학교 네트워크 프로그래밍
SNMP Agent 설치 (Linux)



24
Snmpd의 설정을 변경 해주어야 함.
터미널에서 # find / -name snmpd.conf 를 통해 파일의 위치를 찾음.
문서 에디터 툴을 사용해 snmpd.conf 의 다음 부분을 아래와 같이 바꿈.
계명대학교 네트워크 프로그래밍
SNMP Agent 설치 (Linux)



25
Snmpd의 설정을 변경 해주어야 함.
터미널에서 # find / -name snmpd.conf 를 통해 파일의 위치를 찾음.
문서 에디터 툴을 사용해 snmpd.conf 의 다음 부분을 아래와 같이 바꿈.
계명대학교 네트워크 프로그래밍
Term Project 과제
















26
SNMP 기본 명령어 구현
관리할 Agent 등록하기
등록된 SNMP Agent의 리스트 보기
Agent 정보 받아오기
연결된 회선의 정보 받아오기
Agent의 정보 변경하기
Traffic Check 하기
사용중인 회선의 실시간 속도 보기
회선속도가 일정치 이하면 경고 메시지 출력하기
트래픽이 일정 수치 이상/이하가 되면 경고 메세지 출력하기
일정시간 동안의 회선속도 평균 저장하기
일정시간 동안의 Traffic 평균 저장하기
각 Agent들의 통신상태 표시하기
회선속도와 트래픽에 대한 로그파일 기록보기
API 를 사용하지 않고 PDU 생성 (고급기능)
Specific Trap 을 생성하는 Client 구현(고급기능)
계명대학교 네트워크 프로그래밍
Term Project 과제
 1. SNMP 기본 명령어 구현
- SNMPGET, SNMPGETNEXT, SNMPSET,
SNMPWALK 4가지의 기본 명령어를
구현 할 수 있어야 함.
27
계명대학교 네트워크 프로그래밍
Term Project 과제
 2. 관리할 Agent 등록하기
- 3개 이상의 Agent를 등록해서 관리 할 수 있도록
하여야 함.
 사용 예
======================== Agent 관리 =======================
(A)dd, (L)ist, (I)nfo, (M)odify, (T)raffic, (S)peed, a(V)erage, stat(U)s, l(Og, s(E)tup, (Q)uit
Command> A
[A]
(L)ist, (A)dd, (D)elete, (B)ack
Command> A 123.123.123.1
[A IP주소]
127.0.0.1 이 등록 되었습니다.(관리번호1)
Command> D 1
[D AGENT관리번호(0번일 경우 전체 Agent를 삭제)]
127.0.0.1 이 삭제 되었습니다.
28
계명대학교 네트워크 프로그래밍
Term Project 과제
 3. 등록된 SNMP Agent의 리스트 보기
- 등록된 SNMP Agent의 리스트를 목록으로 볼 수 있
어야 함.
 사용 예
======================== Agent 관리 =======================
(A)dd, (L)ist, (I)nfo, (M)odify, (T)raffic, (S)peed, a(V)erage, stat(U)s, l(O)g, s(E)tup, (Q)uit
Command> L
[L]
현재 등록된 SNMP Agent
IP주소
관리번호
123.123.123.1
1
123.123.123.2
2
123.123.123.3
3
29
계명대학교 네트워크 프로그래밍
Term Project 과제
 4. Agent 정보 받아오기
- 등록된 에이전트들의 시스템 정보를 받아 올 수 있
어야 함. (시스템 이름, 시스템 사양, 시스템 위치, 관
리자 정보 등)
 사용 예
======================== Agent 관리 =======================
(A)dd, (L)ist, (I)nfo, (M)odify, (T)raffic, (S)peed, a(V)erage, stat(U)s, l(O)g, s(E)tup, (Q)uit
Command> I
(I)nterface, (S)ystem
Command> S 1
[I]
[S AGENT관리번호(0번일 경우 전체 Agent를 출력)]
123.123.123.1 시스템 정보
시스템 이름 : Test Agent
시스템 사양 : Linux localhost. Localdomain 2.6.24.3-50 fc8 …
시스템 위치 : Networdk Lab.
관리자 정보 : [email protected]
30
계명대학교 네트워크 프로그래밍
Term Project 과제
 5. 연결된 회선의 정보 받아오기
- 에이전트들이 사용하는 회선에 대한 기본 정보를
받아 올 수 있어야 함. (회선속도, MTU 등)
 사용 예
======================== Agent 관리 =======================
(A)dd, (L)ist, (I)nfo, (M)odify, (T)raffic, (S)peed, a(V)erage, stat(U)s, l(O)g, s(E)tup, (Q)uit
Command> I
(I)nterface, (S)ystem
Command> I 1
[I]
[I AGENT관리번호(0번일 경우 전체 Agent를 출력)]
123.123.123.1 회선 정보
Maximum Transmission Unit is 1500 Byte.
사용하는 회선은 100Mbps 회선입니다.
31
계명대학교 네트워크 프로그래밍
Term Project 과제
 6. Agent의 정보 변경하기
– 에이전트들의 시스템 정보 중 몇 개를 변경 할 수
있어야 함. (시스템 이름, 시스템 위치, 관리자 정보)
 사용 예
======================== Agent 관리 =======================
(A)dd, (L)ist, (I)nfo, (M)odify, (T)raffic, (S)peed, a(V)erage, stat(U)s, l(O)g, s(E)tup, (Q)uit
Command> M 1
[M AGENT관리번호(0번일 경우 전체 Agent를 출력)]
[수정할 항목]
(1) sysName (2) sysLocation (3) sysContact
Command> 1
변경할 값을 입력하세요 : TestAgent
sysName 의 값이 TestAgent 로 변경되었습니다.
32
계명대학교 네트워크 프로그래밍
Term Project 과제
 7. Traffic Check 하기
- Agent가 송수신 하는 데이터의 트래픽을 그래프로
표시 할 수 있어야 함.
 사용 예
======================== Agent 관리 =======================
(A)dd, (L)ist, (I)nfo, (M)odify, (T)raffic, (S)peed, a(V)erage, stat(U)s, l(O)g, s(E)tup, (Q)uit
Command> T 1
[T AGENT관리번호(0번일 경우 전체 Agent를 출력)]
127.0.0.1 의 트래픽
[12:00:00] |============= (1000 packets)
[12:00:30] |================= (1200 packets)
[12:01:00] |=============== (1100 packets)
[12:01:30] |=============================== (2000 packets)
[12:02:00] |============= (1000 packets)
33
계명대학교 네트워크 프로그래밍
Term Project 과제
 8. 사용중인 회선의 실시간 속도 보기
- Agent의 속도를 실시간으로 표시해줄 수 있어야 함.
 사용 예
======================== Agent 관리 =======================
(A)dd, (L)ist, (I)nfo, (M)odify, (T)raffic, (S)peed, a(V)erage, stat(U)s, l(O)g, s(E)tup, (Q)uit
Command> S 1
[S AGENT관리번호(0번일 경우 전체 Agent를 출력)]
123.123.123.1 의 현재 통신 속도
[12:00:00] |========== (10 bps)
[12:00:30] |============ (12 bps)
[12:01:00] |=============== (15 bps)
[12:01:30] |========== (10 bps)
[12:02:00] |=========== (11 bps)
34
계명대학교 네트워크 프로그래밍
Term Project 과제
 9. 회선속도가 일정 수치 이하면 경고 메시지 출력하
기
- 회선속도가 일정 수치 이하로 떨어지면 화면에 회
선속도 저하에 대한 경고 메시지를 출력해 줄 수 있어
야 함. 이 때 일정 수치는 사용자로부터 입력 받을 수
있어야 함.
 사용 예
======================== Agent 관리 =======================
(A)dd, (L)ist, (I)nfo, (M)odify, (T)raffic, (S)peed, a(V)erage, stat(U)s, l(O)g, s(E)tup, (Q)uit
Command>
[경고] ERROR_LOW_SPEED 127.0.0.1 “에이전트의 회선상태가 양호하지
못합니다.”
Command> E S 1
[E S or T Agent관리번호]
회선속도 하한을 입력하시오(bps)> 200
35
계명대학교 네트워크 프로그래밍
Term Project 과제
 10. 트래픽이 임계치 이상이 되면 경고 메세지 출력하
기
– 회선의 트래픽이 일정 수치 이상이 되거나 이하가
되면 경고 메시지를 출력해 줄 수 있어야 함. 이때 일
정 수치는 사용자로부터 입력 받을 수 있어야 함.
 사용 예
======================== Agent 관리 =======================
(A)dd, (L)ist, (I)nfo, (M)odify, (T)raffic, (S)peed, a(V)erage, stat(U)s, l(O)g, s(E)tup, (Q)uit
Command>
[경고] ERROR_HGH_TRAFFIC 127.0.0.1 “에이전트의 트래픽이 너무 많습니다.”
Command> E T 1
[E S or T Agent관리번호]
회선트래픽 임계치를 입력하시오(packets)> 10000
36
계명대학교 네트워크 프로그래밍
Term Project 과제
 11. 일정시간 동안의 회선속도 평균 저장하기
– 각 Agent들의 최근 5분 동안의 해당 링크의 평균 속
도가 얼마인지 출력해 줄 수 있어야 함.
 사용 예
======================== Agent 관리 =======================
(A)dd, (L)ist, (I)nfo, (M)odify, (T)raffic, (S)peed, a(V)erage, stat(U)s, l(O)g, s(E)tup, (Q)uit
37
Command> V
(S)peed, (T)raffic
Command> S
[V]
[123.123.123.1]
[123.123.123.2]
[123.123.123.3]
12.5 Mbps 의 평균 전송률
15.53 Mbps 의 평균 전송률
7.5 Mbps 의 평균 전송률
[S Agent관리번호(0번일 경우 전체 Agent를 출력)]
계명대학교 네트워크 프로그래밍
Term Project 과제
 12. 일정시간 동안의 Traffic 평균 저장하기
– 각 Agent들의 최근 5분 동안의 해당 링크의 평균 트
래픽이 얼마인지 출력해 줄 수 있어야 함.
 사용 예
======================== Agent 관리 =======================
(A)dd, (L)ist, (I)nfo, (M)odify, (T)raffic, (S)peed, a(V)erage, stat(U)s, l(O)g, s(E)tup, (Q)uit
38
Command> V
(S)peed, (T)raffic
Command> T
[V]
[123.123.123.1]
[123.123.123.2]
[123.123.123.3]
125 packets 의 평균 전송량
654 packets 의 평균 전송량
1002 packets 의 평균 전송량
[T Agent관리번호(0번일 경우 전체 Agent를 출력)]
계명대학교 네트워크 프로그래밍
Term Project 과제
 13. 각 SNMP Agent들의 통신상태 표시하기
– 각 SNMP Agent들의 통신 상태를 정상, 과부하,
coldStart, warmStart, linkDown, linkUp 6가지 상태
가 표시되어야 함(평균 5분간의 상태를 이용).
 사용 예
======================== Agent 관리 =======================
(A)dd, (L)ist, (I)nfo, (M)odify, (T)raffic, (S)peed, a(V)erage, stat(U)s, l(O)g, s(E)tup, (Q)uit
39
Command> U
[U]
[123.123.123.1]
[123.123.123.2]
[123.123.123.3]
전송상태 [정상]
전송상태 [정상]
전송상태 [linkDown]
계명대학교 네트워크 프로그래밍
Term Project 과제
 14. 회선속도와 트래픽에 대한 로그 기록보기
– 회선속도와 트래픽의 평균 기록에 대한 로그를
볼 수 있어야 함.
 사용 예
======================== Agent 관리 =======================
(A)dd, (L)ist, (I)nfo, (M)odify, (T)raffic, (S)peed, a(V)erage, stat(U)s, l(O)g, s(E)tup, (Q)uit
Command> L 1
[L Agent관리번호]
123.123.123.1 의 로그 기록
[12:00:00] 125 bytes 의 평균 전송량, 12.5 Mbps 의 평균 전송률
[12:05:00] 200 bytes 의 평균 전송량, 10 Mbps 의 평균 전송률
[12:10:00] 15 bytes 의 평균 전송량, 11.5 Mbps 의 평균 전송률
[12:15:00] 452 bytes 의 평균 전송량, 15 Mbps 의 평균 전송률
[12:20:00] 620 bytes 의 평균 전송량, 12 Mbps 의 평균 전송률
[12:25:00] 230 bytes 의 평균 전송량, 12.3 Mbps 의 평균 전송률
[12:30:00] 500 bytes 의 평균 전송량, 11 Mbps 의 평균 전송률
40
계명대학교 네트워크 프로그래밍
Term Project 과제
 15. API 를 사용하지 않고 PDU 생성
(고급기능)
- 각 메시지의 PDU 형식을 참고하여 직접
PDU 를 생성하는 코드를 구현.
41
계명대학교 네트워크 프로그래밍
Term Project 과제
 16. Specific Trap 을 생성하는 Client 구현
(고급기능)
- 자신의 과부하 상태를 검사해서 과부하 발생
시 Trap PDU 의 Specific trap 필드에 특정 값
을 넣고 SNMP Manager로 송신하는 간단한
Client 를 구현.
42
계명대학교 네트워크 프로그래밍
참조 사이트
 http://www.oid-info.com
- MIB 객체들에 대한 설명 및 OID
 http://www.net-snmp.org
- Snmp Agent 제공 및 Manager 구현에 필요한
API 제공.
43
계명대학교 네트워크 프로그래밍
제출물
 소스코드, 실행파일, 실행환경 설명서, 설계
서 -> CD로 제출
 소스코드, 실행파일, 실행환경 설명서, 설계
서는 출력해서 제출
 소스코드는 자신의 리눅스 계정에 업로드
 팀 구성원이름, 전화번호, 이메일을 반드시
기입할 것
44
계명대학교 네트워크 프로그래밍