이 문서에서는 SNMP 트랩에 대해 설명합니다.SNMP 트랩의 사용 방법과 데이터 네트워크 관리에서 수행하는 역할을 보여 줍니다.
SNMP 트랩을 사용하면 에이전트가 원치 않는 SNMP 메시지를 통해 중요 이벤트를 관리 스테이션에 알릴 수 있습니다.
이 다이어그램에서 왼쪽의 설정은 정보를 폴링하고 응답을 받는 네트워크 관리 시스템을 보여줍니다.오른쪽의 설정은 NMS(Network Management System)에 요청되지 않거나 비동기 트랩을 전송하는 에이전트를 표시합니다.
이 문서에 대한 특정 요건이 없습니다.
이 문서는 특정 소프트웨어 및 하드웨어 버전으로 한정되지 않습니다.
문서 규칙에 대한 자세한 내용은 Cisco 기술 팁 표기 규칙을 참고하십시오.
SNMPv1(Simple Network Management Protocol) 및 SNMPv2c와 관련 MIB(Management Information Base)는 트랩 지정 알림을 장려합니다.
트랩 방향 알림의 이면에는 관리자가 많은 수의 디바이스를 담당하고 각 디바이스에 많은 객체가 있는 경우 관리자가 모든 디바이스의 모든 객체에서 정보를 폴링하거나 요청하는 것은 비현실적입니다.이 솔루션은 관리되는 디바이스의 각 상담원이 요청 없이 관리자에게 알릴 수 있도록 합니다.이는 이벤트의 트랩이라고 하는 메시지를 전송하여 수행됩니다.
관리자가 이벤트를 수신한 후 이를 표시하고 이벤트를 기반으로 조치를 취하도록 선택할 수 있습니다.예를 들어 관리자는 에이전트를 직접 폴링하거나 다른 연결된 디바이스 에이전트를 폴링하여 이벤트를 더 잘 이해할 수 있습니다.
트랩 지정 알림은 사소한 SNMP 요청이 필요하지 않으므로 네트워크 및 에이전트 리소스를 크게 절약할 수 있습니다.그러나 SNMP 폴링을 완전히 제거할 수는 없습니다.검색 및 토폴로지 변경에 SNMP 요청이 필요합니다.또한 관리되는 디바이스 에이전트는 디바이스에 심각한 중단이 발생한 경우 트랩을 전송할 수 없습니다.
SNMPv1 트랩은 다음 필드를 사용하여 RFC 1157에 정의됩니다.
Enterprise - 트랩을 생성하는 관리 객체의 유형을 식별합니다.
Agent address(에이전트 주소) - 트랩을 생성하는 관리되는 개체의 주소를 제공합니다.
Generic trap type(일반 트랩 유형) - 여러 일반 트랩 유형 중 하나를 나타냅니다.
Specific trap code - 여러 특정 트랩 코드 중 하나를 나타냅니다.
타임스탬프 - 마지막 네트워크 재초기화와 트랩 생성 사이에 경과된 시간을 제공합니다.
Variable bindings - PDU를 포함하는 트랩의 데이터 필드입니다.각 변수 바인딩은 특정 MIB 개체 인스턴스를 현재 값과 연결합니다.
표준 일반 트랩은 다음과 같습니다.coldStart, warmStart, linkDown, linkUp, authenticationFailure, egpNeighborLoss.일반 SNMPv1 트랩의 경우 Enterprise 필드는 트랩을 보내는 디바이스의 sysObjectID 값을 포함합니다.공급업체별 트랩의 경우 일반 트랩 유형 필드가 enterpriseSpecific(6)으로 설정됩니다. Cisco는 비전통적인 방식으로 고유한 트랩을 구현했습니다.Cisco는 트랩 Enterprise 필드를 sysObjectID 로 두고 모든 Cisco 디바이스에서 지원하는 모든 특정 트랩을 식별하기 위해 Specific 트랩 코드를 사용하는 대신 다양한 트랩 Enterprise 및 Specific 트랩 코드 필드를 사용하여 트랩 식별을 구현했습니다.SNMP Object Navigator에서 실제 값을 볼 수 있습니다 .또한 Cisco는 더 많은 바운드 변수를 추가하여 CISCO-GENERAL-TRAPS MIB 에서 일부 일반 트랩을 재정의했습니다.이러한 트랩의 경우 일반 트랩 유형은 동일하게 유지되며 enterpriseSpecific(6)로 설정되지 않습니다.
SNMPv2c 트랩은 NOTIFICATION으로 정의되며 SNMPv1과 다르게 포맷됩니다. 다음 매개변수가 있습니다.
sysUpTime—SNMPv1 트랩의 타임스탬프와 동일합니다.
SNMP트랩OID - 트랩 식별 필드입니다.일반 트랩의 경우 RFC 1907에 값이 정의되며 벤더별 트랩의 경우 snmpTrapOID는 기본적으로 SNMPv1 Enterprise 매개 변수와 두 개의 추가 하위 식별자, '0' 및 SNMPv1 Specific 트랩 코드 매개 변수의 연결입니다.
VarBindList - 변수 바인딩 목록입니다.
관리 시스템이 에이전트에서 보낸 트랩을 이해하려면 관리 시스템에서 OID(object identifier)가 정의하는 항목을 알아야 합니다.따라서 해당 트랩에 대한 MIB가 로드되어야 합니다.이렇게 하면 네트워크 관리 시스템이 자신에게 전송된 트랩을 이해할 수 있도록 올바른 OID 정보가 제공됩니다.
특정 MIB의 Cisco 디바이스에서 지원하는 트랩은 Cisco SNMP Object Navigator를 참조하십시오 .특정 MIB에 사용할 수 있는 트랩이 나열됩니다.이러한 트랩 중 하나를 받으려면 Cisco IOS® 소프트웨어 릴리스가 나열된 MIB를 지원해야 합니다.Cisco 디바이스에서 지원되는 MIB를 확인하려면 www.cisco.com/go/mibs을 방문하십시오 .MIB를 네트워크 관리 시스템에 로드해야 합니다.이를 흔히 컴파일 이라고 합니다.NMS 플랫폼에서 MIB 컴파일에 대한 네트워크 관리 시스템(예: HP OpenView 또는 NetView) 사용 설명서를 참조하십시오.또한 SNMP를 참조하십시오.MIB 및 MIB 컴파일러 및 MIB 로드에 대한 FAQ.
또한 디바이스는 트랩을 네트워크 관리 시스템으로 전송하도록 구성되지 않은 한 전송하지 않습니다.디바이스는 트랩을 보내야 함을 알아야 합니다.트랩 대상은 일반적으로 IP 주소로 정의되지만, 디바이스가 DNS(Domain Name System) 서버를 쿼리하도록 설정된 경우 호스트 이름일 수 있습니다.최신 버전의 Cisco IOS 소프트웨어에서는 디바이스 관리자가 전송할 트랩을 선택할 수 있습니다.SNMP용 Cisco 디바이스를 구성하는 방법 및 트랩 전송 방법에 대한 자세한 내용은 통신원 디바이스 컨피그레이션 가이드 및 기본 다이얼 NMS 구현 가이드, 지원되는 Cisco IOS SNMP 트랩 및 구성 방법 및 Cisco CatalystOS SNMP 트랩을 지원 및 구성하는 방법을 참조하십시오.
참고: 일반적으로 관리자는 UDP 포트 번호 162에서 SNMP 알림(TRAP 및 INFORM)을 수신합니다.
이 섹션에서는 Cisco IOS에서 전송한 트랩(디버그 snmp 패킷과 함께)의 몇 가지 예를 다룹니다.
SNMPv1 일반 트랩(Cisco에서 재정의):
Nov 21 07:44:17: %LINK-3-UPDOWN: Interface Loopback1, changed state to up 4d23h: SNMP: Queuing packet to 172.17.246.162 4d23h: SNMP: V1 Trap, ent products.45, addr 172.17.246.9, gentrap 3, spectrap 0 ifEntry.1.23 = 23 ifEntry.2.23 = Loopback1 ifEntry.3.23 = 24 lifEntry.20.23 = up
이 출력은 4개의 바운드 변수가 있는 CISCO-GENERAL-TRAPS MIB의 Cisco 재정의 linkUp 트랩을 보여줍니다.여기에는 다음 필드가 있습니다.
Enterprise = products.45(디바이스 전송 트랩 의 sysObjectID, 이 예에서는 c7507 라우터임)
일반 트랩 유형 = 3(linkUp)
특정 트랩 코드 = 0
SNMPv1 Cisco 관련 트랩:
4d23h: SNMP: Queuing packet to 172.17.246.162 4d23h: SNMP: V1 Trap, ent ciscoSyslogMIB.2, addr 172.17.246.9, gentrap 6, spectrap 1 clogHistoryEntry.2.954 = LINK clogHistoryEntry.3.954 = 4 clogHistoryEntry.4.954 = UPDOWN clogHistoryEntry.5.954 = Interface Loopback1, changed state to up clogHistoryEntry.6.954 = 43021184
이 출력은 5개의 바운드 변수를 가진 CISCO-SYSLOG-MIB의 Cisco 특정 clogMessageGenerated 트랩을 보여줍니다.여기에는 다음 필드가 있습니다.
Enterprise = clogMessageGenerated 트랩의 엔터프라이즈 값
일반 트랩 유형 = 6(enterpriseSpecific)
특정 트랩 코드 = 1(clogMessageGenerated의 특정 트랩 코드)
SNMPv2c Cisco 관련 트랩:
4d23h: SNMP: Queuing packet to 172.17.246.162 4d23h: SNMP: V2 Trap, reqid 2, errstat 0, erridx 0 sysUpTime.0 = 43053404 snmpTrapOID.0 = clogHistoryEntry.2.958 = SYS clogHistoryEntry.3.958 = 6 clogHistoryEntry.4.958 = CONFIG_I clogHistoryEntry.5.958 = Configured from console by vty0 (10.10.10.10) clogHistoryEntry.6.958 = 43053403
이 출력은 CISCO-CONFIG-MAN-MIB의 Cisco 특정 ciscoConfigManEvent SNMPv2c 알림과 세 가지 바운드 변수를 보여줍니다.
디바이스 컨피그레이션에 변경 사항이 있는 경우 이 트랩을 사용할 수 있습니다.마지막 두 구성 요소의 값은 show 명령이 실행되었는지 또는 컨피그레이션이 적용되었는지 확인합니다.
6506E#term mon 6506E#debug snmp packet SNMP packet debugging is on 6506E#sh run Building configuration... ... 6506E# 19:24:18: SNMP: Queuing packet to 10.198.28.80 19:24:18: SNMP: V2 Trap, reqid 2, errstat 0, erridx 0 sysUpTime.0 = 6981747 snmpTrapOID.0 = ciscoConfigManMIB.2.0.1 ccmHistoryEventEntry.3.100 = 1 !--- 1 -> commandLine. Executed via CLI. ccmHistoryEventEntry.4.100 = 3 !--- 3 -> running ccmHistoryEventEntry.5.100 = 2 !--- 2 -> commandSource. Show command was executed.
6506E#term mon 6506E#debug snmp packet SNMP packet debugging is on 6506E#conf t Enter configuration commands, one per line. End with CNTL/Z. 6506E(config)#exit 22:57:37: SNMP: Queuing packet to 10.198.28.80 22:57:37: SNMP: V2 Trap, reqid 2, errstat 0, erridx 0 sysUpTime.0 = 8261709 snmpTrapOID.0 = ciscoConfigManMIB.2.0.1 ccmHistoryEventEntry.3.108 = 1 !--- 1 -> commandLine. Executed via CLI. ccmHistoryEventEntry.4.108 = 2 !--- 2 -> commandSource ccmHistoryEventEntry.5.108 = 3 !--- 3 -> running. Change was destined to the running configuration.