SNMP 陷阱
配置 SNMP 陷阱
陷阱是从 SNMP 代理发送到远程网络管理系统或陷阱接收器的未经请求的消息。除了系统日志记录之外,企业还使用 SNMP 陷阱作为故障监控解决方案的一部分。在 Junos OS 中, 如果要使用 SNMP 陷阱,则必须配置陷阱组。
您可以创建和命名一组由一种或多种类型的 SNMP 陷阱组成,并定义哪些系统接收该组 SNMP 陷阱。陷阱组的名称作为称为社区名称的变量绑定 (varbind) 嵌入到 SNMP 陷阱通知数据包中。
要配置 SNMP 陷阱:
配置 SNMP 陷阱选项
使用 SNMP 陷阱选项,您可以将路由器发送的每个 SNMP 陷阱数据包的源地址设置为单个地址,而不考虑传出接口。此外,您还可以设置 SNMPv1 陷阱的代理地址。有关 SNMPv1 陷阱内容的详细信息,请参阅 RFC 1157。
您只能将 SNMP 与主路由实例关联。
要配置 SNMP 陷阱选项,请参阅 trap-options。
还必须配置陷阱组才能使陷阱选项生效。有关陷阱组的信息,请参见 配置 SNMP 陷阱组。
本主题包含以下部分:
配置 SNMP 陷阱的源地址
您可以通过多种方式配置陷阱数据包的源地址:lo0,在其中一个路由器接口上配置的有效 IPv4 地址或 IPv6 地址、逻辑系统地址或路由实例的地址。值 lo0 表示 SNMP 陷阱数据包的源地址设置为接口 lo0 上配置的最低环路地址。
仅当源地址是有效的 IPv4 或 IPv6 地址或已配置时,才能生成 SNMP 陷阱。
您可以采用以下格式之一配置陷阱数据包的源地址:
在其中一个路由器接口上配置的有效 IPv4 地址
在其中一个路由器接口上配置的有效 IPv6 地址
lo0
;即接口 lo0 上配置的最低环路地址逻辑系统名称
路由实例名称
有效的 IPv4 地址作为源地址
要将有效的 IPv4 接口地址指定为其中一个路由器接口上 SNMP 陷阱的源地址,请在层次结构级别包含 source-address
以下语句 [edit snmp trap-options]
:
[edit snmp trap-options] source-address address;
address
是在其中一个路由器接口上配置的有效 IPv4 地址。
有效的 IPv6 地址作为源地址
要将有效的 IPv6 接口地址指定为其中一个路由器接口上 SNMP 陷阱的源地址,请在层次结构级别包含 source-address
以下语句 [edit snmp trap-options]
:
[edit snmp trap-options] source-address address;
address
是在其中一个路由器接口上配置的有效 IPv6 地址。
作为源地址的最低环路地址
要指定 SNMP 陷阱的源地址,以便它们使用接口 lo0 上配置的最低环路地址作为源地址,请在层次结构级别包含 source-address
以下语句 [edit snmp trap-options]
:
[edit snmp trap-options] source-address lo0;
要启用和配置环路地址,请在层次结构级别包含 address
语句 [edit interfaces lo0 unit 0 family inet]
:
[edit interfaces] lo0 { unit 0 { family inet { address ip-address; } } }
要将环路地址配置为陷阱数据包的源地址:
[edit snmp] trap-options { source-address lo0; } trap-group "urgent-dispatcher" { version v2; categories link startup; targets { 192.168.10.22; 172.17.1.2; } } [edit interfaces] lo0 { unit 0 { family inet { address 10.0.0.1/32; address 127.0.0.1/32; } } }
在此示例中,IP 地址 10.0.0.1 是从此路由器发送的每个陷阱的源地址。
逻辑系统名称作为源地址
要将逻辑系统名称指定为 SNMP 陷阱的源地址,请在层次结构级别包含logical-system logical-system-name
[edit snmp trap-options]
该语句。
例如,以下配置将逻辑系统名称 ls1
设置为 SNMP 陷阱的源地址:
[edit snmp] trap-options{ logical-system ls1; }
路由实例名称作为源地址
要将路由实例名称指定为 SNMP 陷阱的源地址,请在层次结构级别包含 routing-instance routing-instance-name
该语句 [edit snmp trap-options]
。
例如,以下配置将路由实例名称 ri1
设置为 SNMP 陷阱的源地址:
[edit snmp] trap-options { routing-instance ri1; }
配置 SNMP 陷阱的代理地址
代理地址仅在 SNMPv1 陷阱数据包中可用(请参阅 RFC 1157)。默认情况下,不会在 SNMPv1 陷阱的代理地址字段中指定路由器的默认本地地址。要配置代理地址,请在层次结构级别包含agent-address
[edit snmp trap-options]
语句。目前,代理地址只能是传出接口的地址:
[edit snmp] trap-options { agent-address outgoing-interface; }
要将传出接口配置为代理地址,请执行以下操作:
[edit snmp] trap-options { agent-address outgoing-interface; } trap-group “ urgent-dispatcher” { version v1; categories link startup; targets { 192.168.10.22; 172.17.1.2; } }
在此示例中,发送的每个 SNMPv1 陷阱数据包的代理地址值都设置为传出接口的 IP 地址。
将 snmpTrapEnterprise 对象标识符添加到标准 SNMP 陷阱
snmpTrapEnterprise 对象可帮助您识别已定义陷阱的企业。通常,snmpTrapEnterprise 对象显示为企业特定 SNMP 版本 2 陷阱中的最后一个变量绑定。但是,从 10.0 版开始,Junos OS 允许您将 snmpTrapEnterprise 对象标识符也添加到标准 SNMP 陷阱中。
要将 snmpTrapEnterprise 添加到标准陷阱,请在层次结构级别包含enterprise-oid
[edit snmp trap-options]
语句。如果配置中未包含该 enterprise-oid
语句,则仅针对特定于企业的陷阱添加 snmpTrapEnterprise。
[edit snmp] trap-options { enterprise-oid; }
配置 SNMP 陷阱组
您可以创建并命名一组由一种或多种类型的 SNMP 陷阱组成,然后定义哪些系统接收该组 SNMP 陷阱。您必须配置陷阱组以发送 SNMP 陷阱。要创建 SNMP 陷阱组,请参见 trap-group。
对于您定义的每个陷阱组,必须包含语句以 target
将至少一个系统定义为陷阱组中 SNMP 陷阱的接收者。指定每个收件人的 IPv4 或 IPv6 地址,而不是其主机名。
指定陷阱组可以在语句中 categories
接收的陷阱类型。有关陷阱所属类别的信息,请参阅 Junos OS 支持的标准 SNMP 陷阱Junos OS 支持的特定于企业的 SNMP 陷阱 主题。
在语句中 routing-instance
指定陷阱组使用的路由实例。陷阱组中配置的所有目标都使用此路由实例。
陷阱组可以接收以下类别:
authentication
- 身份验证失败chassis
—机箱或环境通知chassis-cluster
- 群集通知configuration
—配置通知link
—链路相关通知(上下转换、DS-3 和 DS-1 线路状态更改、IPv6 接口状态更改和被动监控 PIC 过载)注:要发送被动监控 PIC 过载接口陷阱,请选择
link
陷阱类别。otn-alarms
— OTN 报警陷阱子类别remote-operations
—远程操作通知rmon-alarm
— RMON 事件警报routing
—路由协议通知services
— 服务通知,例如电路关闭或启动、连接中断或启动、CPU 超出、报警和状态更改。sonet-alarms
—SONET/SDH 告警注:如果省略 SONET/SDH 子类别,则所有 SONET/SDH 陷阱报警类型都将包含在陷阱通知中。
loss-of-light
—失光报警通知pll-lock
—PLL 锁定报警通知loss-of-frame
—帧丢失告警通知loss-of-signal
—信号丢失告警通知severely-errored-frame
—严重错误帧告警通知line-ais
—线路报警指示信号 (AIS) 报警通知path-ais
—路径 AIS 报警通知loss-of-pointer
- 指针丢失告警通知ber-defect
—SONET/SDH 误码率报警缺陷通知ber-fault
—SONET/SDH 错误率告警故障通知line-remote-defect-indication
—线路远程缺陷指示报警通知path-remote-defect-indication
—路径远程缺陷指示报警通知remote-error-indication
—远程错误指示报警通知unequipped
- 未配备的报警通知path-mismatch
—路径不匹配报警通知loss-of-cell
—细胞描述丢失报警通知vt-ais
—虚拟支流 (VT) AIS 报警通知vt-loss-of-pointer
- VT 指针丢失告警通知vt-remote-defect-indication
—VT远程缺陷指示报警通知vt-unequipped
—VT 未配备报警通知vt-label-mismatch
—VT 标签不匹配错误通知vt-loss-of-cell
—VT 细胞描述丢失通知
startup
—系统热启动和冷启动timing-events
- 计时事件和缺陷通知vrrp-events
—虚拟路由器冗余协议 (VRRP) 事件,例如新主节点或身份验证失败
如果包括 SONET/SDH 子类别,则陷阱通知中仅包含这些 SONET/SDH 陷阱报警类型。
该 version
语句允许您指定发送到陷阱组目标的陷阱的 SNMP 版本。如果仅指定 v1
,则会发送 SNMPv1 陷阱。如果仅指定 v2
,则会发送 SNMPv2 陷阱。如果指定 all
,则会为每个陷阱条件发送 SNMPv1 和 SNMPv2 陷阱。有关该version
语句的详细信息,请参阅版本 (SNMP)。
在运行 Junos OS 的设备上配置 SNMP 陷阱选项和组
一些运营商有多个陷阱接收器,用于将陷阱转发到中央 NMS。这允许 SNMP 陷阱通过不同的陷阱接收器从路由器到中央 NMS 的多条路径。您可以将运行 Junos OS 的设备配置为将每个 SNMP 陷阱的相同副本发送到陷阱组中配置的每个陷阱接收器。
默认情况下,每个 SNMP 陷阱数据包的 IP 报头中的源地址设置为传出接口的地址。当陷阱接收器将数据包转发到中央 NMS 时,将保留源地址。中央 NMS 仅查看每个 SNMP 陷阱数据包的源地址,假定每个 SNMP 陷阱来自不同的来源。
实际上,SNMP 陷阱来自同一路由器,但每个陷阱都通过不同的传出接口离开路由器。
提供以下各节中讨论的语句是为了允许 NMS 识别重复的陷阱,并根据传出接口区分 SNMPv1 陷阱。
要配置 SNMP 陷阱选项和陷阱组,请在层次结构级别包含 trap-options
[edit snmp]
and trap-group
语句:
[edit snmp] trap-options { agent-address outgoing-interface; source-address address; } trap-group group-name { categories { category; } destination-port port-number; targets { address; } version (all | v1 | v2); }
示例:配置 SNMP 陷阱组
设置为链接和启动陷阱命名的 urgent-dispatcher
陷阱通知列表。此列表用于标识应将本地路由器生成的陷阱发送到的网络管理主机(1.2.3.4
和 fe80::1:2:3:4
)。当代理向列出的目标发送陷阱时,为陷阱组指定的名称将用作 SNMP 公共组字符串。
[edit] snmp { trap-group "urgent-dispatcher" { version v2; categories link startup; targets { 1.2.3.4; fe80::1:2:3:4; } } }
管理陷阱
下面提供了有关管理 SNMP 通知的详细信息:
-
根据系统日志事件生成陷阱:
事件策略可以包括根据系统日志消息引发事件陷阱的操作。此功能可在出现重要的系统日志消息时通知基于 SNMP 陷阱的应用程序。您可以将没有相应陷阱的任何系统日志消息转换为陷阱。如果使用网络管理系统陷阱而不是系统日志消息来监视网络,则可以使用此功能来确保收到所有重大事件的通知。
要配置在收到事件时引发陷阱的策略,请在层次结构级别包含以下语句
[edit event-options policy policy-name]
:以下示例显示了为事件
ui_mgd_terminate
引发陷阱的示例配置:[edit event-options policy p1] events ui_mgd_terminate; then { raise-trap; }
-
根据疏水阀类别过滤疏水阀:
SNMP 陷阱分为许多类别。Junos OS 在层次结构级别提供了一个
[edit snmp trap-group trap-group]
配置选项categories
,使您能够指定要在特定主机上接收的陷阱类别。当您只想监控 Junos OS 的特定模块时,可以使用此选项。以下示例显示了仅
link
接收 、vrrp-events
、services
和otn-alarms
陷阱的示例配置:[edit snmp] trap-group jnpr { categories { link; vrrp-events; services; otn-alarms; } targets { 192.168.69.179; } }
-
基于对象标识符的过滤器陷阱:
Junos OS 还提供了更高级的过滤器选项,使您能够根据对象标识符过滤掉特定的陷阱。可以使用该
notify-filter
选项过滤掉特定的陷阱或一组陷阱。以下示例显示了排除瞻博网络企业特定配置管理陷阱的示例配置(请注意,SNMPv3 配置还支持过滤 SNMPv1 和 SNMPv2 陷阱,如以下示例所示):
[edit snmp] v3 { vacm { security-to-group { security-model v2c { security-name sn_v2c_trap { group gr_v2c_trap; } } } access { group gr_v2c_trap { default-context-prefix { security-model v2c { security-level none { read-view all; notify-view all; } } } } } } target-address TA_v2c_trap { address 10.209.196.166; port 9001; tag-list tg1; target-parameters TP_v2c_trap; } target-parameters TP_v2c_trap { parameters { message-processing-model v2c; security-model v2c; security-level none; security-name sn_v2c_trap; } notify-filter nf1; } notify v2c_notify { type trap; tag tg1; } notify-filter nf1 { oid .1.3.6.1.4.1.2636.4.5 exclude; oid .1 include; } snmp-community index1 { community-name "$9$tDLl01h7Nbw2axN"; ## SECRET-DATA security-name sn_v2c_trap; tag tg1; } view all { oid .1 include; } }