본문 바로가기

Network Management System

SNMP 개요

SNMP(Simple Network Management Protocol)는 망관리 시스템에서 가장 많이 사용되는 Management Protocol이다. 전 세계 Network 장비의 70% 이상이 SNMP를 지원하고 있고, 역사가 깊은 만큼 이미 검증된 다양한 툴과 라이브러리가 있어 개발, 검증이 용이하다. 

반면, GET, SET, NOTIFICATION의 단순한 구조는 표준화가 용이하지 않고 다양한 OAM 기능을 구현하는데는 어려움이 있다. RFC로 정의된 많은 표준 MIB이 있고 대형 장비업체들이 기본적으로 지원하고는 있지만, 운용에 필요한 절대다수는  MIB은 Private MIB으로 지원하고 있고, 주요 기능은 Vendor Specific 한 경우가 많다.

이로 인해 Service Provider들은 표준화된 운용 방안을 요구하게 되었고 NETCONF 등이 등장하게 된 배경이 되었다. 그럼에도 불구하고 SNMP는 여전히 가장 광범위하게 사용되는 Protocol이기 때문에 Management System을 이해하는 것에는 필수적이라 할 수 있겠다.

이 글에서는 SNMP에 관한 전반적인 내용을 알아보려 한다. 

 

1. SNMP의 역사

1980년대 TCP/IP를 기반으로 하는 Internet이 등장함에 따라 Management에 관한 표준화가 요구되었고 IETF에서 SNMP가 소개되었다. Get,Set, Trap이라는 Simple한 Operation을 정의하고 그것을 목표로 했으나 실제는 그와 반대로 상당히 복잡한 구현이 필요한 프로토콜이었고 운용에 제약이 많았다. 아무튼 1988년 RFC1067에서 처음으로 SNMP의 개념이 등장했다.  * RFC1067 (A Simple Network Management Protocol)

 

SNMP Version 1은 RFC 1157(1988년)에 본격적으로 정의된다. 기본적인 SNMP의 개념이 모두 정의되어 있는 표준이다.

이후 SNMP Version 2는 RFC 1441 등이 1990년대에 등장하면서 지금의 골격을 갖추게 된다.

SNMP Version 3는 보안에 대한 요구가 높아짐에 따라 2000년 대에 등장하게 된다. 10년전만해도 SNMPv2c만 지원해도 특별한 문제가 없었지만 최근에는 SNMPv3가 필수로 요구되고 있다.

 

2. SNMP 기본 개념

SNMP는 Manager와 Agent 사이의 통신으로 이루어진다. Manager는 NMS나 EMS와 같은 Management System에 올라가는 기능으로 Get, Set의 주체이고 Notification(Trap)의 수신자이다. Agent는 Network Device에 구현되어 Manager의 Get, Set Operation에 응답하는 기능을 수행한다. Event가 발생할 경우 Trap으로 관련 정보를 Manager로 전달한다.

  • Get: Manager가 Agent에 값을 조회한다.
  • Set: Manager가 Agent에 값을 설정한다.
  • Trap(Notification): Agent가 비동기 방식으로 정보를 Manager로 전달한다.
  • MIB(Management Information Base): SNMP로 주고 받을 정보를 정의

 

3. SNMP PDU

SNMP는 UDP로 Data를 주고 받는다. UDP의 특성상 전송에 대한 신뢰성은 보장하지 않지만, Session관리를 하지 않기 때문에 간단한 면이 있다. 

Default Port로 161, 162를 사용하는데, 161은 Get/Set, 162는 Trap 전송용으로 사용한다.

 

  • SNMP Packet
IP header UDP header version community PDU-Type request-id Error-status error-index variable bindings

 

<참고>

MIB(Wiki 정의)

A management information base (MIB) is a database used for managing the entities in a communication network. Most often associated with the Simple Network Management Protocol (SNMP), the term is also used more generically in contexts such as in OSI/ISO Network management model. While intended to refer to the complete collection of management information available on an entity, it is often used to refer to a particular subset, more correctly referred to as MIB-module.

Objects in the MIB are defined using a subset of Abstract Syntax Notation One (ASN.1) called "Structure of Management Information Version 2 (SMIv2)" RFC 2578. The software that performs the parsing is a MIB compiler.

 

SNMP Port Number

SNMP는 UDP Packet을 사용한다. SNMP에서 사전 정의된 포트는 아래의 두가지이다.

  • Port 161: GET/SET용 포트로 사용한다. 
  • Port 162: TRAP용 포트로 사용한다.

'Network Management System' 카테고리의 다른 글

RSyslog Configuration 설정  (0) 2021.02.13
Rsyslog 개요  (0) 2021.02.13
RSYSLOG란 무엇인가  (0) 2021.02.13
FCAPS: NMS EMS의 주요 기능  (0) 2021.02.05
NMS EMS 개요, 정의  (0) 2021.02.02