SNMP 기본 내용
- 네트워크 환경에서 장비들의 주요 성능과 기능을 모니터링
- 장비의 문제 발생 시 또는 특이점을 전달
- 이를 위해서 SNMP 프로토콜 개발
- SNMP Manager는 정보를 수집하는 주체
- SNMP Agent는 정보를 제공하는 주체
SNMP 버전
SNMPv1
- 평문 값으로 Community String을 이용하여, SNMP Manager와 Agent간 인증
- 대량의 정보 수집 불가
SNMPv2
- 보안 취약점을 개선하기 위해 Community String 값을 암호화하여 전송
- 대량 정보 수집 기능 추가
SNMPv2c
- SNMPv2의 Community String 값을 암호화하여 전송하는 방식이 너무 복잡하여 다시 Community String을 평문으로 전송하는 방식 채용
SNMPv3
- Community String 대신 Username과 Password를 제공하는 방식으로 변경
- Password는 암호화 알고리즘으로 암호화 된 값과 Hash 알고리즘으로 생성한 인증 값 2가지로 구성
SNMP Message
Get은 장비로부터 정보 조회
- GetRequest
- GetResponse
- GetNextRequest : SNMPv2에서 추가된 대량 정보 조회를 위해 사용
- GetNextResponse
Set은 장비 정보 변경
Trap은 Agent에서 문제 발생 시 Manager로 전송할 때 사용
Get과 Set은 161/udp 를 사용하며, Trap은 12/udp 사용
Ojbect ID(OID)
- SNMP에서는 장비의 기능과 설정 사항을 OID 값을 통해서 구별
- 예를 들어, 장비의 CPU 사용률 중 1분, 5분 사용률은 서로 다른 OID 값으로 제공
- Vendor 별로 사용하는 OID는 Private OID
- 공통으로 사용하는 OID는 Public OID
Management Information Base(MIB)
MIB는 OID를 모아놓은 파일
Vendor마다 다양한 OID를 소유하고 이를 SNMP Manager에게 제공하여 추가 관제를 가능토록 함
MIB Browser(https://www.ireasoning.com/mibbrowser.shtml)를 이용하여 조회 가능
아래 예제에서는 SNMP Manager에서 snmpwalk -m ALL -c public -v 2c 192.168.1.100 IF-MIB::ifDescr 를 통해 아래 결과를 조회한 것과 MIB Browser를 조회한 결과가 동일한 것을 확인
[root@localhost mibs]# snmpwalk -m ALL -c public -v 2c 192.168.1.100 IF-MIB::ifDescr IF-MIB::ifDescr.1 = STRING: Device vmnic0 at 25:00.0 ixgben IF-MIB::ifDescr.2 = STRING: Device vmnic1 at 25:00.1 ixgben IF-MIB::ifDescr.3 = STRING: Device vmnic2 at 26:00.0 ixgben IF-MIB::ifDescr.4 = STRING: Device vmnic3 at 26:00.1 ixgben IF-MIB::ifDescr.5 = STRING: Device vusb0 at 00:00.0 cdce IF-MIB::ifDescr.6 = STRING: Traditional Virtual VMware switch: vSwitch0 IF-MIB::ifDescr.7 = STRING: Traditional Virtual VMware switch: vSwitch1 IF-MIB::ifDescr.8 = STRING: Virtual interface: vmk0 on vswitch vSwitch0 portgroup: Management Network IF-MIB::ifDescr.9 = STRING: Virtual interface: vmk1 on vswitch vSwitch1 portgroup: Mgmt2 |
추가로 SNMP Manager에서 위 결과 조회 시 수집한 Packet을 보면, 실제로 SNMP Message 중 Get Message를 확인할 수가 있습니다.
SNMP Manager가 192.168.1.41, SNMP Agent는 192.168.1.100 입니다.
358 4.549011 192.168.1.41 192.168.1.100 SNMP 86 get-next-request 1.3.6.1.2.1.2.2.1.2 361 4.551151 192.168.1.100 192.168.1.41 SNMP 118 get-response 1.3.6.1.2.1.2.2.1.2.1 362 4.551228 192.168.1.41 192.168.1.100 SNMP 87 get-next-request 1.3.6.1.2.1.2.2.1.2.1 364 4.551357 192.168.1.100 192.168.1.41 SNMP 118 get-response 1.3.6.1.2.1.2.2.1.2.2 365 4.551387 192.168.1.41 192.168.1.100 SNMP 87 get-next-request 1.3.6.1.2.1.2.2.1.2.2 368 4.551489 192.168.1.100 192.168.1.41 SNMP 118 get-response 1.3.6.1.2.1.2.2.1.2.3 369 4.551515 192.168.1.41 192.168.1.100 SNMP 87 get-next-request 1.3.6.1.2.1.2.2.1.2.3 372 4.551647 192.168.1.100 192.168.1.41 SNMP 118 get-response 1.3.6.1.2.1.2.2.1.2.4 373 4.551671 192.168.1.41 192.168.1.100 SNMP 87 get-next-request 1.3.6.1.2.1.2.2.1.2.4 375 4.551762 192.168.1.100 192.168.1.41 SNMP 115 get-response 1.3.6.1.2.1.2.2.1.2.5 376 4.551786 192.168.1.41 192.168.1.100 SNMP 87 get-next-request 1.3.6.1.2.1.2.2.1.2.5 378 4.551880 192.168.1.100 192.168.1.41 SNMP 130 get-response 1.3.6.1.2.1.2.2.1.2.6 380 4.551903 192.168.1.41 192.168.1.100 SNMP 87 get-next-request 1.3.6.1.2.1.2.2.1.2.6 382 4.551989 192.168.1.100 192.168.1.41 SNMP 130 get-response 1.3.6.1.2.1.2.2.1.2.7 383 4.552012 192.168.1.41 192.168.1.100 SNMP 87 get-next-request 1.3.6.1.2.1.2.2.1.2.7 385 4.552103 192.168.1.100 192.168.1.41 SNMP 160 get-response 1.3.6.1.2.1.2.2.1.2.8 386 4.552126 192.168.1.41 192.168.1.100 SNMP 87 get-next-request 1.3.6.1.2.1.2.2.1.2.8 389 4.552235 192.168.1.100 192.168.1.41 SNMP 147 get-response 1.3.6.1.2.1.2.2.1.2.9 390 4.552259 192.168.1.41 192.168.1.100 SNMP 87 get-next-request 1.3.6.1.2.1.2.2.1.2.9 392 4.552346 192.168.1.100 192.168.1.41 SNMP 88 get-response 1.3.6.1.2.1.2.2.1.3.1 Frame 358: 86 bytes on wire (688 bits), 86 bytes captured (688 bits) Ethernet II, Src: VMware_bb:fc:fd (00:50:56:bb:fc:fd), Dst: VMware_67:d2:ec (00:50:56:67:d2:ec) Internet Protocol Version 4, Src: 192.168.1.41, Dst: 192.168.1.100 User Datagram Protocol, Src Port: 51556, Dst Port: 161 Simple Network Management Protocol version: v2c (1) community: public data: get-next-request (1) get-next-request request-id: 109657875 error-status: noError (0) error-index: 0 variable-bindings: 1 item 1.3.6.1.2.1.2.2.1.2: Value (Null) Object Name: 1.3.6.1.2.1.2.2.1.2 (iso.3.6.1.2.1.2.2.1.2) Value (Null) [Response In: 361] Frame 361: 118 bytes on wire (944 bits), 118 bytes captured (944 bits) Ethernet II, Src: VMware_67:d2:ec (00:50:56:67:d2:ec), Dst: VMware_bb:fc:fd (00:50:56:bb:fc:fd) Internet Protocol Version 4, Src: 192.168.1.100, Dst: 192.168.1.41 User Datagram Protocol, Src Port: 161, Dst Port: 51556 Simple Network Management Protocol version: v2c (1) community: public data: get-response (2) get-response request-id: 109657875 error-status: noError (0) error-index: 0 variable-bindings: 1 item 1.3.6.1.2.1.2.2.1.2.1: "Device vmnic0 at 25:00.0 ixgben" Object Name: 1.3.6.1.2.1.2.2.1.2.1 (iso.3.6.1.2.1.2.2.1.2.1) Value (OctetString): "Device vmnic0 at 25:00.0 ixgben" [Response To: 358] [Time: 0.002140000 seconds] |
'Compute' 카테고리의 다른 글
How ballooning driver works (2) (0) | 2022.12.25 |
---|---|
How ballooning driver works (1) (2) | 2022.12.23 |
How to retrieve information using SNMP (0) | 2022.12.21 |
Certificate Problem (2) - How to Replace certificates (0) | 2022.12.14 |
Certificate Problem (1) - Verification (0) | 2022.12.13 |