이번 네트워크 프로그래밍 과제로 선정된 snmp ! 그것도 snmp manager만들기!;;;
이때 까진 ftp 잘 해나가다가 왜 갑자기 바꾸냔 말이다 ㅡ_ㅡ+ 자료도 없는걸..ㅋ
.
.
SNMP란 Simple Network Management Protocol의 약자로 해석 그대로 간단한 네트워크 관리 프로토콜이다. 이렇게 듣고는 잘 이해가 안간다. 그래서 이놈을 자세히 일단 이놈은  TCP/IP의 응용계층 프로토콜로 디자인 되었고, 전송계층의 프로토콜로는 UDP를 사용한다. 이점이 좀 중요한듯!
아래 그림을 보면(ppt에서 훔쳐 왔음ㅋㅋ) snmp의 구성을 알수가 있다.

사용자 삽입 이미지

 한마디로 관리를 하게되는 Manager와 Manager의 관리를 받게 되는 Agent로 되어있다. 근데 아래 그림에서보면 Agent가 클라이언트로 되어있는데..저부분이 맘에 안든다. 돌아가는 구조를 보게되면!
어쨌든 위와 같은 구성으로 되어있고 우리가 만들어야 하는 부분은 위쪽에 있는 SNMP Manager이다.
.
.
 그럼 저놈을 만들려면 패킷이 어떻게 구성되고, 패킷의 헤더는 뭐고 등등 저놈이 쓰는 프토로콜의 패킷의 분석을 먼저 해야겠지만 그럼 흥미가 확 저하 됨을 고려해 일단 저놈이 하는 기능이 뭔지 부터 알아보자. 일단 여기저기 자료를 찾아보면 알겠지만 기본 4가지 명령 GET, SET, GETNEXT, WALK명령으로 Agent의 관리를 하게된다. 물론 위의 명령은 기본 명령이고 추가적으로 TRAP, BULK등도 있다.
 그리고 이놈을 알려면 MIB와 OID라는 것도 알아야 한다. 일단 MIB는 Management Information Base의 약자로 SNMP가 관리해야 할 네트워크 상의 요소 들을 관리가 용이하게 하기 위해 분류해 놓은것으로 이것은 트리 구조를 가진다.
사용자 삽입 이미지
 그럼 OID란 무엇이냐? 이것도 약자인데 Object IDentifier의 약자이다. 위의 그림에서 숫자가 보이는데 이것이 OID이다. 관리 객체들이 가지는 식별 id인 것이다. 예를 들어 dod를 나타내려면 1.3.6이라는 것이다. 일단 이녀석들에 대해 너무 완벽히 이해하려 하지말고 이런이런게 있구나 정도로만 하면 크게 어려움은 없다.
.
snmp를 위한 유용한 사이트로 아래 두개를 추천한다.
http://www.net-snmp.org/ - SNMP에 대한 설명, 지원하는 API, 간단한 기본 소스코드등이 있는 SNMP프로젝트 사이트
http://www.oid-info.com/ - MIB객체를 가져올때 쓰는 oid를 알아볼 수 있는 사이트
Posted by hazeyun
,