네트워크 장비 모니터링을 위한 SNMP
Simple Network Management Protocol
개요
주로 네트워크 장비의 Metric을 확인하는 모니터링 용도로 사용하지만, SNMP를 지원하는 컴퓨팅 머신이라면 모두 활용할 수 있다.
전제 조건
- IP 네트워크 환경이 있다.
- 관리용 서버(SNMP 서버)가 있다.
- SNMP 프로토콜을 지원하는 기기다.
구성 요소
- 매니저 (SNMP 서버)
- 네트워크 감시 장치(서버)에 설치해서 사용하는 소프트웨어
- 에이전트 (네트워크 기기/서버)
- 네트워크 기기나 서버가 가진 기기의 상태 정보를 통보하는 기능
- SNMP 프로토콜 (TCP/IP)
- UDP 패킷에 실어서 주고받으며, 포트 번호는 161(SNMP), 162(TRAP)를 사용함.
- MIB (Management Information Base)
매니저-에이전트 역할
- 정보의 요청과 응답
- 매니저가 에이전트에게 대상 기기의 정보를 요청 → 에이전트는 정보를 매니저에게 응답
- 설정의 요청과 응답
- 매니저가 에이전트에게 대상 기기의 설정 변경을 요청 → 에이전트는 설정을 변경하며 그 결과를 매니저에게 응답
- 상태 변화의 통보
- 에이전트가 매니저에게 대상 기기의 상태 변화를 통보
매니저-에이전트 통신 방식
- 폴링 (Polling)
- 매니저가 정기적으로 에이전트로부터 관리 정보를 추출
- 트랩 (Trap)
- 에이전트인 라우터나 스위치가 자신의 상태에 어떤 변화가 발생했을 때(장애 발생 등) 자발적으로 매니저인 SNMP 서버에게 정보를 통보
커뮤니티 이름
- 매니저와 에이전트는 커뮤니티 이름으로 그룹화한다.
- 매니저와 에이전트는 커뮤니티 이름이 같을 때만 통신한다.
버전별 차이
v1
- 커뮤니티 이름이 포함된 패킷을 평문으로 전달함.
- 기본적인 관리 정보 베이스(MIB)와 트랩 메시지를 사용함.
v2
- 커뮤니티 이름이 포함된 패킷을 암호화해서 전달함.
- 추가된 PDU 타입(예: GetBulkRequest)을 통해 대량의 데이터를 한 번에 전송할 수 있음.
v2c
- 커뮤니티 값을 암호화하여 전달하는 것이 복잡해서 v1처럼 평문으로 전달하도록 원복함.
v3
- (username, password) 인증 기능이 추가됨.
- 이 외 다양한 보안 기능 추가됨.
관련 명령어 도구
snmpget
정확한 OID를 입력해야 해서 난 잘 사용하지 않음.
snmpget -v2c -l NoAuthNoPriv -c Auto_Wini3 61.111.18.165:161 1.3.6.1.2.1.1.1.0
# output
iso.3.6.1.2.1.1.1.0 = STRING: "Cisco IOS Software, C2960 Software (C2960-LANBASEK9-M), Version 12.2(58)SE2, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2011 by Cisco Systems, Inc.
Compiled Thu 21-Jul-11 02:13 by prod_rel_team"
snmpwalk
snmpwalk -v2c -l NoAuthNoPriv -c public <ip_address>:<port> [OID]
- 도움말
-h
: help-H
: 사용 가능한 옵션
-v
: SNMP 버전 (1
|2c
|3
)-l
: security level (noAuthNoPriv
|authNoPriv
|authPriv
)-c
: the community string
snmpwalk -v2c -l NoAuthNoPriv -c Auto_Wini3 61.111.18.165:161 1.3.6.1.2.1.1
MIB-2 OID (Object ID)
SNMP Explained: What You Must Know About Monitoring via MIB and OIDs
ex: 1.3.6.1.2.1 분해
- 첫번째 자리
- 두번째 자리
- 0: ISO Standard
- 3: Identified Organization (org)
- 세번째 자리
- 네번째 자리
- 다섯번째 자리
- 여섯번째 자리
1.3.6.1.2.1.1 system
ID | Object | Description | Link |
---|---|---|---|
1.3.6.1.2.1.1.1 |
sysDescr | System Description | oidref |
1.3.6.1.2.1.1.2 |
sysObjectID | ||
1.3.6.1.2.1.1.3 |
sysUpTime | ||
1.3.6.1.2.1.1.4 |
sysContact | ||
1.3.6.1.2.1.1.5 |
sysName | oidref | |
1.3.6.1.2.1.1.6 |
sysLocation | ||
1.3.6.1.2.1.1.7 |
sysServices | oidref |
1.3.6.1.2.1.2 interfaces
ID | Object | Description | Link |
---|---|---|---|
1.3.6.1.2.1.2.2.1.2 |
ifDescr | Interface Description | oidref |
1.3.6.1.2.1.2.2.1.4 |
ifMtu | oidref | |
1.3.6.1.2.1.2.2.1.5 |
ifSpeed | oidref | |
1.3.6.1.2.1.2.2.1.10 |
ifInOctets | oidref |
1.3.6.1.2.1.3 at - Address Translation
ID | Object | Description | Link |
---|---|---|---|
1.3.6.1.2.1.3 |
at | Address translation | oidref |
1.3.6.1.2.1.4 ip - Internet Protocol
ID | Object | Description | Link |
---|---|---|---|
1.3.6.1.2.1.4.22 |
ipNetToMediaTable | SEQUENCE OF IpNetToMediaEntry | oidref |
1.3.6.1.2.1.31 ifMIB
ID | Object | Description | Link |
---|---|---|---|
1.3.6.1.2.1.31.1 |
ifMIBObjects | ||
1.3.6.1.2.1.31.1.1 |
ifXTable | ||
1.3.6.1.2.1.31.1.1.1 |
ifXEntry | ||
1.3.6.1.2.1.31.1.1.1.6 |
ifHCInOctets | 인터페이스의 입력 바이트 수 | CNRS. 데이터독에선 ifBandwidthInUsage라는 별칭을 씀. |
1.3.6.1.2.1.31.1.1.1.10 |
ifHCOutOctets | 인터페이스의 출력 바이트 수 | CNRS. 데이터독에선 ifBandwidthOutUsage라는 별칭을 씀. |
참조
- <네트워크 운용 및 유지 보수의 모든 것> - 오카노 신
- SNMP 쉽게 이해하기 #1 - 네트워크 엔지니어 환경
- OID
최종 수정: 2024-07-23