SNMP는 Simple Network Management Protocol(간단 네트워크 관리 프로토콜)의 약자입니다. 네트워크 관리자가 스위치, 프린터, IP폰 등 네트워크에 연결된 다양한 장비(SNMP 에이전트라고도 함)로부터 정보를 수집할 때 사용하는 클라이언트-서버 방식의 프로토콜입니다.
참고로 윈도우 10에서는 SNMP가 기본적으로 활성화되어 있지 않으며, 마이크로소프트는 대신 CIM(Common Information Model, 공통 정보 모델)을 사용할 것을 권장합니다.
네트워킹에서 SNMP란 무엇을 의미할까?
SNMP는 클라이언트-서버 구조의 프로토콜입니다. 즉, 네트워크 관리자가 매니저(manager)라고 불리는 SNMP 서버를 설치하고 설정해야 하며, 이 서버가 네트워크상의 SNMP 장비들에 대한 상세 정보를 지속적으로 수집합니다.
SNMP 서버는 모든 SNMP 에이전트의 정보를 수집하고 저장합니다. 이 네트워크 관리 프로토콜을 활용하면 불필요한 네트워크 트래픽을 유발하지 않으면서도 장비들의 실시간 정보를 손쉽게 확보할 수 있습니다.
SNMP 에이전트란 네트워크에 연결되어 SNMP 기반 모니터링을 지원하는 장비를 말합니다. 대표적인 SNMP 에이전트는 다음과 같습니다.
- 컴퓨터
- 프린터
- 네트워크 스위치
- 무선 액세스 포인트
- VoIP 전화기
- IP 타임클록(출퇴근 기록기)
SNMP의 작동 원리
각 SNMP 에이전트는 제조사에 따라 다르지만, 네트워크 관리자가 SNMP 명령어로 접근해 정보를 조회할 수 있는 객체(object) 목록을 보유하고 있습니다. 이 데이터는 SNMP 서버에서 다음과 같은 트리 구조로 체계화됩니다.
- MIB(Management Information Base, 관리 정보 베이스): 프린터나 컴퓨터처럼 특정 유형의 장비들을 분류·정리하는 최상위 그룹입니다.
- 노드(Node): 각 MIB 내부에는 네트워크상의 개별 장비를 나타내는 노드들이 존재합니다.
- OID(Object Identifier, 객체 식별자): MIB 내부의 개별 노드에 접근하기 위해 관리자가 사용하는 고유 주소입니다. OID를 통해 특정 노드에 대한 정보를 요청하는 명령을 내릴 수 있습니다.
SNMP 서버로 장비를 모니터링하기 위해 필요한 조건은 단 하나, 해당 장비가 SNMP 프로토콜과 호환된다는 것뿐입니다. VoIP 전화기나 프린터처럼 많은 장비는 출고 시 SNMP가 기본 활성화되어 있지만, 윈도우 10 PC처럼 수동으로 활성화해야 하는 장비도 있습니다. 자세한 방법은 해당 장비의 사용 설명서를 참고하세요.
SNMP 트랩(SNMP Trap)이란?
SNMP 프로토콜의 가장 큰 장점은 네트워크 대역폭을 거의 소모하지 않는다는 점입니다. 이것이 가능한 이유는 바로 트랩(trap)이라는 메커니즘 덕분입니다.
일반적인 클라이언트-서버 시스템에서는 중앙 데이터베이스를 갱신할 때마다 서버가 네트워크상의 수많은 장비에 정보를 요청(폴링, polling)해야 합니다. 그러나 대부분의 네트워크는 방대한 양의 정보를 제공하는 수많은 장비로 구성되어 있기 때문에, 서버가 모든 장비를 끊임없이 폴링하는 것은 비현실적이며 네트워크 성능을 크게 저하시킬 수 있습니다.
대신 네트워크상의 모든 SNMP 장비는 요청받지 않아도 자동으로 정보를 트랩(trap)에 담아 SNMP 매니저로 전송합니다. SNMP 클라이언트-서버 모델에서 일반적으로 이루어지는 통신 흐름은 다음과 같습니다.
- SNMP 에이전트가 이벤트를 트랩으로 감지하여 요청 없이 자발적으로 SNMP 매니저에 업데이트를 전송합니다.
- SNMP 매니저는 트랩 이벤트에 대해 추가 정보를 요청하는 후속 요청을 자동으로 보낼 수 있습니다.
- 네트워크 관리자는 SNMP 매니저를 통해 문제 해결이나 관리 목적으로 장비를 수동으로 폴링할 수 있습니다.
이러한 방식 덕분에 네트워크 성능에 부담을 주지 않으면서도 대량의 정보를 모니터링하고 관리할 수 있습니다.
윈도우 10에서 SNMP 트랩을 활성화하려면 설정을 열고 앱 및 기능 > 선택적 기능 > 기능 추가로 이동한 뒤, SNMP(Simple Network Management Protocol)를 검색하여 설치하면 됩니다.
기본 SNMP 명령어
SNMP 서버가 설정되고 네트워크에 에이전트가 배치되면, 네트워크 관리자는 네트워크 모니터링 도구의 일부로 다양한 명령어를 활용할 수 있습니다. 가장 널리 쓰이는 SNMP 명령어는 다음과 같습니다.
- GET: 하나 이상의 모니터링 값을 조회합니다.
- GET NEXT: 장비 MIB 트리에서 다음 OID의 값을 조회합니다.
- GET BULK: 대량의 데이터 값을 한 번에 가져옵니다.
- SET: 장비의 변수에 값을 할당합니다.
그 외에도 모니터링 대상 장비에 따라 전용 SNMP 명령어가 존재합니다. 예를 들어 네트워크 스위치를 모니터링할 때는 다음과 같은 명령어를 사용할 수 있습니다.
- Configure Terminal: 명령 프롬프트를 전역 설정 모드(global configuration mode)로 전환합니다.
- Show Running-Config: 현재 적용된 모든 설정 항목 목록을 확인합니다.
- Copy Running-Config Startup-Config: 현재 실행 중인 설정을 저장하여, 스위치 재시작 후에도 동일한 설정이 유지되도록 합니다.
장비 제조사는 사용 가능한 SNMP 명령어 라이브러리와 사용법에 대한 문서를 제공하므로, 제조사 웹사이트의 사용자 매뉴얼을 확인하는 것이 좋습니다.