Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

为路由实例配置 SNMP

了解路由实例的 SNMP 支持

Junos OS 使所有路由实例的 SNMP 管理器能够请求和管理与相应路由实例和逻辑系统网络相关的 SNMP 数据。

在 Junos OS 中:

  • 来自默认路由实例和/或逻辑系统的客户端可以访问 MIB 对象,并仅在其所属的路由实例和/或逻辑系统网络上执行 SNMP 操作。

  • 来自默认路由实例的客户端可以访问与所有路由实例和逻辑系统网络相关的信息。

  • Junos 管理路由实例 (mgmt_junos) 是一个特殊实例。来自管理路由实例的客户端会被视为处于默认路由实例中,并且可以访问与所有路由实例和逻辑系统网络相关的信息。

在 Junos OS 8.4 版之前,只有默认路由实例 (inet.0) 中的 SNMP 管理器可以访问 MIB 对象。

随着虚拟专用网络 (VPN) 服务产品的增加,此功能特别适合需要获取特定路由实例的 SNMP 数据的服务提供商(请参阅 图 1)。服务提供商可以将这些信息用于满足自己的管理需求,或导出数据供客户使用。

图 1: 路由实例的 SNMP 数据路由实例的 SNMP 数据

如果请求中未指定任何路由实例,SNMP 代理将按之前操作:

  • 对于非路由表对象,所有实例都会公开。

  • 对于路由表对象,只会显示那些与默认路由实例关联的对象。

    注:

    实际协议数据单元 (PDU) 仍然通过默认 (inet.0) 路由实例交换,但返回的数据内容受请求 PDU 中指定的路由实例规定。

SNMPv3 管理路由实例

从 Junos OS 19.4R1 开始,您可以在所需的路由实例中配置 SNMPv3 管理接口,以访问与所有路由实例和逻辑系统网络相关的信息,而不特定于入口路由实例。您可以在层级配置管理实例配置语句 [edit snmp v3]

优势

SNMPv3 管理路由实例允许来自非默认路由实例的所有 SNMPv3 请求,就像这些请求来自默认路由实例一样。使用 SNMPv3 管理路由实例,您可以访问与所有路由实例和逻辑系统网络相关的信息。

启用管理路由实例

要启用 SNMPv3 管理路由实例:

  1. 配置管理实例语句。

  2. 提交配置。

移除管理路由实例

要移除 SNMPv3 管理路由实例:

  1. 删除或停用 SNMPv3 管理路由实例语句。

您无法在 [edit snmp v3 management-routing-instance <routing-instance>] 层次结构级别配置 Junos 管理路由实例 (mgmt_junos),因为默认情况下,mgmt_junos该实例可以访问所有路由实例。

路由实例支持的 SNMP MIB

表 1 显示了 Junos OS 支持的特定于企业的 MIB 对象,并提供说明,详细说明了在 SNMP 请求中指定路由实例时如何处理这些对象。破折号 (–) 表示该项目不适用。

表 1: 对路由实例的 MIB 支持(瞻博网络 MIB)

对象

支持类

说明/备注

jnx 产品 (1)

-

产品对象 ID

jnx 服务 (2)

-

服务

jnxMibs (3)

jnxBoxAnatomy (1)

3 类

对象仅对默认逻辑系统公开。

mpls (2)

2 类

逻辑系统中的所有实例都会公开。数据不会隔离到路由实例级别。

ifJnx (3)

1 类

只会显示属于特定路由实例的逻辑接口(及其父物理接口)。

jnxAlarms (4)

3 类

对象仅对默认逻辑系统公开。

jnxFirewalls (5)

4 类

数据不会由路由实例隔离。所有实例都公开。

jnxDCU (6)

1 类

只会显示属于特定路由实例的逻辑接口(及其父物理接口)。

jnxPingMIB (7)

3 类

对象仅对默认逻辑系统公开。

jnxTraceRouteMIB (8)

3 类

对象仅对默认逻辑系统公开。

jnxATM (10)

1 类

只会显示属于特定路由实例的逻辑接口(及其父物理接口)。

jnxIpv6(11)

4 类

数据不会由路由实例隔离。所有实例都公开。

jnxIpv4(12)

1 类

jnxIpv4AddrTable(1). 只会显示属于特定路由实例的逻辑接口(及其父物理接口)。

jnxRmon (13)

3 类

jnxRmonAlarmTable (1)。对象仅对默认逻辑系统公开。

jnxLdp (14)

2 类

jnxLdpTrapVars (1)。逻辑系统中的所有实例都会公开。数据不会隔离到路由实例级别。

jnxCos (15)

jnxCosIfqStatsTable (1) jnxCosFcTable (2) jnxCosFcIdTable (3) jnxCosQstatTable (4)

3 类

对象仅对默认逻辑系统公开。

jnxScu (16)

jnxScuStatsTable (1)

1 类

只会显示属于特定路由实例的逻辑接口(及其父物理接口)。

jnxRpf (17)

jnxRpfStatsTable (1)

1 类

只会显示属于特定路由实例的逻辑接口(及其父物理接口)。

jnxCfgMgmt (18)

3 类

对象仅对默认逻辑系统公开。

jnxPMon (19)

jnxPMonFlowTable (1)

jnxPMonErrorTable (2)

jnxPMonMemoryTable (3)

1 类

只会显示属于特定路由实例的逻辑接口(及其父物理接口)。

jnxSonet (20)

jnxSonetAlarmTable (1)

1 类

只会显示属于特定路由实例的逻辑接口(及其父物理接口)。

jnxAtmCos (21)

jnxCosAtmVcTable (1)

jnxCosAtmScTable (2)

jnxCosAtmVcQstatsTable (3)

jnxCosAtmTrunkTable (4)

1 类

只会显示属于特定路由实例的逻辑接口(及其父物理接口)。

ipSecFlowMonitorMIB (22)

-

-

jnxMac (23)

jnxMacStats (1)

1 类

只会显示属于特定路由实例的逻辑接口(及其父物理接口)。

apsMIB (24)

3 类

对象仅对默认逻辑系统公开。

jnxChassisfines (25)

3 类

对象仅对默认逻辑系统公开。

jnxVpnMIB (26)

2 类

逻辑系统中的所有实例都会公开。数据不会隔离到路由实例级别。

jnxEricesInfoMib(27)

1 类

只会显示属于特定路由实例的逻辑接口(及其父物理接口)。

jnxCollectorMIB (28)

1 类

只会显示属于特定路由实例的逻辑接口(及其父物理接口)。

jnxHistory (29)

-

-

jnxSpMIB (32)

3 类

对象仅对默认逻辑系统公开。

表 2 显示了 Junos OS 支持的 1 类 MIB 对象(标准和特定于企业的 MIB)。对于 1 类对象,只会显示属于特定路由实例的逻辑接口(及其父物理接口)。

表 2: 1 类 MIB 对象(标准和瞻博网络 MIB)

MIB

对象

1 类

802.3ad.mib

(dot3adAgg)MIB 对象:

dot3adAggTable

dot3adAggPortListTable

(dot3adAggPort)

dot3adAggPortTable

dot3adAggPortStatsTable

dot3adAggPortDebugTable

rfc2863a.mib

ifTable

ifXTable

ifStackTable

rfc2011a.mib

ipAddrTable

ipNetToMediaTable

rtmib.mib

ipForward (ipCidrRouteTable)

rfc2665a.mib

dot3StatsTable

dot3ControlTable

dot3PauseTable

rfc2495a.mib

dsx1ConfigTable

dsx1CurrentTable

dsx1IntervalTable

dsx1TotalTable

dsx1FarEndCurrentTable

dsx1FarEndIntervalTable

dsx1FarEndTotalTable

dsx1FracTable ...

rfc2496a.mib

dsx3 (dsx3ConfigTable)

rfc2115a.mib

frDlcmiTable(以及相关的 MIB 对象)

rfc3592.mib

sonetMediumTable(以及相关的 MIB 对象)

rfc3020.mib

mfrMIB

mfrBundleTable

mfrMibBundleLink 对象

mfrBundleIfDexMappingTable

(和相关 MIB 对象)

ospf2mib.mib

所有对象

ospf2trap.mib

所有对象

bgpmib.mib

所有对象

rfc2819a.mib

示例:etherStatsTable

1 类

rfc2863a.mib

例子:

ifXtable

ifStackTable

rfc2665a.mib

etherMIB

rfc2515a.mib

atmMIB 对象

例子:

atmInterfaceConfTable

atmVplTable

atmVclTable

rfc2465.mib

ip-v6mib

例子:

ipv6IfTable

ipv6AddrPrefixTable

ipv6NetToMediaTable

ipv6RouteTable

rfc2787a.mib

vrrp mib

rfc2932.mib

IPMRouteMIB

ipMRouteStdMIB

mroutemib.mib

ipMRoute1MIBObjects

isismib.mib

ISISMIB

pimmib.mib

pimMIB

msdpmib.mib

msdpmib

jnx-if-extensions.mib

例子:

ifJnxTable

ifChassisTable

jnx-dcu.mib

jnxDCU

jnx-atm.mib

例子:

jnxAtmIfTable

jnxAtmVCTable

jnxAtmVpTable

jnx-ipv4.mib

jnxipv4

示例:jnxIpv4AddrTable

jnx-cos.mib

例子:

jnxCosIfq 统计数据表

jnxCosQstatTable

jnx-scu.mib

示例:jnxScuStatsTable

jnx-rpf.mib

示例:jnx RpfStatsTable

jnx-pmon.mib

示例:jnxPMonFlowTable

jnx-sonet.mib

示例:jnxSonetAlarmTable

1 类

jnx-atm-cos.mib

例子:

jnxCosAtmVcTable

jnxCosAtmVcScTable

jnxCosAtmVcQstatsTable

jnxCosAtmTrunkTable

jnx-mac.mib

示例:jnxMacStatsTable

jnx-services.mib

示例:jnxSvcFlowTableAggStatsTable

jnx-coll.mib

jnxCollectorMIB

例子:

jnxCollPicIfTable

jnxCollFileEntry

表 3 显示了 Junos OS 支持的 2 类 MIB 对象(标准和特定于企业的 MIB)。使用 2 类对象,逻辑系统中的所有实例都会公开。数据不会隔离到路由实例级别。

表 3: 2 类 MIB 对象(标准和瞻博网络 MIB)

MIB

对象

2 类

rfc3813.mib

mplsLsrStdMIB

例子:

mplsInterfaceTable

mpls中分段表

mplsOut分段表

mplsLabelStackTable

mplsXCTable

(和相关 MIB 对象)

igmpmib.mib

igmpStdMIB

注:

这是 igmpmib.mib 实验树中 IGMP 标准 MIB 的草案版本。Junos OS 不支持原始 IGMP 标准 MIB。

l3vpnmib.mib

mplsVpnmib

jnx-mpls.mib

示例:mplsLspList

jnx-ldp.mib

jnxLdp

示例:jnxLdp 统计数据表

jnx-vpn.mib

jnxVpnMIB

jnx-bgpmib2.mib

jnxBgpM2Experiment

表 4 显示了 Junos OS 支持的 3 类 MIB 对象(标准和特定于企业的 MIB)。使用 Class 3 时,仅对默认逻辑系统公开对象。

表 4: 3 类 MIB 对象(标准和瞻博网络 MIB)

MIB

对象

3 类

rfc2819a.mib

rmon 事件

报警表

日志表

事件表

代理XMIB

rfc2925a.mib

pingmib

rfc2925b.mib

tracerouteMIB

jnxchassis.mib

jnxBox 分析

jnx-chassis-alarm.mib

jnxAlarms

默认情况下,SRX 系列防火墙仅在冗余组 0 (RG0) 的主节点上查询 jnxAlarms mib,而不是在辅助节点上。

jnx-ping.mib

jnxPingMIB

jnx-traceroute.mib

jnxTraceRouteMIB

jnx-rmon.mib

jnxMonAlarmTable

jnx-cos.mib

示例:jnxCosFcTable

jnx-cfgmgmt.mib

示例:jnxCfgMgmt

jnx-sonetaps.mib

apsMIB 对象

jnx-sp.mib

jnxSpMIB

ggsn.mib

ejnmobileipABmib

rfc1907.mib

snmpModules

snmpModules

例子:

snmpMIB snmp 框架MIB

表 5 显示了 Junos OS 支持的 4 类 MIB 对象(标准和特定于企业的 MIB)。使用 4 类对象时,数据不会由路由实例隔离。所有实例都公开。

表 5: 4 类 MIB 对象(标准和瞻博网络 MIB)

MIB

对象

4 类

系统

示例:sysORTable

rfc2011a.mib

IP(ip默认TTL、ipInceives)

Icmp

rfc2012a.mib

tcp

tcpConnTable

ipv6TcpConnTable

rfc2013a.mib

Udp

udpTable

ipv6UdpTable

rfc2790a.mib

hrSystem

rfc2287a.mib

sysApplOBJ

jnx-firewall.mib

jnx 防火墙

jnx-ipv6.mib

jnxIpv6

MIB 对象的支持等级

指定路由实例后,所有与路由相关的 MIB 对象都会返回由请求中的路由实例维护的数据。对于所有其他 MIB 对象,根据该路由实例隔离返回的数据。例如,SNMP 代理只会显示分配给该路由实例的接口(例如,逻辑接口 [ifls] 及其相应的物理接口 [ifd])。同样,对接口具有明确附件的对象(例如,地址)也会被隔离。

对于附件不明确的对象(例如,sysApplMIB 中的对象),不会执行任何隔离,并且所有实例都可见。

仅当未指定任何逻辑系统(仅在默认逻辑系统中)时,另一类对象才可见,而不管默认逻辑系统中的路由实例如何。此类别的对象是机箱 MIB 对象、SNMP 组中的对象、RMON 告警、事件和日志组、Ping MIB 对象、配置管理对象和 V3 对象。

总之,为了支持路由实例,MIB 对象属于以下类别之一:

  • 第 1 类 — 根据请求中的路由实例隔离数据。这是分离类中最精细的一种。

  • 2 类 — 根据请求指定的逻辑系统隔离数据。对于属于特定逻辑系统的所有路由实例,都会返回相同的数据。通常,这适用于难以提取路由实例信息或不适用路由实例的路由表对象。

  • 第 3 类 — 仅对默认逻辑系统公开数据。对于属于默认逻辑系统的所有路由实例,都会返回同一组数据。如果指定另一个逻辑系统(非默认系统),则不会返回任何数据。通常,此类适用于在子代理中实现的对象,这些对象不会监视逻辑系统更改,并且仅使用默认上下文(例如,机箱 MIB 对象)注册其对象。

  • 第 4 类 — 数据不会通过路由实例隔离。所有路由实例都会返回相同的数据。通常,这适用于在子代理中实现的对象,这些子代理监视逻辑系统更改,并为每个逻辑系统更改注册或取消注册其所有对象。值不能通过路由实例隔离的对象属于此类。

有关与每个类关联的对象列表,请参阅 路由实例支持的 SNMP MIB

路由实例支持的 SNMP 陷阱

您可以限制陷阱接收器接收与它们所属的逻辑系统网络无关的陷阱。为此,请将语句logical-system-trap-filter[edit snmp]包含在层次结构级别:

如果 SNMP 配置中未包含该 logical-system-trap-filter 语句,则所有陷阱都会转发到配置的路由实例目标。但是,即使配置了此语句,与默认路由实例关联的陷阱接收器也将接收所有 SNMP 陷阱。

在 trap 组对象下配置时,应用于路由实例(或属于路由实例的接口)的所有 v1 和 v2c 陷阱均将路由实例名称编码在社区字符串中。该编码与请求 PDU 中的编码相同。

对于在 v3 框架下配置的陷阱,当配置 v3 消息处理模型时,路由实例名称会携带在上下文字段中。对于其他消息处理模型(v1 或 v2c),路由实例名称不会在陷阱消息标头中携带(也不编码在社区字符串中)。

识别路由实例

借助此功能,路由实例可通过 v3 请求中的上下文字段标识,或者通过 v1 或 v2c 请求中的社区字符串进行编码。

在以社区字符串进行编码时,路由实例名称将先出现,并用 @ 字符与实际社区字符串分隔。

为了避免与包含该 @ 字符的有效社区字符串冲突,仅在典型的社区字符串处理失败时解析社区。例如,如果配置了名为 RI 的路由实例,则在该路由实例上下文中处理包含 RI@publicRI SNMP 请求。访问控制(视图、源地址限制、访问权限等)根据实际社区字符串(字符后 @ 的数据集—本例 public中)应用。但是,如果配置了社区字符串 RI@public ,将根据该社区处理协议数据单元 (PDU),并忽略嵌入式路由实例名称。

逻辑系统执行物理路由器操作的子集,并具有自己独特的路由表、接口、策略和路由实例。在逻辑系统中定义路由实例时,逻辑系统名称必须与路由实例一起使用斜线 ( / ) 进行编码,以分隔两者。例如,如果在逻辑系统中LS配置路由实例RI,则必须将该路由实例编码在社区字符串中,为LS/RI@public。在逻辑系统外部(默认逻辑系统中)配置路由实例时,不需要逻辑系统名称(或 / 字符)。

此外,创建逻辑系统时,始终在逻辑系统中创建一个默认路由实例(命名 default)。查询该路由实例的数据时应使用此名称(例如 LS/default@public)。对于 v3 请求,应直接在上下文字段中标识名称 logical system/routing instance

注:

要识别虚拟 LAN (VLAN) 生成树实例(MX 系列 5G 通用路由平台上的 VSTP),请指定路由实例名称,后跟双冒号 (::) 和 VLAN ID。例如,要为全局默认路由实例中的 VLAN 10 识别 VSTP 实例,请包含在 default::10@public (SNMPv3) 或 community (SNMPv1 或 v2) 字符串中context

通过路由实例启用 SNMP 访问

要使默认路由实例以外的路由实例中的 SNMP 管理器能够访问 SNMP 信息,请将语句 routing-instance-access 包含在 [edit snmp] 层次结构级别:

如果 SNMP 配置中未包含此语句,则来自默认路由实例以外的路由实例的 SNMP 管理器无法访问 SNMP 信息。此设置适用于任何版本的 SNMP(SNMP v1、v2 或 v3)的请求。

指定 SNMPv1 或 SNMPv2c 社区中的路由实例

将客户端添加到 SNMP 社区时,您可以指定路由实例和客户端信息。要指定客户端所属的路由实例,请在 routing-instance SNMP 配置中包括语句后跟路由实例名称和客户端信息。

以下示例显示了将路由实例 test-ri 添加到 SNMP 社区社区1 的配置语句。

注:

在层次结构级别指定的 [edit snmp community community-name] 路由实例将被添加到社区中的默认逻辑系统中。

如果路由实例是在逻辑系统中定义的,请将语句 routing-instance 包含在 [edit snmp community community-name logical-system logical-system-name] 层次结构级别,如以下示例所示:

示例:为路由实例配置接口设置

此示例显示了分配给名为 INFrtd 的路由实例的 802.3ad ae0 接口配置:

以下命令 snmpwalk 说明如何从属于 SNMP 社区的 public路由实例 INFrtd 的路由器 1 和 802.3ae 捆绑接口检索 SNMP 相关信息:

为通过路由实例的 SNMP 访问配置访问列表

您可以创建和维护访问列表来管理对 SNMP 信息的访问。访问列表配置允许您允许或拒绝对特定路由实例的客户端的 SNMP 访问,并适用于任何版本的 SNMP 的请求。

以下示例说明如何创建访问列表:

示例中给出的配置:

  • 限制客户端 ri1 访问 SNMP 信息。

  • 允许 、 ls1/ri2中的ls1/default客户端以及名称以ls1首的所有其他路由实例访问 SNMP 信息。

您可以使用通配符 (*) 来表示路由实例名称中的字符串。

注:

您不能限制默认路由实例的 SNMP 管理器访问 SNMP 信息。