在 Junos OS 中配置 SNMP
配置 SNMP
您可以在运行在 QFX 系列和 OCX 系列产品上的 Junos OS 软件中实施 SNMP。默认情况下,不启用 SNMP。要启用 SNMP,必须在层次结构级别包含 [edit]
SNMP 配置语句。
要配置 SNMP 的最低要求,请在层次结构级别包含 community public
语句 [edit snmp]
。
要配置完整的 SNMP 功能,请参阅 snmp。
[编辑 snmp] 层次结构级别的配置语句
本主题显示层次结构级别的所有 [edit snmp]
配置语句及其在配置层次结构中的级别。配置 Junos OS 时,当前层级将显示在提示符前 user@host#
行的横幅中。
[edit] snmp { alarm-management { alarm-list-name list-name { alarm-id id { alarm-state state { description alarm-description; notification-id notification-id-of-alarm; resource-prefix alarm-resource-prefix; varbind-index varbind-index-in-alarm-varbind-list; varbind-subtree alarm-varbind-subtree; varbind-value alarm-varbind-value; } } } } client-list client-list-name { ip-addresses; } community community-name { authorization authorization; client-list-name client-list-name; clients { address <restrict>; } logical-system logical-system-name { routing-instance routing-instance-name; clients { address <restrict>; } } routing-instance routing-instance-name { clients { address <restrict>; } } view view-name; } contact contact; description description; engine-id { (local engine-id | use-default-ip-address | use-mac-address); } filter-duplicates; interface [ interface-names ]; location location; name name; nonvolatile { commit-delay seconds; } rmon { alarm index { description description; falling-event-index index; falling-threshold integer; falling-threshold-interval seconds; interval seconds; request-type (get-next-request | get-request | walk-request); rising-event-index index; rising-threshold integer; sample-type type; startup-alarm alarm; syslog-subtag syslog-subtag; variable oid-variable; } event index { community community-name; description description; type type; } } traceoptions { file filename <files number> <size size> <world-readable | no-world-readable> <match regular-expression>; flag flag; memory-trace; no-remote-trace; no-default-memory-trace; } trap-group group-name { categories { category; } destination-port port-number; routing-instance instance; logical-system logical-system-name; targets { address; } version (all | v1 | v2); } trap-options { agent-address outgoing-interface; source-address address; enterprise-oid; logical-system logical-system-name { routing-instance routing-instance-name { source-address address; } } routing-instance routing-instance-name { source-address address; } } v3 { notify name { tag tag-name; type (trap | inform); } notify-filter profile-name { oid oid (include | exclude); } snmp-community community-index { community-name community-name; security-name security-name; tag tag-name; } target-address target-address-name { address address; address-mask address-mask; logical-system logical-system; port port-number; retry-count number; routing-instance instance; tag-list tag-list; target-parameters target-parameters-name; timeout seconds; } target-parameters target-parameters-name { notify-filter profile-name; parameters { message-processing-model (v1 | v2c | v3); security-level (authentication | none | privacy); security-model (usm | v1 | v2c); security-name security-name; } } usm { local-engine { user username { authentication-md5 { authentication-password authentication-password; } authentication-none; authentication-sha { authentication-password authentication-password; } privacy-3des { privacy-password privacy-password; } privacy-aes128 { privacy-password privacy-password; } privacy-des { privacy-password privacy-password; } privacy-none; } } } vacm { access { group group-name { (default-context-prefix | context-prefix context-prefiix){ security-model (any | usm | v1 | v2c) { security-level (authentication | none | privacy) { notify-view view-name; read-view view-name; write-view view-name; } } } } } security-to-group { security-model (usm | v1 | v2c) { security-name security-name { group group-name; } } } } } view view-name { oid object-identifier (include | exclude); } }
配置 SNMP 的基本设置
以下部分包含有关基本 SNMP 配置的信息,以及在运行 Junos OS 的设备上配置基本 SNMP 操作的几个示例:
配置 SNMPv1 和 SNMPv2 的基本设置
默认情况下,您无法在运行 Junos OS 的设备上启用 SNMP。要在运行 Junos OS 的设备上启用 SNMP,请在层次结构级别包含语句community public
[edit snmp]
。
启用 SNMPv1 和 SNMPv2 Get 和 GetNext 操作
[edit] snmp { community public; }
定义为公共的社区向任何客户端授予对所有 MIB 数据的访问权限。
要在设备上启用 SNMPv1 和 SNMPv2 Set
操作,必须在层次结构级别包含以下语句 [edit snmp]
:
启用 SNMPv1 和 SNMPv2 集操作
[edit snmp] view all { oid .1; } community private { view all; authorization read-write; }
以下示例显示了设备上 SNMPv1 和 SNMPv2 陷阱的基本最低配置:
配置 SNMPv1 和 SNMPv2 陷阱
[edit snmp] trap-group jnpr { targets { 192.168.69.179; } }
配置 SNMPv3 的基本设置
以下示例显示了用于在设备上启用 Get
、 GetNext
和Set
操作的最低 SNMPv3 配置(请注意,该配置将身份验证设置为,将隐私none
设置为md5
):
启用 SNMPv3 get、GetNext 和 set 操作
[edit snmp] v3 { usm { local-engine { user jnpruser { authentication-md5 { authentication-key "$9$guaDiQFnAuOQzevMWx7ikqP"; ## SECRET-DATA } privacy-none; } } } vacm { security-to-group { security-model usm { security-name jnpruser { group grpnm; } } } access { group grpnm { default-context-prefix { security-model any { security-level authentication { read-view all; write-view all; } } } } } } } view all { oid .1; }
以下示例显示了设备上 SNMPv3 通知的基本配置(该配置具有以下身份验证 none
和隐私设置):
配置 SNMPv3 通知
[edit snmp] v3 { usm { remote-engine 00000063200133a2c0a845c3 { user RU2_v3_sha_none { authentication-none; privacy-none; } } } vacm { security-to-group { security-model usm { security-name RU2_v3_sha_none { group g1_usm_auth; } } } access { group g1_usm_auth { default-context-prefix { security-model usm { security-level authentication { read-view all; write-view all; notify-view all; } } } } } } target-address TA2_v3_sha_none { address 192.168.69.179; tag-list tl1; address-mask 255.255.252.0; target-parameters TP2_v3_sha_none; } target-parameters TP2_v3_sha_none { parameters { message-processing-model v3; security-model usm; security-level none; security-name RU2_v3_sha_none; } notify-filter nf1; } notify N1_all_tl1_informs { type inform; # Replace inform with trap to convert informs to traps. tag tl1; } notify-filter nf1 { oid .1 include; } } view all { oid .1 include; }
通过将层次结构级别的trap
语句[edit snmp v3 notify N1_all_tl1_informs]
值type
设置为,可以将 SNMPv3 通知转换为陷阱,如以下示例所示:
将通知转换为陷阱
user@host# set snmp v3 notify N1_all_tl1_informs type trap
另请参阅
配置 SNMP 详细信息
您可以使用 SNMP 存储基本管理详细信息,例如联系人姓名和设备位置。然后,当您对问题进行故障排除或执行审核时,您的管理系统可以远程检索此信息。在 SNMP 术语中,这些是在 MIB-2 的系统组中找到的 sysName、sysContact、sysDescription和 sysLocation 对象(如 RFC 1213, 基于 TCP/IP 的互联网的网络管理管理信息库中所 定义):MIB-II)。您可以直接在 Junos OS 配置中为 SNMP 管理的每个系统设置初始值。
对于由 SNMP 管理的设备,请始终保持配置和更新的名称、位置、联系人和描述信息。
要设置 SNMP 详细信息,请执行以下操作:
配置提交延迟计时器
当路由器或交换机首次收到 SNMP 非易失性 Set
请求时,将打开 Junos OS XML 协议会话,并阻止其他用户或应用程序更改候选配置(相当于命令行界面 [CLI] configure exclusive
命令)。如果路由器在提交候选配置时收到新的 SNMP Set
请求,则 SNMP Set
请求将被拒绝并生成错误。如果路由器在 5 秒之前收到新的 SNMP Set
请求,则提交延迟计时器(从收到最后一个 SNMP 请求到请求提交之间的时间长度)将重置为 5 秒。
默认情况下,计时器设置为 5 秒。要配置 SNMP Set
回复和提交开始的计时器,请在层次结构级别包含 commit-delay
语句 [edit snmp nonvolatile]
:
[edit snmp nonvolatile] commit-delay seconds;
seconds
是收到 SNMP 请求和请求候选配置提交之间的时间长度。有关 configure exclusive
命令和锁定配置的详细信息,请参阅 Junos OS CLI 用户指南 。
在运行 Junos OS 的设备上配置 SNMP
默认情况下,在运行 Junos OS 的设备上禁用 SNMP。要在路由器或交换机上启用 SNMP,必须在层次结构级别包含 SNMP 配置语句 [edit snmp]
。
要配置 SNMP 的最低要求,请在层次结构级别包含 community public
语句 [edit snmp]
。
此处 public
定义为的社区向任何客户端授予对所有 MIB 数据的读取访问权限。
要配置完整的 SNMP 功能,请在层次结构级别包含以下语句 [edit snmp]
:
snmp { client-list client-list-name { ip-addresses; } community community-name { authorization authorization; client-list-name client-list-name; clients { address restrict; } routing-instance routing-instance-name { clients { addresses; } } logical-system logical-system-name { routing-instance routing-instance-name { clients { addresses; } } } view view-name; } contact contact; description description; engine-id { (local engine-id | use-mac-address | use-default-ip-address); } filter-duplicates; health-monitor { falling-threshold integer; interval seconds; rising-threshold integer; } interface [ interface-names ]; location location; name name; nonvolatile { commit-delay seconds; } rmon { alarm index { description text-description; falling-event-index index; falling-threshold integer; falling-threshold-interval seconds; interval seconds; request-type (get-next-request | get-request | walk-request); rising-event-index index; sample-type type; startup-alarm alarm; syslog-subtag syslog-subtag; variable oid-variable; } event index { community community-name; description text-description; type type; } } traceoptions { file filename <files number> <size size> <world-readable | no-world-readable> <match regular-expression>; flag flag; } trap-group group-name { categories { category; } destination-port port-number; routing-instance instance; targets { address; } version (all | v1 | v2); } trap-options { agent-address outgoing-interface; source-address address; } view view-name { oid object-identifier (include | exclude); } }
另请参阅
示例:在 QFabric 系统上配置 SNMP
默认情况下,在运行 Junos OS 的设备上禁用 SNMP。此示例介绍在 QFabric 系统上配置 SNMP 的步骤。
要求
此示例使用以下硬件和软件组件:
Junos OS 12.2 版
网络管理系统 (NMS)(运行 SNMP 管理器)
具有多个节点设备的 QFabric 系统(运行 SNMP 代理)
概述
您必须通过在层次结构级别包含配置语句 [edit snmp]
来在设备上启用 SNMP。至少必须配置 community public
语句。定义为公共的社区向任何客户端授予对 MIB 数据的只读访问权限。
clients
如果未配置语句,则允许所有客户端。我们建议您始终包含 restrict
限制 SNMP 客户端访问交换机的选项。
拓扑学
此示例中的网络拓扑包括一个 NMS、一个具有四个节点设备的 QFabric 系统,以及为接收陷阱而配置的外部 SNMP 服务器。
配置
程序
CLI 快速配置
要快速配置此示例,请复制以下命令,将其粘贴到文本文件中,删除所有换行符,更改与您的网络配置匹配所需的任何详细信息,然后将命令复制并粘贴到层次结构级别的 CLI [edit]
中。
set snmp name “snmp qfabric” description “qfabric0 switch” set snmp location “Lab 4 Row 11” contact “qfabric-admin@qfabric0” set snmp community public authorization read-only set snmp client-list list0 192.168.0.0/24 set snmp community public client-list-name list0 set snmp community public clients 192.170.0.0/24 restrict set snmp trap-group “qf-traps” destination-port 155 targets 192.168.0.100
分步过程
以下示例要求您在配置层次结构中导航各个级别。有关如何执行此操作的说明,请参阅 Junos OS CLI 用户指南 中的在配置模式下使用 CLI 编辑器 。
要在 QFabric 系统上配置 SNMP:
如果姓名、说明、位置、联系人或社区名称包含空格,请用引号 (“ ”) 将文本括起来。
配置 SNMP 系统名称:
[edit snmp] user@switch# set name “snmp qfabric”
注:您可以访问上面配置的 SNMP 系统名称:
-
通过使用 SNMPGet 对策略对象标识符 (OID) sysName.0 执行查询。
-
来自通用的 jnxSyslogTrap。要发送 jnxSyslogTrap,请在层次结构中
[edit event-options policy]
配置陷阱事件。
-
指定描述。
[edit snmp] user@switch# set description “qfabric0 system”
此字符串放置在 MIB II 系统描述对象中。
指定 QFabric 系统的物理位置。
[edit snmp] user@switch# set location “Lab 4 Row 11”
此字符串放置在 MIB II sysLocation 对象中。
指定 SNMP 系统的管理联系人。
[edit snmp] user@switch# set contact “qfabric-admin@qfabric0”
此名称放置在 MIB II sysContact 对象中。
指定唯一的 SNMP 公共组名称和只读授权级别。
注:QFabric 系统不支持该
read-write
选项。[edit snmp] user@switch# set community public authorization read-only
使用一组可以使用 SNMP 公共组的 IP 地址创建客户端列表。
[edit snmp] user@switch# set client-list list0 192.168.0.0/24 user@switch# set community public client-list-name list0
指定限制使用社区的客户端的 IP 地址。
[edit snmp] user@switch# set community public clients 198.51.100.0/24 restrict
配置陷阱组、目标端口和目标以接收陷阱组中的 SNMP 陷阱。
[edit snmp] user@switch# set trap-group “qf-traps” destination-port 155 targets 192.168.0.100
注:如果使用默认端口 162,则不需要包含
destination-port
该语句。陷阱组 qf-traps 配置为将陷阱发送到 192.168.0.100。
结果
在配置模式下,输入 show
命令以确认您的配置。如果输出未显示预期的配置,请重复此示例中的说明,以便进行更正。
[edit] user@switch# show snmp { name "snmp qfabric"; description "qfabric0 system"; location "Lab 4 Row 11"; contact "qfabric-admin@qfabric0"; client-list list0 { 192.168.0.0/24; } community public { authorization read-only; clients { 198.51.100.0/24 restrict; } } trap-group qf-traps { destination-port 155; targets { 192.168.0.100; } } }
如果完成设备配置,请从配置模式输入 commit
。