SNMP(Simple Network Management Protocol)는 TCP/IP 프로토콜을 사용하여 인터넷에서 장치를 관리하기 위한 프레임워크이다
인터넷 모니터링 및 유지 관리를 위한 일련의 기본 작업을 제공한다
SNMP는 관리자와 에이전트의 개념을 사용한다
즉, 관리자(일반적으로 호스트)는 에이전트 집합, 일반적으로 라우터 또는 서버를 제어하고 모니터링한다
SNMP는 몇 개의 관리자가 에이전트 집합을 제어하는 응용 프로그램 수준 프로토콜이다
즉, SNMP는 관리되는 장치의 물리적 특성과 기본 네트워킹 기술을 고려해서 관리 작업을 자유롭게 한다
다른 제조사의 라우터로 연결된 서로 다른 LAN과 WAN으로 구성된 다른 인터넷에서 사용할 수 있다
관리 작업을 수행하기 위해 SNMP는 SMI(Structure of Management Information) 및 MIB(Management Information Base)라는 두 가지 다른 프로토콜을 사용한다
즉, 그림과 같이 SNMP, SMI, MIB의 3가지 프로토콜의 협력을 통해 인터넷 관리가 이루어진다
관리자에서 에이전트로 또는 그 반대로 보낼 패킷의 형식을 정의한다
또한 결과를 해석하고 통계를 생성한다
교환된 패킷에는 개체(변수) 이름과 상태(값)가 포함된다
SNMP는 이러한 값을 읽고 변경한다
SNMP는 관리자와 에이전트 간에 교환되는 패킷 형식을 정의한다
SNMP 패킷에서 객체의 상태(변수 값)를 읽고 변경한다
SNMP를 사용하려면 규칙이 필요하다
객체 이름 지정 규칙이 필요하다
SMI는 객체 이름 지정, 객체 유형 정의(범위 및 길이 포함), 객체 및 값 인코딩 방법 표시에 대한 일반 규칙을 정의한다
SMI는 규칙을 정의하는 프로토콜이다
그러나 SMI는 규칙만 정의한다
엔티티에서 관리되는 개체의 수나 어떤 개체가 어떤 유형을 사용하는지 정의하지 않는다
SMI는 객체의 이름을 지정하고 해당 유형을 나열하는 일반 규칙 모음이다
객체와 유형의 연관은 SMI에서 수행하지 않는다
관리할 각 엔티티에 대해 MIB는 객체의 수를 정의하고 SMI에서 정의한 규칙에 따라 이름을 지정하고 이름이 지정된 각 객체에 유형을 연결한다
MIB는 데이터베이스와 유사한 각 엔터티에 대해 정의된 개체 집합을 만든다
MIB는 관리할 엔터티에서 명명된 개체, 해당 유형 및 서로 간의 관계 컬렉션을 만든다
management information structure는 네트워크 관리를 위한 구성 요소이다
기능은 다음과 같다
SMI는 SNMP에 대한 지침이다
객체를 처리하는 세 가지 속성인 이름, 데이터 유형 및 인코딩 방법을 강조한다
SMI에서는 각 관리 대상 개체(예: 라우터, 라우터의 변수 등)에 고유한 이름이 있어야 한다
객체의 이름을 전역적으로 지정하기 위해 SMI는 트리 구조를 기반으로 하는 계층적 식별자인 object identifier를 사용한다
SNMP에 의해 관리되는 모든 개체에는 개체 식별자가 제공된다
객체 식별자는 항상 1.3.6.1.2.1로 시작한다
MIB2(Management Information Base) 버전 2는 네트워크 관리에 사용되는 두 번째 구성 요소이다
각 에이전트에는 관리자가 관리할 수 있는 모든 개체의 모음인 고유한 MIB2가 있다
MIB2의 객체는 시스템, 인터페이스, 주소 변환, ip, icmp, tcp, udp, egp, transmission, snmp의 10가지 그룹으로 분류된다
이 그룹은 개체 식별자 트리의 mib-2 개체 아래에 있다
각 그룹에는 정의된 변수 및/또는 테이블이 있다
sys
if
at
ip
icmp
tcp
udp
snmp
다른 변수에 액세스하는 방법을 보여주기 위해 udp 그룹을 예로 사용한다
udp 그룹에는 4개의 단순 변수와 1개의 레코드(테이블) 시퀀스가 있다
그림은 변수와 테이블을 보여준다
이를 허용하는 응용 프로그램이다
SNMPv3는 GetRequest, GetNext-Request, GetBulkRequest, SetRequest, Response, Trap, InformRequest 및 Report의 8가지 유형의 프로토콜 데이터 단위(또는 PDU)를 정의한다
GetRequest
GetNextRequest
GetBulkRequest
Response
Trap
InformRequest
Report
PDU TYPE
에이전트(서버)는 포트 161에서 passive open을 발행한 다음 관리자(클라이언트)의 연결을 기다린다
관리자(클라이언트)는 임시 포트를 사용하여 active open을 발행
요청 메시지는 임시 포트를 소스 포트로 사용하고 포트 161을 목적지 포트로 사용하여 클라이언트에서 서버로 전송
응답 메시지는 포트 161을 소스 포트로 사용하고 임시 포트를 목적지 포트로 사용하여 서버에서 클라이언트로 전송
관리자(클라이언트)는 포트 162에서 passive open을 발행
그런 다음 에이전트(서버)의 연결을 기다린다
보낼 트랩 메시지가 있을 때마다 에이전트(서버)는 임시 포트를 사용하여 active open을 발행
이 연결은 서버에서 클라이언트로 단방향이다
SNMPv3에는 보안 및 원격 관리라는 두 가지 새로운 기능이 추가되었다
SNMPv3를 사용하면 관리자가 에이전트에 액세스할 때 하나 이상의 보안 수준을 선택할 수 있다
관리자는 메시지 인증, 기밀성 및 무결성을 허용하도록 보안의 다양한 측면을 구성할 수 있다
SNMPv3는 또한 관리자가 실제로 장치가 있는 장소에 있을 필요 없이 보안 원격 구성을 허용한다