SNMP(Simple Network Management Protocol)는 TCP/IP 프로토콜 그룹을 이용하여 인터넷상에서 장치를 관리하기 위한 기반구조이다. 이것은 인터넷을 감시하고 관리하기 위한 기본적인 운영을 제공한다. SNMP는 관리자와 대행자의 개념을 사용한다. 일반적으로 호스트는 여러 대행자(일반적으로 라우터)를 제어하고 감시한다. SNMP는 일부 관리지국이 대행자들을 제어하는 응용 레벨 프로토콜이다. 프로토콜은 서로 다른 제조업자들에 의해 만들어진 장치를 모니터하기 위해 응용 레벨로 설계되었고, 서로 다른 물리적인 네트워크에서 설치된다. 다른 말로 하면, SNMP는 관리되는 장비들의 물리적인 특성과 기존 네트워킹 기술들에 구애받지 않고 자유롭게 관리작업을 할 수 있게 한다. 이것은 서로 다른 제조업자들에 의해 만들어진 라우터와 게이트웨이에 연결된 서로 다른 LAN과 WAN으로 구성된 네트워크 간 연결에서 사용될 수 있다.
관리자(manage)라 불리는 관리지국은 SNMP 클라이언트 프로그램을 실행하는 호스트이고, 대행자(agent)라 불리는 관리되는 지국은 SNMP 프로그램을 실행하는 라우터나 호스트이다. 관리는 관리자와 대행자의 간단한 상호대화를 통해 이루어진다. 대행자는 데이터베이스에 성능정보를 가지고 있다. 관리자는 데이터베이스에 들어 있는 값을 액세스하게 된다. 예를 들면, 라우터는 수신되거나 포워드되는 패킷수를 해당변수에 저장할 수 있다. 관리자는 라우터가 혼잡한지 아닌지를 보기 위해 이들 2개의 변수값을 비교한다. 또한 관리자는 라우터가 어떤 동작을 수행하도록 할 수 있다. 예를 들면, 라우터는 정기적으로 언제 자신을 재부팅해야 되는지를 보기 위해 재부팅 카운터의 값을 확인할 수 있다. 만약 카운터 값이 0이면 자신을 재부팅시킨다. 관리자는 특정 시간에 원격으로 대행자를 재부팅하기 위하여 이 기능을 사용한다. 이것은 단순하게 카운터 값이 0이 되도록 하는 패킷을 보내는 것이다. 또, 대행자는 관리작업에 도움이 된다. 대행자에서 실행되는 서버 프로그램은 환경을 검사할 수 있고, 무언가 예외적인 상황이 보고되면 관리자에게 경고 메시지(trap이라는)를 보낼 수 있다. 다시 말하면, SNMP를 이용한 관리는 다음 세 가지 기본 아이디어를 기반으로 한다.
1. 관리자는 대행자의 동작을 반영하는 정보를 요청함으로써 대행자를 확인할 수 있다.
2. 관리자는 대행자 데이터베이스에 들어 있는 값을 재설정함으로써 대행자가 작업을 수행하도록 강요할 수 있다.
3. 대행자는 비정상적인 상황을 관리자에게 경고함으로써 관리작업에 도움을 줄 수 있다.
SNMP는 GetRequest, GetNextRequest, SetRequest, GetResponse, Trap이라는 5개의 메시지를 정의한다.
■ GETRequest : GetRequest 메시지는 변수의 값을 검색하기 위해 관리자(클라이언트)에서 대행자(서버)로 보내진다.
■ GETNextRequest : GetNextRequest 메시지는 변수의 값을 검색하기 위해 관리자에서 대행자로 보내진다. 검색된 값은 메시지에 정의된 깍체 뒤에 있는 객체의 값이다. 이것은 대부분 표에서개체들의 값을 얻기 위해 사용된다. 만약 관리자가 개체의 인덱스를 알지 못한다면,값을 검색할수 없다. 그러나, 이것은 GetNextRequest를 사용할 수 있고 객체를 정의할 수 있다.
■ GETResponse : GetResponse 메시지는 GetRequest와 GetNextReques떼 대한 응답으로 대행자가 관리자에게 보낸다. 이것은 관리자에 의해 요청된 변수들의 값을 포함한다.
■ SetRequest : SetRequest메시지는 변수의 값을 저장하기 위해 관리자가 대행자에게 보낸다.
■ Trap : Trap 메시지는 이벤트를 보고하기 위해 대행자가 관리자에게 보낸다. 만약 대행자가 재부팅된다면, 이것은 재부팅 시간을 관리자에게 통보하고 보고한다.
인터넷에서 관리는 SNMP 프로토콜뿐만 아니라 SNMP와 상호 동작하는 프로토콜을 사용함으로써 이루어진다. 최상위 레벨에서, 관리는 2개의 프로토콜인 SMI(structure of management information)와 MIB(management information base)를 통해 이루어진다. SNMP는 작업을 하기위해 이들 2개의 프로토콜에 의해 제공된 서비스를 이용한다. 다른 말로 하면, 관리는 SMI, MIB, 그리고 SNMP를 통한 상호협력으로 이루어진다. 이들 세 가지는 ASN.1(abstract syntax notation 1), BER(basic encoding rules)과 같은 다른 프로토콜을 사용한다.
SMI는 네트워크 관리에 사용되는 구성요소이다. 이의 기능은 객체에 이름을 지정하고, 객체에저장될 수 있는 데이터 유형을 정의하며.네트워크를 통한 전송을 위해 데이터를 부호화하는 방법을 알려준다.
MIB(management information base)는 네트워크 관리를 위해 사용되는 두번째 구성요소이다. 각 대행자는 자신의 MIB를 가지고 있다. 이것은 관리자가 관리할 수 있는 모든 객체의 집합이다. MIB에서 객체는 8개의 서로 다른 그룹인 시스템, 인터페이스, 주소변환, ip, icmp, top, udp, 그리고 egp으로 분류된다. 이들 그룹은 객체식별자 트리의 MIB 객체에 속해있다. 각 그룹은 규정된 변수 그리고/또는 표를 갖는다.
[출처] SNMP 매니지먼트|작성자 e1t1