네트워크는 어렵다? 아니! 한드림넷을 만나면 즐겁다! 10장으로 끝내는 네트워크 기초 다지기, Network is Fun! 열일곱번째 주제는 SNMP입니다.
Network is Fun! SNMP(Simple Network Management Protocol)
SNMP란 Simple Network Management Protocol의 약자로 네트워크 장비들로부터 필요한 정보를 가져와 장비 상태를 모니터링하고, 네트워크 장비의 전체 상황을 감시하는 네트워크 관리 프로토콜입니다.SNMP는 TCP/IP 계층 중 응용 계층에서 이용되는 프로토콜입니다.
이러한 SNMP는 어떠한 배경으로 등장하게 되었을까요? SNMP가 등장하기 이전에 일반적으로 사용되는 네트워크 관리는 ICMP(Internet Control Message Protocol)였습니다. ICMP는 TCP/IP의 네트워크 계층의 프로토콜로, 운영체제에 관계없이 사용할 수 있는 간단한 프로토콜이었습니다. ICMP를 이용해서 네트워크로 연결된 각각의 호스트 연결 여부, 응답 시간 등의 간단한 정보를 얻을 수 있었습니다.
그러나 인터넷 사용 인구가 늘어나면서 네트워크 장비가 많아지고, 구성이 복잡해짐에 따라 ICMP만을 가지고는 네트워크 관리를 효율적으로 할 수 없게 되었습니다. 때문에 구현이 쉽고 간단한 표준화 작업이 필요해지면서, SNMP가 등장하게 되었습니다.
SNMP의 기능은 장비 관리, 성능 관리, 네트워크 구성 관리의 3가지 형태로 이루어집니다.
SNMP 구성 요소를 그림으로 살펴보면 Manager, Agent, MIB 등이 있습니다. Manager는 Agent에게 관리용 메시지를 요청하고, 요청 받은 Agent가 응답을 보내게 되면 Manager는 데이터를 받아서 분석하고 장애관리 등을 위한 데이터베이스인 MIB을 구축합니다.
MIB에 대해 좀 더 자세히 알아보도록 하겠습니다. 관리 장치에 대한 정보가 집합되어 있는 데이터베이스인 MIB은 Management Information Base의 약자입니다. MIB은 관리되는 정보들을 관리하기 편하도록 특성별로 계층을 나누어 관리하는 Tree 구조로 구성되어 있습니다. 각각의 관리 객체들은 OID라는 번호를 통해 식별하고 접근하여 관리합니다.
이러한 MIB 객체 테이블이 구성되어 있는 상황에서만 SNMP Manager와 Agent가 서로 메시지를 주고 받을 수 있는데요. 먼저 메시지 교환에 필요한 명령어는 Get, Set, Trap이 있으며 각각의 역할은 그림과 같습니다.
앞에서 살펴본 Get, Set, Trap 명령어로 Agent와 Clinet간의 메시지 교환이 이루어집니다.
그렇다면 요청하고 응답하는 메시지의 형식은 어떻게 이루어져 있을까요?
위의 그림처럼 메시지 형식은 Version, Community Name, SNMP PDU로 나뉘어집니다.