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 管理路由实例配置 Junos 管理路由实例 (mgmt_junos)。

优势

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

启用管理路由实例

要启用 SNMPv3 管理路由实例:

  1. 配置管理实例语句。

  2. 提交配置。

卸下管理路由实例

要卸下 SNMPv3 管理路由实例:

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

路由实例支持的 SNMP MIB

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

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

对象

支持类

说明/备注

jnxProducts(1)

产品对象 ID

jnxServices(2)

服务

jnxMibs(3)

jnxBoxAnatomy(1)

3 类

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

mpls(2)

2 类

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

ifJnx(3)

1 类

只有属于特定路由实例的逻辑接口(及其父层物理接口)才会公开。

jnxAlarms(4)

3 类

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

jnxFirewalls(5)

4 类

不会将数据与路由实例分隔开来。所有实例均已公开。

jnxDCUS(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)

jnxPMonmoryTable(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 类

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

jnxChassis 定义(25)

3 类

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

jnxVpnMIB(26)

2 类

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

jnxSericesInfoMib(27)

1 类

只有属于特定路由实例的逻辑接口(及其父层物理接口)才会公开。

jnxCollectorMIB(28)

1 类

只有属于特定路由实例的逻辑接口(及其父层物理接口)才会公开。

jnx历史 (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

mfrMibBundleLinkObjects

mfrBundle如果输入考试表

(和相关的 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

jnxDCUS

jnx-atm.mib

例子:

jnxAtmIfTable

jnxAtmVCTable

jnxAtmVpTable

jnx-ipv4.mib

jnxipv4

示例:jnxIpv4AddrTable

jnx-cos.mib

例子:

jnxCosIfqStatsTable

jnxCosQstatTable

jnx-scu.mib

示例:jnxScuStatsTable

jnx-rpf.mib

示例:jnxRpfStatsTable

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

例子:

jnxColl PicIfTable

jnxCollFileEntry

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

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

MIB

对象

2 类

rfc3813.mib

mplsrStdMIB

例子:

mplsInterfaceTable

mplsInSegmentTable

mplsOutSegmentTable

mplsLabelStackTable

mplsXCTable

(和相关的 MIB 对象)

igmpmib.mib

igmpStdMIB

注:

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

l3vpnmib.mib

mplsVpnmib

jnx-mpls.mib

示例:mplsP 列表

jnx-ldp.mib

jnxLdp

示例:jnxLdpStatsTable

jnx-vpn.mib

jnxVpnMIB

jnx-bgpmib2.mib

jnxBgpM2Experiment

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

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

MIB

对象

3 类

rfc2819a.mib

rmonEvents

报警表

日志表

事件表

代理MIB

rfc2925a.mib

pingmib

rfc2925b.mib

tracerouteMIB

jnxchassis.mib

jnxBoxAnatomy

jnx-chassis-alarm.mib

jnxAlarms

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

jnx-ping.mib

jnxPingMIB

jnx-traceroute.mib

jnxTraceRouteMIB

jnx-rmon.mib

jnxRmonAlarmTable

jnx-cos.mib

示例:jnxCosFcTable

jnx-cfgmt.mib

示例:jnxCfgMgmt

jnx-sonetaps.mib

apsMIBObjects

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(ipDefaultTTL、ipInReceives)

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] 及其相应的物理接口 [ifds])。同样,对接口有明确附件的对象(例如地址)也会被隔离。

对于附件模棱两可的对象(例如,sysApplMIB 中的对象),不会进行隔离,所有情况下都可看到所有实例。

只有当未指定逻辑系统(仅在默认逻辑系统中),而不考虑默认逻辑系统中的路由实例时,才可看到另一类对象。此类别的对象为机箱 MIB 对象、SNMP 组中的对象、RMON 报警、事件和日志组、Ping MIB 对象、配置管理对象和 V3 对象。

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

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

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

  • 3 类 — 数据仅针对默认逻辑系统公开。属于默认逻辑系统的所有路由实例将返回同一组数据。如果指定另一个逻辑系统(非默认系统),则不会返回任何数据。此类通常适用于在不监控逻辑系统更改且仅使用默认上下文(例如机箱 MIB 对象)的情况下实施的对象。

  • 第 4 类 — 不会将数据与路由实例分隔开来。所有路由实例都会返回相同的数据。通常,这适用于在 subagents 中实施的对象,用于监控逻辑系统更改,并针对每个逻辑系统更改注册或取消其所有对象的注册。无法通过路由实例分隔值的对象属于此类。

请参阅 路由实例支持的 SNMP MIB ,了解与各类关联的对象列表。

路由实例支持的 SNMP 陷阱

您可以限制陷阱接收器接收与它们所属的逻辑系统网络无关的陷阱。要执行此操作,请在[edit snmp]层级包括logical-system-trap-filter语句:

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

在陷阱组对象下配置时,适用于路由实例(或属于路由实例的接口)的所有 v1 和 v2c 陷阱均在公共组字符串中编码路由实例名称。编码与 request PDU 中使用的编码相同。

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

识别路由实例

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

在公共组字符串中编码时,路由实例名称将首先显示,并且按 @ 字符与实际的公共组字符串分离。

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

逻辑系统执行物理路由器的操作子集,并具有自己独特的路由表、接口、策略和路由实例。在逻辑系统中定义路由实例时,逻辑系统名称必须与路由实例一起使用斜线 ( / ) 进行编码,才能将两者分开。例如,如果路由实例 RI 在逻辑系统 LS中配置,则路由实例必须在公共组字符串中编码为 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 信息,请在层次结构级别中[edit snmp]包含routing-instance-access语句:

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

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

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

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

注:

在层级指定的 [edit snmp community community-name] 路由实例会添加到公共组中的默认逻辑系统中。

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

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

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

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

配置路由实例上的 SNMP 访问访问列表

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

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

示例中给出的配置:

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

  • 允许客户端在和所有其他路由实例中ls1/defaultls1/ri2使用名称开始ls1访问 SNMP 信息。

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

注:

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