Junos OS SNMP 常见问题解答
SUMMARY 本文档提供有关在使用 Junos 操作系统的瞻博网络设备上实施 SNMP 服务的功能和技术的最常见问题。
SNMP 使用户能够从一个中心位置监控网络设备。
Junos OS SNMP 支持常见问题解答
本节提供与 Junos OS 上的 SNMP 支持相关的常见问题和解答。
Which SNMP versions does Junos OS support?
Junos OS 支持 SNMP 版本 1 (SNMPv1)、版本 2 (SNMPv2c) 和版本 3 (SNMPv3)。默认情况下,瞻博网络设备上的 SNMP 处于禁用状态。
Which ports (sockets) does SNMP use?
SNMP 查询的默认端口为端口 161。SNMP 陷阱和通知的默认端口是端口 162。用于 SNMP 陷阱和通知的端口是可配置的,您可以将系统配置为使用默认端口 162 以外的端口。但是,SNMP 侦听端口将保持不变;这是在 RFC 上建立的。
Is SNMP support different among the Junos OS platforms?
否,Junos OS 平台之间的 SNMP 支持并无不同。任何 Junos OS 设备上的 SNMP 配置、交互和行为都是相同的。跨平台可能出现的唯一区别是 MIB 支持。
另请参阅 SNMP MIB 资源管理器 ,获取跨 Junos OS 平台支持的 MIB 列表。
Does Junos OS support the user-based security model (USM)?
是的,Junos OS 支持 USM,这是其对 SNMPv3 的支持的一部分。SNMPv3 包含比以前版本的 SNMP 更多的安全措施,包括提供定义的 USM。SNMPv3 USM 通过数据完整性、数据源身份验证、消息重放保护和防止泄露消息有效负载来提供消息安全性。
Does Junos OS support the view-based access control model (VACM)?
是的,Junos OS 支持 VACM,这是其对 SNMPv3 的支持的一部分。与以前版本的 SNMP 相比,SNMPv3 包含更多的安全措施,包括提供定义的 VACM。SNMPv3 VACM 确定是否允许对管理信息进行特定类型的访问(读取或写入)。
Does Junos OS support SNMP informs?
是的,Junos OS 支持 SNMP 通知,这是其对 SNMPv3 的支持的一部分。SNMP 通知是在网络设备上发生重大事件时从 SNMP 代理向 SNMP 管理器发送的确认通知。当 SNMP 管理器收到通知时,它会向发送方发送响应以验证是否收到通知。
Can I provision or configure a device using SNMP on Junos OS?
不可以,不允许在 Junos OS 上使用 SNMP 调配或配置设备。
Junos OS MIB 常见问题解答
本节提供与 Junos OS MIB 相关的常见问题和解答。
What is a MIB?
管理信息库 (MIB) 是网络设备中托管对象的定义表。SNMP 使用 MIB 来维护网络设备中所有组件及其操作条件的标准定义。MIB 中的每个对象都有一个称为对象标识符 (OID) 的标识代码。
MIB 可以是标准的,也可以是特定于企业的。标准 MIB 由互联网工程任务组 (IETF) 创建,并记录在各种 RFC 中。特定于企业的 MIB 由特定设备制造商开发和支持。
有关支持的标准 MIB 的列表,请参阅 Junos OS 支持的标准 SNMP MIB。
有关瞻博网络企业专用 MIB 的列表,请参阅 Junos OS 支持的特定于企业的 SNMP MIB。
Do MIB files reside on the Junos OS devices?
否,MIB 文件不驻留在 Junos OS 设备上。您必须从“瞻博网络技术出版物”页面下载 MIB 文件,以获取所需的 Junos OS 版本: SNMP MIB 资源管理器。
How do I compile and load the Junos OS MIBs onto an SNMP manager or NMS?
要使网络管理系统 (NMS) 识别和理解 Junos OS 使用的 MIB 对象,必须先使用 MIB 编译器将 MIB 文件加载到 NMS。MIB 编译器是解析 MIB 信息的实用程序,例如 NMS 的 MIB 对象名称、ID 和数据类型。
您可以从 SNMP MIB 资源管理器 或 https://www.juniper.net/documentation/software/junos/index.html 的“企业特定 MIB 和陷阱”部分下载 Junos OS MIB 软件包。
Junos OS MIB 软件包有两个文件夹:StandardMibs
,包含瞻博网络设备支持的标准 MIB,以及 JuniperMibs
,包含瞻博网络企业特定的 MIB。在下载任何特定于企业的 MIB 之前, 必须 下载并解压缩所需的标准 MIB。在加载特定的企业特定 MIB 之前,可能存在要求编译器上存在特定标准 MIB 的依赖项。
Junos OS MIB 软件包提供 .zip
和 .tar
格式。下载适合您要求的格式。
使用以下步骤为运行 Junos OS 的设备加载 MIB 文件:
-
导航到相应的瞻博网络软件下载页面,找到
Enterprise MIBs
该Enterprise-Specific MIBs and Traps
部分下的链接。注:尽管链接的标题
Enterprise MIBs
为 ,但标准 MIB 和企业特定的 MIB 都可以从此位置下载。 -
单击或
TAR
ZIP
链接下载 Junos OS MIB 软件包。 -
使用适当的实用程序解压缩文件(
.tar
.zip
或)。注:一些常用的 MIB 编译器预加载了标准 MIB。如果系统上已加载标准 MIB,则可以跳过步骤 4 和步骤 5,然后继续执行步骤 6。
-
从
StandardMibs
文件夹中加载标准 MIB 文件。按以下顺序加载文件:
-
mib-SNMPv2-SMI.txt
-
mib-SNMPv2-TC.txt
-
mib-IANAifType-MIB.txt
-
mib-IANA-RTPROTO-MIB.txt
-
mib-rfc1907.txt
-
mib-rfc2011a.txt
-
mib-rfc2012a.txt
-
mib-rfc2013a.txt
-
mib-rfc2863a.txt
-
-
加载任何剩余的标准 MIB 文件。
注:您必须遵循此过程中指定的顺序,并确保在加载特定于企业的 MIB 之前加载所有标准 MIB。在加载特定的企业特定 MIB 之前,可能存在要求编译器上存在特定标准 MIB 的依赖项。依赖项列在
IMPORT
MIB 文件的部分中。 -
加载标准 MIB 后,根据您的要求加载瞻博网络企业特定的 SMI MIB
mib-jnx-smi.txt
和以下可选 SMI MIB:-
mib-jnx-exp.txt—(推荐)用于瞻博网络实验性 MIB 对象
-
mib-jnx-js-smi.txt—(可选)用于瞻博网络安全 MIB 树对象
-
mib-jnx-ex-smi.txt—(可选)用于 EX 系列以太网交换机
-
-
从
JuniperMibs
文件夹中加载任何剩余的所需企业特定 MIB。提示:加载 MIB 文件时,如果编译器返回一条错误消息,指示任何对象未定义,请使用文本编辑器打开 MIB 文件,并确保在编译器上加载本节中
IMPORT
列出的所有 MIB 文件。如果编译器上未加载本节中IMPORT
列出的任何 MIB 文件,请先加载丢失的一个或多个文件,然后尝试加载失败的 MIB 文件。如果未按特定顺序加载文件,系统可能会返回错误。
What is SMI?
管理信息结构版本 (SMI) 是抽象语法表示法一 (ASN.1) 的子集,用于描述对象的结构。SMI 是符号语法或“语法”,是编写 MIB 的标准。
Which versions of SMI does Junos OS support?
Junos OS 支持 SMIv1 for SNMPv1 MIB,以及 SMIv2 for SNMPv2c 和企业 MIB。
Does Junos OS support MIB II?
是的,Junos OS 支持 MIB II,这是 MIB 标准的第二个版本。
MIB II的功能包括:
-
反映新业务需求的新增内容。
-
向后兼容原始 MIB 和 SNMP。
-
改进了对多协议实体的支持。
-
提高了可读性。
Are the same MIBs supported across all Juniper Networks devices?
所有 Junos OS 设备都支持一些常见的 MIB,例如接口 MIB (ifTable)、系统 MIB 和机箱 MIB。某些 MIB 仅受特定平台上的功能支持。例如,分支机构的 EX 系列以太网交换机和 SRX 系列防火墙支持网桥 MIB。
What is the system object identifier (SYSOID) of a device? How do I determine the SYSOID of my device?
jnx-chas-defined(路由器型号的机箱定义)MIB 的每个 Junos OS 设备都有一个 jnxProductName
分支。设备的系统对象 ID 与平台的对象 ID jnxProductName
相同。例如,对于 M7i 多服务边缘路由器,jnxProductNameM7i 在 jnxProductName 分支中为 .1.3.6.1.4.1.2636.1.1.1.1.2.10,这与 M7i (.1.3.6.1.4.1.2636.1.1.1.2.10) 的 SYSOID 相同。
How can I determine if a MIB is supported on a platform? How can I determine which MIBs are supported by a device?
Junos OS 技术文档中列出了 MIB 设备和平台支持。查看 MIB 和支持的 Junos OS 设备列表,请参阅 Junos OS 支持的标准 SNMP MIB 和 Junos OS 支持的企业特定 SNMP MIB 文档。
What can I do if the MIB OID query is not responding?
MIB OID 查询停止响应的原因可能有多种。一个原因可能是MIB本身没有响应。要验证 MIB 是否响应,请使用 show snmp mib walk | get MIB name | MIB OID
以下命令:
-
如果 MIB 响应,则 SNMP 主代理和 SNMP 代理之间存在通信问题。此问题的可能原因包括网络问题、不正确的社区配置、不正确的 SNMP 配置等。
-
如果 MIB 没有响应,请启用 SNMP
traceoptions
以记录 PDU 和错误。记录所有传入和传出的 SNMP PDU。traceoptions
检查输出以查看是否有任何错误。
如果您在使用 MIB OID 查询时仍然遇到问题,可通过瞻博网络技术援助中心 (JTAC) 获得技术产品支持。
What is the enterprise branch number for Junos OS?
Junos OS 的企业分支机构编号为 2636。企业分支机构编号用于 SNMP MIB 配置,也称为 SMI 网络管理私有企业代码。
Which MIB displays the hardware and chassis details on a Juniper Networks device?
机箱 MIB (jnxchassis.mib) 显示每个瞻博网络设备的硬件和机箱详细信息。它提供有关路由器及其组件的信息。机箱 MIB 对象表示每个组件及其状态。
Which MIB objects can I query to determine the CPU and memory utilization of the Routing Engine, Flexible PIC Concentrator (FPC), and PIC components on a device?
查询机箱 MIB 对象 jnxOperatingMemory
、 , jnxOperatingtBuffer
并 jnxOperatingCPU
找出设备硬件组件的 CPU 和内存利用率。
Is the interface index (ifIndex) persistent?
如果 Junos OS 版本保持不变,则重新启动时 ifIndex 将持续存在,这意味着分配给 ifIndex 中接口的值不会更改。
进行软件升级时,设备会尽力保持 ifIndex 的持久性。对于 Junos OS 10.0 版及更早版本,当软件升级到 Junos OS 10.1 版及更高版本时,ifIndex 不会持久。
Is it possible to set the ifAdminStatus?
不允许 SNMP 设置 ifAdminStatus。
Which MIB objects support SNMP set operations?
以下 MIB 表和变量支持 Junos OS SNMP 集操作:
-
snmp社区表
-
事件表
-
报警表
-
snmpTargetAddrExtTable
-
jnxPingCtlTable
-
pingCtlTable
-
traceRouteCtlTable
-
jnxTraceRouteCtlTable
-
sysContact.0
-
sysName.0
-
sysLocation.0
-
ping 最大并发请求.0
-
traceRouteMaxConcurrentRequests.0
-
usmUserSpinLock
-
usmUserOwnAuthKeyChange
-
usmUserPublic
-
vacmSecurityToGroupTable (vacmGroupName、vacmSecurityToGroupStorageType 和 vacmSecurityToGroupStatus)
-
vacmAccessTable (vacmAccessContextMatch, vacmAccessReadViewName, vacmAccessWriteViewName, vacmAccessNotifyViewName, vacmAccessStorageType, and vacmAccessStatus)
-
vacmViewSpinLock
-
vacmViewTreeFamilyTable (vacmViewTreeFamilyMask、vacmViewTreeFamilyType、vacmViewTreeFamilyStorageType 和 vacmViewTreeFamilyStatus)
Does Junos OS support remote monitoring (RMON)?
是的,Junos OS 支持 RFC 2819“ 远程网络监控管理信息库”中定义的 RMON。但是,不支持远程监视版本 2 (RMON 2)。
Can I use SNMP to determine the health of the processes running on the Routing Engine?
是的,您可以使用 SNMP 通过配置运行状况监控功能来确定路由引擎进程的运行状况。在瞻博网络设备上,RMON 告警和事件提供了减少 NMS 轮询开销所需的大部分基础设施。但是,您必须设置 NMS 以将特定 MIB 对象配置为 RMON 告警。这通常需要特定于设备的专业知识和自定义监视应用程序。此外,某些需要监视的 MIB 对象实例仅在初始化时设置,或者在运行时更改,无法提前配置。
为解决这些问题,运行状况监视器扩展了 RMON 报警基础架构,以便为一组选定的对象实例(例如文件系统使用情况、CPU 使用情况和内存使用情况)提供预定义的监控,并支持未知或动态对象实例(例如 Junos OS 软件进程)。
要显示运行状况监控配置,请使用 show snmp health-monitor
以下命令:
user@host> show snmp health-monitor interval 300; rising-threshold 90; falling-threshold 80;
配置运行状况监视器时,可以使用某些对象实例的监视信息,如 所示 表 1。
对象 |
Description |
---|---|
jnxHrStoragePercentUsed.1 |
监控路由器或交换机上的以下文件系统:/dev/ad0s1a: 这是挂载在 上的 |
jnxHrStoragePercentUsed.2 |
监控路由器或交换机上的以下文件系统:/dev/ad0s1e: 这是挂载在 上的 |
jnxOperatingCPU (RE0) |
监控路由引擎 RE0 和 RE1 的 CPU 使用率。分配给路由引擎的索引值取决于机箱 MIB 使用的是从零开始还是从 1 开始的索引方案。由于索引方案是可配置的,因此每当路由器初始化和配置更改时,都会确定正确的索引。如果路由器或交换机只有一个路由引擎,则在尝试获取 CPU 值失败五次失败后,将删除监控 RE1 的告警入口。 |
jnxOperatingCPU (RE1) |
|
jnxOperatingBuffer (RE0) |
监控路由引擎 RE0 和 RE1 上的可用内存量。由于此对象的索引与用于 jnxOperatingCPU 的索引相同,因此将根据机箱 MIB 中使用的索引方案调整索引值。与 jnxOperatingCPU 一样,如果路由器或交换机只有一个路由引擎,则会移除监控 RE1 的告警入口。 |
jnxOperatingBuffer (RE1) |
|
sysApplElmtRunCPU |
监控每个 Junos OS 软件进程的 CPU 使用率。单独监视同一进程的多个实例并为其编制索引。 |
sysApplElmtRunMemory |
监控每个 Junos OS 软件进程的内存使用情况。单独监视同一进程的多个实例并为其编制索引。 |
为任何运行状况监控器事件(如超出阈值和错误)生成的系统日志条目具有相应的 HEALTHMONITOR
标记,而不是通用 SNMPD_RMON_EVENTLOG
标记。但是,运行状况监视器会发送通用 RMON risingThreshold
和 fallingThreshold
陷阱。
Are the Ping MIBs returned in decimal notation and ASCII?
是的,支持十进制表示法和 ASCII,这是 SNMP 中的标准实现。所有字符串均采用 ASCII 编码。
以下示例以十六进制表示法显示 Ping MIB:
pingCtlTargetAddress.2.69.72.9.116.99.112.115.97.109.112.108.101 = 0a fa 01 02
这转换为 ASCII:
pingCtlTargetAddress."EH"."tcpsample" = 0a fa 01 02 2= length of the string 69=E 72=H 9=length of second string 116=t 99 =c 112=p 115=s 97=a 109=m 112 =p 108 =l 101 =e
从 Junos OS 9.6 版及更高版本开始,Junos OS CLI 使用命令 show snmp mib get | get-next | walk ascii
返回 ASCII 值。
以下示例显示了带有 ASCII 选项的输出:
user@host> show snmp mib walk pingCtlTargetAddress ascii pingCtlTargetAddress."EH"."httpgetsample" = http://www.yahoo.com pingCtlTargetAddress."p1"."t2" = 74 c5 b3 06 pingCtlTargetAddress."p1"."t3" = 74 c5 b2 0c
以下示例显示了不带 ASCII 选项的输出:
user@host> show snmp mib walk pingCtlTargetAddress pingCtlTargetAddress.2.69.72.13.104.116.116.112.103.101.116.115.97.109.112.108.101 = http://www.yahoo.com pingCtlTargetAddress.2.112.49.2.116.50 = 74 c5 b3 06 pingCtlTargetAddress.2.112.49.2.116.51 = 74 c5 b2 0c
您可以使用十进制 ASCII 图表转换十进制和 ASCII 值,如 http://www.asciichart.com 中的图表。
Is IPv6 supported by the Ping MIB for remote operations?
否,不支持 IPv6。
Is there an SNMP MIB to show Address Resolution Protocol (ARP) table information? Are both IP and MAC addresses displayed in the same table?
是的,Junos OS 支持标准 MIB ipNetToMediaTable
,这在 RFC 2011 使用 SMIv2 的互联网协议的 SNMPv2 管理信息库中进行了描述。此表用于将 IP 地址映射到其相应的 MAC 地址。
Junos OS SNMP 配置常见问题解答
本节提供与 Junos OS SNMP 配置相关的常见问题和解答。
Can the Junos OS be configured for SNMPv1 and SNMPv3 simultaneously?
是的,SNMP 具有向后兼容性,这意味着可以同时启用所有三个版本。
Can I filter specific SNMP queries on a device?
是的,您可以使用和include
语句过滤exclude
设备上的特定 SNMP 查询。
以下示例显示了一个配置,该配置阻止对社区 test
的 .1.3.6.1.2.1.1 下的所有 OID 执行读写操作:
user@host# show snmp view system-exclude { oid .1.3.6.1.2.1.1 exclude; oid .1 include; } community test { view system-exclude; authorization read-write; }
Can I change the SNMP agent engine ID?
是的,SNMP 代理引擎 ID 可以更改为设备的 MAC 地址、设备的 IP 地址或任何其他所需值。这里包括几个例子。
以下示例说明如何使用设备的 MAC 地址作为 SNMP 代理引擎 ID:
user@host# show snmp engine-id { use-mac-address; }
以下示例说明如何使用设备的 IP 地址作为 SNMP 代理引擎 ID:
user@host# show snmp engine-id { use-default-ip-address; }
以下示例显示如何使用所选值 AA
(在本例中)作为设备的 SNMP 代理引擎 ID:
user@host# show snmp engine-id { local AA; }
How can I configure a device with dual Routing Engines or a chassis cluster (SRX Series Services Gateways) for continued communication during a switchover?
配置为继续通信时,路由引擎之间的 SNMP 配置应相同。但是,最好为每个路由引擎配置单独的路由引擎 ID,尤其是在使用 SNMPv3 时。
以下示例显示了双路由引擎设备中路由引擎的配置。请注意,路由引擎 ID 设置为每个路由引擎的 MAC 地址:
user@host# show groups re0 { system { host-name PE3-re0; } interfaces { fxp0 { unit 0 { family inet { address 116.197.178.14/27; address 116.197.178.29/27 { master-only; } } } } } snmp { engine-id { use-mac-address; } } } re1 { system { host-name PE3-re1; } interfaces { fxp0 { unit 0 { family inet { address 116.197.178.11/27; address 116.197.178.29/27 { master-only; } } } } } snmp { engine-id { use-mac-address; } } }
以下是双路由引擎设备上的 SNMPv3 配置示例:
user@host> show snmp name host1 v3 { vacm { security-to-group { security-model usm { security-name test123 { group test1; } security-name juniper { group test1; } } } access { group test1 { default-context-prefix { security-model any { security-level authentication { read-view all; } } } context-prefix MGMT_10 { security-model any { security-level authentication { read-view all; } } } } } } target-address server1 { address 116.197.178.20; tag-list router1; routing-instance MGMT_10; target-parameters test; } target-parameters test { parameters { message-processing-model v3; security-model usm; security-level authentication; security-name juniper; } notify-filter filter1; } notify server { type trap; tag router1; } notify-filter filter1 { oid .1 include; } view all { oid .1 include; } community comm1 { view all; } community comm2; community comm3; community comm3 { view all; authorization read-only; logical-system LDP-VPLS { routing-instance vpls-server1; } } trap-group server1 { targets { 116.197.179.22; } } routing-instance-access; traceoptions { flag all; } }
How can I track SNMP activities?
SNMP 跟踪操作跟踪 SNMP 代理的活动并将信息记录在日志文件中。
示例 traceoptions
配置可能如下所示:
[edit snmp] user@host# set traceoptions flag all
在层次结构级别包含[edit snmp]
语句traceoptions flag all
时,将创建以下日志文件:
-
SNMPD
-
Mib2D
-
RMOPD
SNMPv3 常见问题解答
本节介绍与 SNMPv3 相关的常见问题和解答。
Why is SNMPv3 important?
与其他版本的 SNMP 相比,SNMP v3 提供了增强的安全性。它提供数据的身份验证和加密。增强的安全性对于从管理站管理远程站点的设备非常重要。
In my system, the MIB object snmpEngineBoots is not in sync between two Routing Engines in a dual Routing Engine device. Is this normal behavior?
是的,这是预期行为。每个路由引擎运行自己的 SNMP 进程 (snmpd),允许每个路由引擎维护自己的引擎启动。但是,如果两个路由引擎具有相同的引擎 ID,并且在切换过程中选择值较小的 snmpEngineBoots
路由引擎作为主路由引擎, snmpEngineBoots
则主路由引擎的值将与其他路由引擎的值同步 snmpEngineBoots
。
Do I need the SNMP manager engine object identifier (OID) for informs?
是的,SNMP 管理器的引擎 OID 是身份验证所必需的,没有它,通知将不起作用。
I see the configuration of informs under the [edit snmp v3] hierarchy. Does this mean I cannot use informs with SNMPv2c?
通知可以与 SNMPv2c 一起使用。以下示例显示了设备上 SNMPv3 通知的基本配置(请注意,身份验证和隐私设置为无):
[edit snmp] v3 { usm { remote-engine 00000063000100a2c0a845b3 { 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 如何与瞻博网络设备交互相关的常见问题和解答。
How frequently should a device be polled? What is a good polling rate?
很难给出每秒SNMP轮询速率的绝对数字,因为该速率取决于以下两个因素:
-
协议数据单元 (PDU) 中的变量绑定数
-
数据包转发引擎接口的响应时间
在数据包转发引擎没有引入延迟并且每个 PDU 有一个变量(Get 请求)的正常情况下,响应时间为每秒 130+ 响应。但是,由于 SNMP 请求 PDU 中有多个变量(GetBulk 请求为 30 到 40),每秒的响应数要少得多。由于数据包转发引擎负载可能因每个系统而异,因此轮询设备的频率差异更大。
频繁轮询大量计数器(尤其是统计信息)可能会影响设备。我们建议对 SNMP 管理器进行以下优化:
-
使用逐行轮询方法,而不是逐列方法。
-
减少每个 PDU 的变量绑定数量。
-
增加轮询和发现间隔中的超时值。
-
降低 SNMP 进程 (snmpd) 的传入数据包速率。
为了在设备上获得更好的 SNMP 响应,Junos OS 执行以下操作:
-
过滤掉重复的 SNMP 请求。
-
排除 SNMP 查询响应缓慢的接口。
确定速率限制的一种方法是注意命令中show snmp statistics extensive
计数的增加Currently Active
。
以下是命令 show snmp statistics extensive
的示例输出:
user@host> show snmp statistics extensive SNMP statistics: Input: Packets: 226656, Bad versions: 0, Bad community names: 0, Bad community uses: 0, ASN parse errors: 0, Too bigs: 0, No such names: 0, Bad values: 0, Read onlys: 0, General errors: 0, Total request varbinds: 1967606, Total set varbinds: 0, Get requests: 18478, Get nexts: 75794, Set requests: 0, Get responses: 0, Traps: 0, Silent drops: 0, Proxy drops: 0, Commit pending drops: 0, Throttle drops: 27084, Duplicate request drops: 0 V3 Input: Unknown security models: 0, Invalid messages: 0 Unknown pdu handlers: 0, Unavailable contexts: 0 Unknown contexts: 0, Unsupported security levels: 0 Not in time windows: 0, Unknown user names: 0 Unknown engine ids: 0, Wrong digests: 0, Decryption errors: 0 Output: Packets: 226537, Too bigs: 0, No such names: 0, Bad values: 0, General errors: 0, Get requests: 0, Get nexts: 0, Set requests: 0, Get responses: 226155, Traps: 382 SA Control Blocks: Total: 222984, Currently Active: 501, Max Active: 501, Not found: 0, Timed Out: 0, Max Latency: 25 SA Registration: Registers: 0, Deregisters: 0, Removes: 0 Trap Queue Stats: Current queued: 0, Total queued: 0, Discards: 0, Overflows: 0 Trap Throttle Stats: Current throttled: 0, Throttles needed: 0 Snmp Set Stats: Commit pending failures: 0, Config lock failures: 0 Rpc failures: 0, Journal write failures: 0 Mgd connect failures: 0, General commit failures: 0
Does SNMP open dynamic UDP ports? Why?
SNMP 进程会打开两个附加端口(套接字):一个用于 IPv4,一个用于 IPv6。这使 SNMP 进程能够发送陷阱。
I am unable to perform a MIB walk on the ifIndex. Why is this?
访问级别为的任何 not-accessible
变量绑定或值都无法直接查询,因为它们是 SNMP MIB 表中其他变量绑定的一部分。ifIndex 的访问级别为 not-accessible
。因此,不能直接访问它,因为它是变量绑定的一部分。但是,可以通过变量绑定间接访问 ifIndex。
I see SNMP_IPC_READ_ERROR messages when the SNMP process restarts on my system and also during Routing Engine switchover. Is this acceptable?
是的,在重新启动 SNMP 进程、系统重新启动或路由引擎切换期间看到 SNMP_IPC_READ_ERROR
消息是可以接受的。如果所有进程都成功启动并且SNMP操作正常工作,则可以忽略这些消息。
What is the source IP address used in the response PDUs for SNMP requests? Can this be configured?
用于 SNMP 请求的响应 PDU 的源 IP 地址是到达目标的传出接口的 IP 地址。无法为响应配置源 IP 地址。只能为陷阱配置它。
SNMP 陷阱和通知常见问题解答
本节提供与 SNMP 陷阱和通知相关的常见问题和解答。
Does the Junos OS impose any rate limiting on SNMP trap generation?
Junos OS 实施陷阱队列机制来限制生成和发送的陷阱数量。
如果陷阱传递失败,则会将陷阱添加回队列,并重置队列的传递尝试计数器和下一次传递尝试计时器。后续尝试以 1、2、4 和 8 分钟的渐进间隔进行。两次尝试之间的最大延迟为 8 分钟,最大尝试次数为 10。尝试 10 次失败后,将删除目标队列和队列中的所有陷阱。
Junos OS 还具有限制阈值机制,用于控制在特定限制间隔(默认为 5 秒)内发送的陷阱数量(默认为 500 个陷阱)。这有助于确保陷阱流量的一致性,尤其是当由于接口状态更改而生成大量陷阱时。
当第一个陷阱到达油门时,油门间隔开始。将处理油门阈值内的所有陷阱,超过阈值的陷阱将排队。所有陷阱队列(限制队列和目标队列)的最大大小为 40,000 个陷阱。任何一个队列的最大大小为 20,000 个陷阱。将陷阱添加到限制队列时,或者如果限制队列已超过最大大小,则陷阱将移动到目标队列的顶部。从目标队列发送陷阱的进一步尝试将停止 30 秒,之后目标队列将重新开始发送陷阱。
对于瞻博网络 EX 系列以太网交换机,所有陷阱队列(限制队列和目标队列)的最大大小为 1,000 个陷阱。EX 系列上任何一个队列的最大大小为 500 个陷阱。
I did not see a trap when I had a syslog entry with a critical severity. Is this normal? Can it be changed?
并非每个严重严重的系统日志条目都是陷阱。但是,您可以使用该 event-options
语句将任何系统日志条目转换为陷阱。
以下示例说明如何在发生系统日志条目消息错误时rpd_ldp_nbrdown
配置 。jnxSyslogTrap
user@host> show event-options policy snmptrap { events rpd_ldp_nbrdown; then { raise-trap; } }
Are SNMP traps compliant with the Alarm Reporting Function (X.733) on the Junos OS?
否,Junos OS 上的 SNMP 陷阱不符合 X.733 标准。
Can I set up filters for traps or informs?
可以根据陷阱类别和对象标识符过滤陷阱和通知。您可以使用层次结构级别的语句[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; } }
Can I simulate traps on a device?
是的,您可以使用命令将 request snmp spoof-trap trap name
陷阱模拟到通常接收设备陷阱的 NMS。您还可以使用 variable-bindings
参数添加所需的值。
以下示例说明如何使用变量绑定模拟本地 NMS 的陷阱:
user@host> request snmp spoof-trap linkDown variable-bindings "ifIndex[116]=116, ifAdminStatus[116]=1 ,ifOperStatus[116]=2 , ifName[116]=ge-1/0/1"
How do I generate a warm start SNMPv1 trap?
在正常情况下重新启动 SNMP 进程时,如果系统正常运行时间超过 5 分钟,将生成热启动陷阱。如果系统正常运行时间少于 5 分钟,则会生成冷启动陷阱。
The NMS sees only the MIB OIDs and numbers, but not the names of the SNMP traps. Why?
在 NMS 能够识别 SNMP 陷阱详细信息(例如陷阱的名称)之前,它必须先编译并理解 MIB,然后再解析 MIB OID。
In the Junos OS, how can I determine to which category a trap belongs?
有关常见陷阱及其类别的列表,请参阅 SNMP MIB 资源管理器 。
Can I configure a trap to include the source IP address?
是的,您可以使用以下命令trap-options
为源 IP 地址配置 source-address
、 routing-instance
或logical-instance
名称:
user@host> show snmp trap-options source-address 10.1.1.1;
Can I create a custom trap?
是的,您可以根据需要使用 jnxEventTrap
事件脚本创建自定义陷阱。
在以下示例中,收到事件时 UI_COMMIT_NOT_CONFIRMED
会触发 Junos OS 操作 (op) 脚本。Junos OS 操作脚本匹配事件的完整消息并生成 SNMP 陷阱。
示例:Junos OS 操作脚本
version 1.0; ns junos = "http://xml.juniper.net/junos/*/junos"; ns xnm = "http://xml.juniper.net/xnm/1.1/xnm"; ns jcs = "http://xml.juniper.net/junos/commit-scripts/1.0"; param $event; param $message; match / { /* * trapm utilty wants the following characters in the value to be escaped * '[', ']', ' ', '=', and ',' */ var $event-escaped = { call escape-string($text = $event, $vec = '[] =,'); } var $message-escaped = { call escape-string($text = $message, $vec = '[] =,'); } <op-script-results> { var $rpc = <request-snmp-spoof-trap> { <trap> "jnxEventTrap"; <variable-bindings> "jnxEventTrapDescr[0]='Event-Trap' , " _ "jnxEventAvAttribute[1]='event' , " _ "jnxEventAvValue[1]='" _ $event-escaped _ "' , " _ "jnxEventAvAttribute[2]='message' , " _ "jnxEventAvValue[1]='" _ $message-escaped _ "'"; } var $res = jcs:invoke($rpc); } } template escape-string ($text, $vec) { if (jcs:empty($vec)) { expr $text; } else { var $index = 1; var $from = substring($vec, $index, 1); var $changed-value = { call replace-string($text, $from) { with $to = { expr "\\"; expr $from; } } } call escape-string($text = $changed-value, $vec = substring($vec, $index + 1)); } } template replace-string ($text, $from, $to) { if (contains($text, $from)) { var $before = substring-before($text, $from); var $after = substring-after($text, $from); var $prefix = $before _ $to; expr $before; expr $to; call replace-string($text = $after, $from, $to); } else { expr $text; } }
创建自定义陷阱后,您必须在设备上配置策略,以告知设备在收到陷阱后要执行的操作。
下面是层次结构下 [edit event-options]
配置的策略的示例:
[edit event-options] user@host> show policy trap-on-event { events UI_COMMIT_NOT_CONFIRMED; attributes-match { UI_COMMIT_NOT_CONFIRMED.message matches complete; } then { event-script ev-syslog-trap.junos-op { arguments { event UI_COMMIT_NOT_CONFIRMED; message "{$$.message}"; } } } }
Can I disable link up and link down traps on interfaces?
是的,可以在接口配置中禁用向上和向下链接陷阱。要禁用陷阱,请在物理和逻辑接口的 和[edit interfaces interface-name unit logical-unit-number]
[edit logical-systems logical-system-name interfaces interface-name unit logical-unit-number]
层次结构中使用no-traps
语句。
(traps | no-traps);
I see the link up traps on logical interfaces, but I do not see the link down traps. Is this normal behavior?
对于以太网和 ATM 类型的接口,如果物理接口关闭,Junos OS 不会为逻辑接口发送链路关闭陷阱,以防止针对同一根本原因的泛洪警报。但是,当物理接口和逻辑接口恢复时,会发送陷阱,指示链路已启动。这是因为物理接口即将启动并不一定意味着逻辑接口也将启动。
对于采用 PPP 封装的 SONET 类型的接口,如果物理接口关闭,Junos OS 会为逻辑接口发送链路关闭陷阱。当物理接口和逻辑接口恢复时,系统会为指示链路连接的物理接口和逻辑接口发送陷阱。
对于采用 HDLC 封装的 SONET 类型的接口,如果物理接口关闭,Junos OS 不会为逻辑接口发送链路关闭陷阱。当物理接口和逻辑接口恢复时,系统会为指示链路连接的物理接口和逻辑接口发送陷阱。
对于使用 PPP 封装的通道化接口,如果物理接口关闭,Junos OS 会为逻辑接口发送链路关闭陷阱。当物理接口和逻辑接口恢复时,系统会为指示链路连接的物理接口和逻辑接口发送陷阱。
对于使用 HDLC 封装的通道化接口,如果物理接口关闭,Junos OS 不会为逻辑接口发送链路关闭陷阱。当物理接口和逻辑接口恢复时,系统会为指示链路连接的物理接口和逻辑接口发送陷阱。
Junos OS 双路由引擎配置常见问题解答
本节介绍与配置双路由引擎相关的常见问题和解答。
配置持续通信时,路由引擎之间的 SNMP 配置应相同。但是,在使用 SNMPv3 时,我们建议为每个路由引擎配置单独的路由引擎 ID。
In my system, the MIB object snmpEngineBoots is not in sync between two Routing Engines in a dual Routing Engine device. Is this normal behavior?
是的。这是正常行为。每个路由引擎运行自己的 SNMP 进程 (snmpd) 代理,允许每个路由引擎维护自己的引擎启动。
Is there a way to identify that an address belongs to RE0, RE1, or the master Routing Engine management interface (fxp0) by looking at an SNMP walk?
不。在设备上执行 SNMP 遍历时,它仅显示主路由引擎管理接口地址。
What is the best way to tell if the current IP address belongs to fxp0 or a Routing Engine, from a CLI session?
路由引擎与接口映射 fxp0
。这意味着当您查询 RE0 时,ifTable 仅报告 fxp0
RE0 的接口地址。同样,如果查询 RE1,ifTable 仅报告 fxp0
RE1 的接口地址。
When there is a failover, the master hostname is changed since the hostname belongs to the Routing Engine. Is this correct?
是的。您可以配置相同的主机名或不同的主机名。两者都行得通。
如果仅配置了主 IP 地址(例如,192.168.2.5),并且 sysDescr.0
对象在两个路由引擎上配置了相同的字符串,则即使在切换后,该对象也会 sysDescr.0
返回相同的值。以下示例显示了使用命令获得 snmpget
的结果:
bng-junos-pool02: /c/svivek/PR_BRANCH/src> snmpget -c jnpr -v2c 192.168.2.5 sysDescr.0 system.sysDescr.0 = foo
路由实例的 SNMP 支持常见问题解答
本节介绍与 SNMP 如何支持路由实例相关的常见问题和解答。
Can the SNMP manager access data for routing instances?
是的,Junos OS 允许所有路由实例的 SNMP 管理器请求和管理与相应路由实例和逻辑系统网络相关的 SNMP 数据。
可能会出现两种不同的路由实例行为,具体取决于客户端的来源:
-
来自默认路由实例以外的客户端只能在其所属的逻辑系统网络上访问 MIB 对象和执行 SNMP 操作。
-
默认路由实例中的客户端可以访问与所有路由实例和逻辑系统网络相关的信息。
路由实例由 SNMPv3 请求中的上下文字段标识,或在 SNMPv1 或 SNMPv2c 请求中的社区字符串中编码。
在社区字符串中编码时,路由实例名称首先出现,并通过 @ 字符与实际社区字符串分隔。
为避免与包含 @ 字符的有效社区字符串发生冲突,仅当典型的社区字符串处理失败时,才会解析社区。例如,如果配置了名为的RI
路由实例,则会在该路由实例的RI
上下文中处理 的 RI@public
SNMP 请求。访问控制(包括视图、源地址限制和访问权限)是根据实际的社区字符串(在本例 public
中为 @ 字符之后的数据集)应用的。但是,如果配置了公共组字符串 RI@public
,则会根据该社区处理 PDU,并忽略嵌入的路由实例名称。
逻辑系统执行物理路由器操作的子集,并具有自己唯一的路由表、接口、策略和路由实例。在逻辑系统中定义路由实例时,必须使用斜杠 ( / ) 对逻辑系统名称与路由实例一起进行编码,以分隔两者。例如,如果在逻辑系统中LS
配置了路由实例RI
,则该路由实例必须在社区字符串中编码为 LS/RI@public
。在逻辑系统外部(默认逻辑系统内)配置路由实例时,不需要逻辑系统名称或 /
字符。
此外,创建逻辑系统时,始终会在逻辑系统中创建名为的默认 default
路由实例。查询该路由实例的数据时应使用此名称,例如 LS/default@public
。对于 SNMPv3 请求,应直接在上下文字段中标识名称 logical system/routing instance
。
Can I access a list of all routing instances on a device?
是的,您可以使用 SNMP-VIEW-BASED-ACM MIB 中的 vacmContextName 对象访问设备上所有路由实例的列表。在 SNMP 中,每个路由实例都成为 VACM 上下文;这就是路由实例出现在 vacmContextName 对象中的原因。
Can I access a default routing instance from a client in another logical router or routing instance?
不可以,SNMP 代理只能访问它所连接的逻辑路由器的数据。
SNMP 计数器常见问题解答
本节介绍与 SNMP 计数器相关的常见问题和解答。
Which MIB should I use for interface counters?
通过 SNMP 进行的接口管理基于两个表:及其 ifTable
扩展名 ifXTable
. 这两者都在 RFC 1213, 基于 TCP/IP 的互联网的网络管理管理信息库中进行了描述:MIB-II 和 RFC 2233, 使用 SMIv2 的接口组 MIB。
接口可以有多个层,具体取决于介质,每个子层由表中的单独行表示。中介绍了 ifStackTable
较高层和较低层之间的关系。
它 ifTable
为入站和出站八位组 (ifInOctets/ifOutOctets)、数据包 (ifInUcastPkts/ifOutUcastPkts、ifInNUcastPkts/ifOutNUcastPkts)、错误和丢弃定义了 32 位计数器。
为 ifXTable
入站和出站八位组 (ifHCInOctets/ifHCOutOctets) 和入站数据包 (ifHCInUcastPkts) 提供类似的 64 位计数器,也称为高容量 (HC) 计数器。
When should 64-bit counters be used?
使用 64 位计数器总是好的,因为它们包含低容量和高容量组件的统计信息。
Are the SNMP counters ifInOctets and ifOutOctets the same as the command reference show interfaces statistics in and out counters?
是的,这些是相同的,但前提是路由器启动时启用了 SNMP。如果打开瞻博网络设备的电源,然后启用 SNMP,则 SNMP 计数器将从 0 开始。SNMP 计数器不会自动从命令输出接收 show
其统计信息。同样,使用该 clear statistics
命令不会清除 SNMP 计数器收集的统计信息,这可能会导致两个进程看到的数据出现差异。
Do the SNMP counters ifInOctets and ifOutOctets include the framing overhead for Point-to-Point Protocol (PPP) and High-Level Data Link Control (HDLC)?
是的。