Junos OS SNMP 常见问题解答
本文档介绍了用于在使用 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 支持没有区别。SNMP 配置、交互和行为在任何 Junos OS 设备上都是相同的。跨平台可能出现的唯一区别是 MIB 支持。
另请参阅 SNMP MIB 资源管理器 ,了解 Junos OS 平台支持的 MIB 列表。
Does Junos OS support the user-based security model (USM)?
是的,Junos OS 支持 USM,这是其对 SNMPv3 支持的一部分。与早期版本的 SNMP 相比,SNMPv3 包含更多的安全措施,包括提供定义的 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 设备上。您必须从瞻博网络技术出版物页面下载所需的 Junos OS 版本的 MIB 文件: 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 Explorer 或 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 均可从此位置下载。 -
单击 或
ZIP链接TAR下载 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 的依赖项。依赖项列在 MIB 文件的部分中
IMPORT。 -
加载标准 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) 是抽象语法标记 1 (ASN.1) 的一个子集,它描述了对象的结构。SMI 是符号语法或“语法”,是编写 MIB 的标准。
Which versions of SMI does Junos OS support?
Junos OS 支持 SMIv1 用于 SNMPv1 MIB,也支持 SMIv2 用于 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 仅受特定平台上的功能支持。
What is the system object identifier (SYSOID) of a device? How do I determine the SYSOID of my device?
jnx-chas-defines(路由器型号的机箱定义) MIB 为每台 Junos OS 设备设置一个 jnxProductName 分支。设备的系统对象 ID 与平台的对象 jnxProductName ID 相同。
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 设备和平台支持。请参阅 Junos OS 支持的标准 SNMP MIB 和 Junos OS 支持的企业特定 SNMP MIB 文档,查看 MIB 和受支持的 Junos OS 设备列表。
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 保持持久性。
Is it possible to set the ifAdminStatus?
不允许 SNMP 设置 ifAdminStatus。
Which MIB objects support SNMP set operations?
以下 MIB 表和变量支持 Junos OS SNMP 集操作:
-
snmpCommunityTable
-
事件表
-
警报表
-
snmpTargetAddrExtTable
-
jnxPingCtl表
-
pingCtl表
-
traceRouteCtlTable
-
jnxTraceRouteCtlTable
-
sysContact.0
-
系统名称.0
-
sysLocation.0
-
pingMaxConcurrentRequests.0
-
traceRouteMaxConcurrentRequests.0
-
usmUserSpinLock
-
usmUserOwnAuthKeyChange
-
usmUserPublic
-
vacmSecurityToGroupTable(vacmGroupName、vacmSecurityToGroupStorageType 和 vacmSecurityToGroupStatus)
-
vacmAccessTable(vacmAccessContextMatch、vacmAccessReadViewName、vacmAccessWriteViewName、vacmAccessNotifyViewName、vacmAccessStorageType 和 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 所示。
| 对象 |
描述 |
|---|---|
| jnxHrStoragePercentUsed.1 |
监控路由器或交换机上的以下文件系统: /dev/ad0s1a: 这是挂载在 |
| jnxHrStoragePercentUsed.2 |
监控路由器或交换机上的以下文件系统: /dev/ad0s1e: 这是挂载在 上的 |
| jnxOperatingCPU (RE0) |
监控路由引擎 RE0 和 RE1 的 CPU 使用率。分配给路由引擎的索引值取决于机箱 MIB 使用的索引方案是从零开始还是基于 1。由于索引方案是可配置的,因此无论何时初始化路由器还是在配置更改时,都会确定正确的索引。如果路由器或交换机只有一个路由引擎,则在五次尝试获取 CPU 值失败后,监控 RE1 的告警条目监控 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 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 值,例如 https://ascii-chart.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?
是的,您可以使用 and 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?
Informs 可与 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?
是的,可以在接口配置中禁用链路向上和链路向下陷阱。要禁用陷阱,请在 no-traps 和 [edit logical-systems logical-system-name interfaces interface-name unit logical-unit-number] 层次结构中使用[edit interfaces interface-name unit logical-unit-number]物理接口和逻辑接口的语句。
(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?
对于以太网接口,如果物理接口出现故障,Junos OS 不会为逻辑接口发送链路关闭陷阱,以防止由于相同的根本原因而出现泛洪报警。但是,当物理接口和逻辑接口恢复时,将发送陷阱,指示链路启动。这是因为启动的物理接口并不一定意味着逻辑接口也即将启动。
对于使用 PPP 封装的通道化接口,如果物理接口出现故障,Junos OS 确实会为逻辑接口发送链路关闭陷阱。当物理接口和逻辑接口恢复时,将为物理接口和逻辑接口发送陷阱,指示链路开启。
对于使用 HDLC 封装的通道化接口,如果物理接口关闭,Junos OS 不会为逻辑接口发送链路关闭陷阱。当物理接口和逻辑接口恢复时,将为物理接口和逻辑接口发送陷阱,指示链路开启。
In a dual Routing Engine (RE) configuration on JUNOS OS Evolved, which RE generates SNMP traps?
只有活动(主)路由引擎负责生成 SNMP 陷阱。备用(备份)RE 不会生成陷阱,以避免重复并确保陷阱报告的一致性。这种设计可防止重复的 SNMP 陷阱消息被发送到网络管理系统 (NMS),确保来自单一来源的事件报告清晰准确。
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 primary 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 primary 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,并忽略嵌入的路由实例名称。
逻辑系统执行物理路由器操作的子集,并具有自己独特的路由表、接口、策略和路由实例。在逻辑系统中定义路由实例时,必须使用斜线 ( / ) 将逻辑系统名称与路由实例一起编码,以将两者分隔开。例如,如果路由实例 RI 配置在逻辑系统 LS中,则该路由实例必须在社区字符串中编码为 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)?
是的。