Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

配置 SNMP 远程操作

SNMP 远程操作概述

SNMP 远程操作是路由器上可以使用 SNMP 远程控制的任何进程。Junos OS 目前支持两种 SNMP 远程操作:在 RFC 2925 中定义的 Ping MIB 和 Traceroute MIB。使用这些 MIB,网络管理系统 (NMS) 中的 SNMP 客户端可以:

  • 在路由器上启动一系列操作

  • 操作完成后接收通知

  • 收集每个操作的结果

Junos OS 还在瞻博网络企业特定扩展 和 .jnxPingMIBjnxTraceRouteMIB 有关和的详细信息,请参阅 PING MIB 和路由跟踪 MIB。jnxPingMIBjnxTraceRouteMIBhttps://www.juniper.net/documentation/en_US/junos16.1/topics/reference/mibs/mib-jnx-ping.txthttps://www.juniper.net/documentation/en_US/junos16.1/topics/reference/mibs/mib-jnx-traceroute.txt

本主题涵盖以下部分:

SNMP 远程操作要求

要使用 SNMP 远程操作,您应该熟悉 SNMP 约定。您还必须将 Junos OS 配置为允许使用远程操作 MIB。

在启动 Ping MIB 之前,请参阅 启动 Ping 测试。开始 ping 测试

在启动路由跟踪 MIB 之前,请参阅 启动路由跟踪测试。启动路由跟踪测试

设置 SNMP 视图

Junos OS 支持的所有远程操作 MIB 都要求 SNMP 客户端具有读写权限。Junos OS 的默认 SNMP 配置不会向客户端提供具有此类权限的社区字符串。

要设置 SNMP 公共组字符串的读写权限,请在层次结构级别包含以下语句 :[edit snmp]

示例:设置 SNMP 视图

要创建名为以授予 SNMP 客户端对 Ping MIB、MIB、 Traceroute MIB 和 MIB 的读写访问权限的社区,请在层次结构级别包含以下语句 :remote-communityjnxPingjnxTraceRoute[edit snmp]

有关该语句的详细信息,请参阅和社区 (SNMP)。community配置 SNMP 社区community (SNMP)

有关该语句的详细信息,请参阅 、视图(SNMP 公共组)和视图(配置 MIB 视图)。view配置 MIB 视图view (SNMP Community)view (Configuring a MIB View)

为远程操作设置陷阱通知

除了为陷阱通知配置远程操作 MIB 之外,还必须配置 Junos OS。必须为远程操作陷阱指定目标主机。

要为 SNMP 远程操作配置陷阱通知,请在层次结构级别包含 and 语句 :categoriestargets[edit snmp trap-group group-name]

示例:为远程操作设置陷阱通知

指定 为所有远程操作陷阱的目标主机:172.17.12.213

有关陷阱组的详细信息,请参见 。配置 SNMP 陷阱组

使用可变长度字符串索引

Junos OS 支持的远程操作 MIB 中的所有表格对象都按两个类型的 变量编制索引。SnmpAdminString 有关 的详细信息 ,请参阅 RFC 2571。SnmpAdminString

Junos OS 的处理 方式与八位字节字符串变量类型没有任何不同。SnmpAdminString 但是,索引定义为可变长度。将可变长度字符串用作索引时,字符串的长度必须作为对象标识符 (OID) 的一部分包含在内。

示例:设置可变长度字符串索引

要引用 where is 和 is 中的行的变量,请使用以下对象标识符 (OID):pingCtlTargetAddresspingCtlTablepingCtlOwnerIndexbobpingCtlTestNametest

有关 Ping MIB 定义的详细信息,请参阅 RFC 2925。

启用日志记录

为响应 SNMP 请求而返回的 SNMP 错误代码只能提供问题的一般性描述。远程操作过程记录的错误描述通常可以提供有关问题的更详细信息,并帮助您更快地解决问题。默认情况下不启用此日志记录。要启用日志记录,请在层次结构级别包含 语句 :flag general[edit snmp traceoptions]

如果远程操作进程收到它无法容纳的 SNMP 请求,则会将错误记录 在文件中。/var/log/rmopd 要监控此日志文件,请在命令行界面 (CLI) 的操作模式下发出 命令。monitor start rmopd

将 Ping MIB 用于远程监控运行 Junos OS 的设备

ping 测试用于确定从本地主机发送的数据包是否到达指定主机并返回。如果可以访问指定的主机,ping 测试将提供数据包的大致往返时间。Ping 测试结果存储在 和 中。pingResultsTablepingProbeHistoryTable

RFC 2925 是对 Ping MIB 的详细描述,并提供了 Ping MIB 的 ASN.1 MIB 定义。

开始 ping 测试

使用本主题启动 ICMP ping 测试。有两种方法可以启动 ping 测试:使用多个 Set 协议数据单元 (PDU) 或单个 Set PDU。

开始之前

在开始 ping 测试之前,请配置 Ping MIB 视图。这允许 上的 SNMP 请求。SetpingMIB 有关更多详细信息,请参阅配置 MIB 视图

从 Junos OS 版本 17.2X75-D100 开始,必须先配置 RPM,然后才能启动 ICMP ping。使用命令配置 RPM。edit services rpm

开始 ping 测试

要启动 ping 测试,请在 中创建 一行并设置为 。pingCtlTablepingCtlAdminStatusenabled 在设置为 之前 必须指定的最少信息是:pingCtlAdminStatusenabled

  • pingCtlOwnerIndexSnmpAdminString

  • pingCtlTestNameSnmpAdminString

  • pingCtlTargetAddressInetAddress

  • pingCtlTargetAddressTypeInetAddressType

  • pingCtlRowStatusRowStatus

对于所有其他值,除非另有指定,否则将选择默认值。 并 用作索引,因此其值被指定为对象标识符 (OID) 的一部分。pingCtlOwnerIndexpingCtlTestName 要创建行,请设置为尚不存在的行或行。pingCtlRowStatuscreateAndWaitcreateAndGo 如果值为 for 表示已提供所有必要的信息,可以开始测试;可以设置为 。activepingCtlRowStatuspingCtlAdminStatusenabled 如果未指定行中的必要信息或信息不一致,则设置为 的 SNMP 请求将失败。SetpingCtlRowStatusactive

有关如何配置视图的信息,请参阅 设置 SNMP 视图。监视正在运行的跟踪路由测试

请阅读以下部分,了解如何对变量进行排序。

使用多集 PDU

您可以使用多个请求 PDU(多个 PDU,每个 PDU 具有一个或多个变量绑定),并按此顺序设置以下变量以启动测试:Set

  • pingCtlRowStatuscreateAndWait

  • 所有适当的测试变量

  • pingCtlRowStatusactive

    Junos OS 现在验证是否已指定运行测试所需的所有信息。

  • pingCtlAdminStatusenabled

使用单集 PDU

您可以使用单个 请求 PDU(一个 PDU,具有多个变量绑定)来设置以下变量来启动测试:Set

  • pingCtlRowStatuscreateAndGo

  • 所有适当的测试变量

  • pingCtlAdminStatusenabled

监视正在运行的 ping 测试

成功 设置为 时,在将 SNMP 请求的确认发送回客户端之前,将执行以下操作:pingCtlAdminStatusenabledSet

  • pingResultsEntry 如果尚不存在,则为其创建。

  • 过渡到 。pingResultsOperStatusenabled

有关详细信息,请参阅以下部分:

平结果表

在测试运行时, 跟踪测试的状态。pingResultsEntry 的值 是在 测试运行时和 测试停止时。pingResultsOperStatusenableddisabled

的值 将一直保留 ,直到您将其 设置为 。pingCtlAdminStatusenableddisabled 因此,要获得测试的状态,您必须检查 。pingResultsOperStatus

该 变量可用于为一个 .pingCtlFrequencypingCtlEntry 在测试正常结束(您未停止测试)并且经过秒 数后,测试将再次启动,就像您设置为 一样 。pingCtlFrequencypingCtlAdminStatusenabled 如果在重复测试之间的任何时间进行干预(设置为 或 ),则重复功能将被禁用,直到另一个测试开始并正常结束。pingCtlAdminStatusdisabledpingCtlRowStatusnotInService 值 为 0 表示此重复特征未处于活动状态。pingCtlFrequency

当 的值为 时,设置为已解析的目标地址的值。pingResultsIpTgtAddrpingResultsIpTgtAddrTypepingCtlTargetAddressTypedns 当测试成功启动并 转换为 :pingResultsOperStatusenabled

  • 设置为 。pingResultsIpTgtAddrnull-string

  • 设置为 。pingResultsIpTgtAddrTypeunknown

在 可以解析为数字地址之前 不设置。pingResultsIpTgtAddrpingResultsIpTgtAddrTypepingCtlTargetAddress 要检索这些值,请在成功设置为 后轮询除以外的任何值。pingResultsIpTgtAddrTypeunknownpingCtlAdminStatusenabled

在测试开始时,初始化为 1 并发送第一个探测。每次发送探测时增加 1。 pingResultsSentProbespingResultsSentProbes

测试运行时,每隔几秒就会发生以下 情况:pingCtlTimeOut

  • 对于对应的 in 设置为 。pingProbeHistoryStatuspingProbeHistoryEntrypingProbeHistoryTablerequestTimedOut

  • 如有必要,将生成陷阱。pingProbeFailed

  • 尝试发送下一个探测器。

    注:

    每个测试不存在一个未完成的探针。

对于每个探测,您都可以收到以下结果之一:

  • 目标主机通过响应确认探测。

  • 探测超时;目标主机没有确认探测的响应。

  • 无法发送探测器。

每个探测结果都记录在 中 。pingProbeHistoryTable 有关 的详细信息 ,请参见 。pingProbeHistoryTableping探测器历史记录表

当从目标主机收到确认当前探测的响应时:

  • pingResultsProbeResponses 增加 1.

  • 更新了以下变量:

    • pingResultsMinRtt- 最短往返时间

    • pingResultsMaxRtt- 最长往返时间

    • pingResultsAverageRtt- 平均往返时间

    • pingResultsRttSumOfSquares- 往返时间的平方和

    • pingResultsLastGoodProbe- 上次响应的时间戳

      注:

      只有导致目标主机响应的探测器才有助于计算往返时间 (RTT) 变量。

当收到对最后一个探测的响应或最后一个探测超时时,测试完成。

ping探测器历史记录表

() 中的条目表示探测结果,并由三个变量编制索引:pingProbeHistoryTablepingProbeHistoryEntry

  • 前两个变量 和 与用于 的 变量相同,用于标识测试。pingCtlOwnerIndexpingCtlTestNamepingCtlTable

  • 第三个变量 是用于唯一标识每个探测器结果的计数器。pingProbeHistoryIndex

为给定测试创建的最大条目数 受 限制 。pingProbeHistoryTablepingCtlMaxRows 如果设置为 0,则 不会 为该测试创建任何条目。pingCtlMaxRowspingProbeHistoryTable

每次确定探测结果时,都会创建一个 并将其添加到 中。 的新值比上次为该测试添加的值大 1。如果这是表中的第一个条目,则设置为 1。 pingProbeHistoryEntrypingProbeHistoryTablepingProbeHistoryIndexpingProbeHistoryEntrypingProbeHistoryEntrypingProbeHistoryTablepingProbeHistoryIndex 同一个测试可以运行多次,因此此索引不断增长。

如果最后添加的为 0xFFFFFFFF,则下一个添加的已设置为 1。pingProbeHistoryIndexpingProbeHistoryEntrypingProbeHistoryEntrypingProbeHistoryIndex

为每个探测结果记录以下内容:

  • pingProbeHistoryResponse—生存时间 (TTL)

  • pingProbeHistoryStatus—发生了什么以及为什么

  • pingProbeHistoryLastRC—ICMP 数据包的返回代码 (RC) 值

  • pingProbeHistoryTime- 确定探测结果时的时间戳

当无法发送探测时, 设置为 0。当探测器超时时, 设置为发现探测器超时的时间与发送探测器的时间之间的差值。pingProbeHistoryResponsepingProbeHistoryResponse

生成陷阱

对于要生成的任何陷阱,必须设置适当的位 。pingCtlTrapGeneration 还必须配置陷阱组以接收远程操作。在以下条件下会生成陷阱:

  • 在测试期间,每次连续探测数失败时,都会生成一个陷阱。pingProbeFailedpingCtlTrapProbeFailureFilter

  • 当测试完成且至少多个探测器失败时,将生成陷阱。pingTestFailedpingCtlTrapTestFailureFilter

  • 当测试完成且少于探测器失败时,将生成陷阱。pingTestCompletedpingCtlTrapTestFailureFilter

    注:

    当探测结果是 以外的任何内容时,探测器被视为失败。pingProbeHistoryStatusresponseReceived

有关如何配置陷阱组以接收远程操作的信息,请参阅 配置 SNMP 陷阱组 和 示例:No link title设置远程操作的陷阱通知。

收集 ping 测试结果

您可以轮询 以了解测试何时完成,也可以请求在测试完成时发送陷阱。pingResultsOperStatus 有关 的详细信息 ,请参阅 pingResultsTable。pingResultsOperStatus监视正在运行的跟踪路由测试 有关 Ping MIB 陷阱的更多信息,请参阅 生成陷阱。监视正在运行的跟踪路由测试

计算并存储的 统计信息包括:pingResultsTable

  • pingResultsMinRtt- 最短往返时间

  • pingResultsMaxRtt- 最长往返时间

  • pingResultsAverageRtt- 平均往返时间

  • pingResultsProbeResponses- 收到的答复数

  • pingResultsSentProbes—发送探测器的尝试次数

  • pingResultsRttSumOfSquares- 往返时间的平方和

  • pingResultsLastGoodProbe- 上次响应的时间戳

您还可以查阅 有关每个探头的更多详细信息。pingProbeHistoryTable 用于 的索引从 1 开始,转到 0xFFFFFFFF,然后再次包装到 1。pingProbeHistoryTable

例如,如果为 15 且为 5,则在完成此测试的第一次运行后,将包含类似于 中的探测器。pingCtlProbeCountpingCtlMaxRowspingProbeHistoryTable表 1

表 1: pingProbeHistoryTable中的结果:第一次 ping 测试后

ping探测历史索引

探测结果

11

运行 1 的第 11 次探测的结果

12

运行 1 的第 12 次探测的结果

13

运行 1 的第 13 次探测的结果

14

运行 1 的第 14 次探测的结果

15

运行 1 的第 15 次探测的结果

完成此测试第二次运行的第一个探测器后, 将包含类似于 中的 探测器。pingProbeHistoryTable表 2

表 2: pingProbeHistoryTable中的结果:第二次测试的第一个探针之后

ping探测历史索引

探测结果

12

运行 1 的第 12 次探测的结果

13

运行 1 的第 13 次探测的结果

14

运行 1 的第 14 次探测的结果

15

运行 1 的第 15 次探测的结果

16 个

运行 2 的第一次探测的结果

完成此测试的第二次运行后, 将包含类似 中的 探测器。pingProbeHistoryTable表 3

表 3: pingProbeHistoryTable中的结果:第二次 ping 测试后

ping探测历史索引

探测结果

26

运行 2 的第 11 次探测的结果

27

运行 2 的第 12 次探测的结果

28

运行 2 的第 13 次探测的结果

29

运行 2 的第 14 次探测的结果

30

运行 2 的第 15 次探测的结果

可以通过两种方式从 MIB 中删除历史记录条目:

  • 将为给定测试添加更多历史记录条目,并且历史记录条目数超过 。pingCtlMaxRows 删除最旧的历史记录条目,以便为新条目腾出空间。

  • 您可以通过设置为 来 删除整个测试。pingCtlRowStatusdestroy

停止 ping 测试

要停止活动测试,请设置为 。pingCtlAdminStatusdisabled 要停止测试并从 MIB 中删除其 、 和 任何 对象,请设置为 。pingCtlEntrypingResultsEntrypingHistoryEntrypingCtlRowStatusdestroy

解释 ping 变量

本节阐明了 Ping MIB 中未显式指定的以下变量的范围:

  • pingCtlDataSize— 此变量的值表示传出探测数据包的有效负载的总大小(以字节为单位)。此有效负载包括用于对探测进行计时的时间戳(8 个字节)。这与定义(最大值 65,507)和标准 ping 应用程序一致 。pingCtlDataSize

    如果 的值 介于 0 和 8 之间(含 0 和 8),则忽略该值,有效负载为 8 字节(时间戳)。pingCtlDataSize Ping MIB 假定所有探测都已计时,因此有效负载必须始终包含时间戳。

    例如,如果您希望向数据包额外添加 4 个字节的有效负载,则必须设置为 12。pingCtlDataSize

  • pingCtlDataFill—数据包数据段的前 8 个字节用于时间戳。之后,该 模式用于重复。pingCtlDataFill 默认模式(未指定时 )为 (00, 01, 02, 03 ...pingCtlDataFill FF, 00, 01, 02, 03 ... FF, ...

  • pingCtlMaxRows- 最大值为 255。

  • pingMaxConcurrentRequests- 最大值为 500。

  • 和 — 值 0 表示或 未由 Ping MIB 明确定义。pingCtlTrapProbeFailureFilterpingCtlTrapTestFailureFilterpingCtlTrapProbeFailureFilterpingCtlTrapTestFailureFilter 如果为 0,则在任何情况下都不会为测试生成陷阱。pingCtlTrapProbeFailureFilterpingProbeFailed 如果为 0,则在任何情况下都不会为测试生成陷阱。pingCtlTrapTestFailureFilterpingTestFailed

将路由跟踪 MIB 用于运行 Junos OS 的远程监控设备

路由跟踪测试近似数据包从本地主机到远程主机的路径。

RFC 2925 是 Traceroute MIB 的详细描述,并提供了 Traceroute MIB 的 ASN.1 MIB 定义。

启动路由跟踪测试

在开始跟踪路由测试之前,请配置跟踪路由 MIB 视图。这允许 上的 SNMP 请求。SettracerouteMIB 要开始测试,请在 中创建 一行并设置为 。traceRouteCtlTabletraceRouteCtlAdminStatusenabled 在设置为 之前,必须至少指定以下内容:traceRouteCtlAdminStatusenabled

  • traceRouteCtlOwnerIndexSnmpAdminString

  • traceRouteCtlTestNameSnmpAdminString

  • traceRouteCtlTargetAddressInetAddress

  • traceRouteCtlRowStatusRowStatus

对于所有其他值,除非另有指定,否则将选择默认值。 并 用作索引,因此它们的值被指定为 OID 的一部分。traceRouteCtlOwnerIndextraceRouteCtlTestName 要创建行,请设置为尚不存在的行或行。traceRouteCtlRowStatuscreateAndWaitcreateAndGo for 值表示已指定所有必需信息,可以开始测试;可以设置为 。activetraceRouteCtlRowStatustraceRouteCtlAdminStatusenabled 如果未指定行中的必要信息或信息不一致,则设置为 的 SNMP 请求将失败。SettraceRouteCtlRowStatusactive 有关如何配置视图的信息,请参阅 设置 SNMP 视图。监视正在运行的跟踪路由测试

有两种方法可以启动路由跟踪测试:

使用多集 PDU

您可以使用多个请求 PDU(多个 PDU,每个 PDU 具有一个或多个变量绑定),并按此顺序设置以下变量以启动测试:Set

  • traceRouteCtlRowStatus 以创建并等待

  • 所有适当的测试变量

  • traceRouteCtlRowStatusactive

    Junos OS 现在验证是否已指定运行测试所需的所有信息。

  • traceRouteCtlAdminStatusenabled

使用单集 PDU

您可以使用单个 请求 PDU(一个 PDU,具有多个变量绑定)来设置以下变量来启动测试:Set

  • traceRouteCtlRowStatuscreateAndGo

  • 所有适当的测试变量

  • traceRouteCtlAdminStatus 启用

监视正在运行的跟踪路由测试

当 traceRouteCtlAdminStatus 成功设置为启用时,在将 SNMP Set 请求的确认发送回客户端之前,将执行以下操作:

  • 如果 traceRouteResultsEntry 尚不存在,则会创建它。

  • traceRouteResultsOperStatus 转换为 enabled。

有关详细信息,请参阅以下部分:

traceRouteResultsTable

在测试运行时,此跟踪路由结果表会跟踪测试的状态。traceRouteResultsOperStatus 的值在测试运行时启用,在测试停止时禁用。

traceRouteCtlAdminStatus 的值将保持启用状态,直到您将其设置为禁用。因此,若要获取测试的状态,必须检查 traceRouteResultsOperStatus。

traceRouteCtlFrequency 变量可用于为一个 traceRouteCtlEntry 安排多个测试。在测试正常结束(您没有停止测试)并且 traceRouteCtlFrequency 的秒数已过后,测试将再次启动,就像您已将 traceRouteCtlAdminStatus 设置为已启用一样。如果在重复测试之间的任何时间进行干预(将 traceRouteCtlAdminStatus 设置为“已禁用”或将 traceRouteCtlRowStatus 设置为 notInService),则在另一个测试开始并正常结束之前,重复功能将被禁用。如果 traceRouteCtlFrequency 的值为 0,则表示此重复要素未处于活动状态。

当 traceRouteCtlTargetAddressType 的值为 dns 时,traceRouteResultsIpTgtAddr 和 traceRouteResultsIpTgtAddrType 设置为解析的目标地址的值。当测试成功启动并且 traceRouteResultsOperStatus 转换为已启用时:

  • traceRouteResultsIpTgtAddr 设置为 null 字符串。

  • traceRouteResultsIpTgtAddrType 设置为 unknown。

traceRouteResultsIpTgtAddr 和 traceRouteResultsIpTgtAddrType 在 traceRouteCtlTargetAddress 解析为数字地址之前不会设置。若要检索这些值,请在成功将 traceRouteCtlAdminStatus 设置为“已启用”后,轮询 traceRouteResultsIpTgtAddrType 查找除“未知”以外的任何值。

在测试开始时,traceRouteResultsCurHopCount 初始化为 traceRouteCtlInitialTtl,traceRouteResultsCurProbeCount 初始化为 1。每次确定探测结果时,traceRouteResultsCurProbeCount 都会增加 1。在测试运行时,traceRouteResultsCurProbeCount 的值反映了尚未确定结果的当前未完成探测器。

将针对每个生存时间 (TTL) 值发送 traceRouteCtlProbesPerHop 探测器数。确定当前跃点的最后一个探测的结果时,如果当前跃点不是目标跃点,则 traceRouteResultsCurHopCount 将增加 1,并且 traceRouteResultsCurProbeCount 将重置为 1。

在测试开始时,如果这是第一次为此 traceRouteCtlEntry 运行此测试,则 traceRouteResultsTestTry 和 traceRouteResultsTestSuccesses 将初始化为 0。

在每次测试执行结束时,traceRouteResultsOperStatus 将转换为禁用,并且 traceRouteResultsTestTry 增加 1。如果测试成功确定了目标的完整路径,则 traceRouteResultsTestSuccesses 将增加 1,并且 traceRouteResultsLastGoodPath 设置为当前时间。

traceRouteProbeResultsTable

traceRouteProbeHistoryTable 中的每个条目都由五个变量编制索引:

  • 前两个变量 traceRouteCtlOwnerIndex 和 traceRouteCtlTestName 与用于 traceRouteCtlTable 和标识测试的变量相同。

  • 第三个变量 traceRouteProbeHistoryIndex 是一个计数器,从 1 开始,在 FFFFFFFFF 处包装。最大条目数受 traceRouteCtlMaxRows 限制。

  • 第四个变量 traceRouteProbeHistoryHopIndex 指示此探测器的目标跃点(实际生存时间或 TTL 值)。因此,测试开始时创建的第一个 traceRouteCtlProbesPerHop 条目数的值为 traceRouteCtlInitialTtl,用于 traceRouteProbeHistoryHopIndex。

  • 第五个变量 traceRouteProbeHistoryProbeIndex 是当前跃点的探测器。它的范围从 1 到 traceRouteCtlProbesPerHop。

在测试运行时,一旦确定了探测结果,就会发送下一个探测。在探测器标记为状态请求超时并发送下一个探测器之前,经过的最大 traceRouteCtlTimeOut 秒数。每个跟踪路由测试永远不会有一个以上的未完成探测器。探测超时后返回的任何探测结果都将被忽略。

每个探头可以:

  • 导致主机响应确认探测

  • 超时,主机没有响应确认探测

  • 发送失败

每个探测状态都记录在 traceRouteProbeHistoryTable 中,并相应地设置了 traceRouteProbeHistoryStatus。

导致主机响应的探测器记录以下数据:

  • traceRouteProbeHistoryResponse - 往返时间 (RTT)

  • traceRouteProbeHistoryHAddrType - HAddr 的类型(下一个参数)

  • traceRouteProbeHistoryHAddr - 跃点的地址

所有探测器(无论是否收到探测器的响应)都会记录以下内容:

  • traceRouteProbeHistoryStatus—发生了什么以及为什么

  • traceRouteProbeHistoryLastRC — ICMP 数据包的返回代码 (RC) 值

  • traceRouteProbeHistoryTime - 确定探测结果时的时间戳

当无法发送探测时,traceRouteProbeHistoryResponse 设置为 0。当探测超时时,traceRouteProbeHistoryResponse 设置为发现探测超时的时间与发送探测的时间之间的差异。

traceRouteHopsTable

traceRouteHopsTable 中的条目由三个变量编制索引:

  • 前两个,traceRouteCtlOwnerIndex 和 traceRouteCtlTestName,与用于 traceRouteCtlTable 和标识测试的相同。

  • 第三个变量 traceRouteHopsHopIndex 表示从 1 开始的当前跃点(不是 traceRouteCtlInitialTtl)。

测试开始时,将删除 traceRouteHopsTable 中具有给定 traceRouteCtlOwnerIndex 和 traceRouteCtlTestName 的所有条目。仅当 traceRouteCtlCreateHopsEntries 设置为 true 时,才会创建此表中的条目。

每次确定给定 TTL 的第一个探测结果时,都会创建一个新的 traceRouteHopsEntry。无论第一个探测是否到达主机,都会创建新条目。对于此新条目,traceRouteHopsHopIndex 的值将增加 1。

注:

如果给定 TTL 对探测没有响应,则任何 traceRouteHopsEntry 都可能缺少 traceRouteHopsIpTgtAddress 的值。

每次探测到达主机时,探测结果中都会提供该主机的 IP 地址。如果未设置当前 traceRouteHopsEntry 的 traceRouteHopsIpTgtAddress 值,则 traceRouteHopsIpTgtAddress 的值将设置为此 IP 地址。如果当前 traceRouteHopsEntry 的 traceRouteHopsIpTgtAddress 值与 IP 地址相同,则该值不会更改。如果当前 traceRouteHopsEntry 的 traceRouteHopsIpTgtAddress 值与此 IP 地址不同,表示路径发生了变化,则会创建一个新的 traceRouteHopsEntry:

  • traceRouteHopsHopIndex 变量增加 1

  • traceRouteHopsIpTgtAddress 设置为 IP 地址

    注:

    每次使用新的 TTL 值或路径更改时,都会向 traceRouteHopsTable 添加一个用于测试的新条目。因此,测试的条目数可能会超过使用的不同 TTL 值的数量。

确定探测结果后,当前 traceRouteHopsEntry 的值 traceRouteHopsSentProbes 将增加 1。当确定探测结果并且探测到达主机时:

  • 当前 traceRouteHopsEntry 的值 traceRouteHopsProbeResponses 增加 1。

  • 更新了以下变量:

    • traceRouteResultsMinRtt—最短往返时间

    • traceRouteResultsMaxRtt—最长往返时间

    • traceRouteResultsAverageRtt—平均往返时间

    • traceRouteResultsRttSumOfSquares - 往返时间的平方和

    • traceRouteResultsLastGoodProbe—上次响应的时间戳

      注:

      只有到达主机的探测器才会影响往返时间值。

生成陷阱

要生成任何陷阱,必须设置适当的 traceRouteCtlTrapGeneration 位。还必须配置陷阱组以接收远程操作。陷阱是在以下条件下生成的:

  • 当前探测器的 traceRouteHopsIpTgtAddress 不同于具有相同 TTL 值的最后一个探测器 (traceRoutePathChange)。

  • 无法确定到目标的路径(traceRouteTestFailed)。

已确定到目标的路径 (traceRouteTestComplete)。

有关如何配置陷阱组以接收远程操作的信息,请参阅配置 SNMP 陷阱组SNMP 远程操作概述

监视路由跟踪测试完成情况

测试完成后,将从 转换为 。traceRouteResultsOperStatusenableddisabled 此转换发生在以下情况下:

  • 测试成功结束。探测结果表明已到达目标。在这种情况下,当前跃点是最后一个跃点。发送此跃点的其余探测器。确定当前跃点的最后一个探测结果后,测试结束。

  • traceRouteCtlMaxTtl 已超过阈值。永远不会到达目的地。在发送 TTL 值等于 的探测器数量后,测试结束。traceRouteCtlMaxttl

  • traceRouteCtlMaxFailures 已超过阈值。以状态 结尾的连续探测数超过 。requestTimedOuttraceRouteCtlMaxFailures

  • 您结束测试。您可以通过设置为 来设置或删除行。traceRouteCtlAdminStatusdisabledtraceRouteCtlRowStatusdestroy

  • 您错误地配置了跟踪路由测试。您指定的 值或变量不正确,不允许发送单个探测器。traceRouteCtlTable 由于数据的性质,在测试开始之前无法确定此错误;也就是说,直到过渡到 .traceRouteResultsOperStatusenabled 发生这种情况时,会将一个条目添加到 设置为 相应的错误代码。traceRouteProbeHistoryTabletraceRouteProbeHistoryStatus

如果设置正确,则会生成或陷阱。traceRouteCtlTrapGenerationtraceRouteTestFailedtraceRouteTestCompleted

收集路由跟踪测试结果

您可以轮询 traceRouteResultsOperStatus 以了解测试何时完成,也可以请求在测试完成时发送陷阱。有关 traceResultsOperStatus 的详细信息,请参阅 traceRouteResultsTable。有关跟踪路由 MIB 陷阱的详细信息,请参阅 监视正在运行的跟踪路由测试中的生成陷阱部分。监视正在运行的跟踪路由测试

统计信息是按跃点计算的,然后存储在 traceRouteHopsTable 中。它们包括每个跃点的以下内容:

  • traceRouteHopsIpTgtAddressType - 此跃点处主机的地址类型

  • traceRouteHopsIpTgtAddress — 此跃点处的主机地址

  • traceRouteHopsMinRtt—最短往返时间

  • traceRouteHopsMaxRtt—最大往返时间

  • traceRouteHopsAverageRtt—平均往返时间

  • traceRouteHopsRttSumOfSquares - 往返时间的平方和

  • traceRouteHopsSentProbes - 尝试发送探测器的次数

  • traceRouteHopsProbeResponses - 收到的响应数

  • traceRouteHopsLastGoodProbe—上次响应的时间戳

您还可以查阅 traceRouteProbeHistoryTable 以获取有关每个探测器的更多详细信息。用于 traceRouteProbeHistoryTable 的索引从 1 开始,转到 0xFFFFFFFF,然后再次换行到 1。

例如,假设以下情况:

  • traceRouteCtlMaxRows 为 10。

  • traceRouteCtlProbesPerHop 为 5。

  • 目标有 8 个跃点(目标为 8 个跃点)。

  • 发送的每个探测都会导致来自主机的响应(发送的探测数不受 traceRouteCtlMaxFailures 的限制)。

在此测试中,发送 40 个探针。在测试结束时,traceRouteProbeHistoryTable 将具有类似 中的 表 4探测器历史记录。

表 4: trace路由探测器历史记录表

历史指数

历史跳跃指数

历史探测索引

31

7

1

32

7

2

33

7

3

34

7

4

35

7

5

36

8

1

37

8

2

38

8

3

39

8

4

40

8

5

停止路由跟踪测试

要停止活动测试,请设置为 。traceRouteCtlAdminStatusdisabled 要停止测试并从 MIB 中删除其 、 、 和对象,请设置为 。traceRouteCtlEntrytraceRouteResultsEntrytraceRouteProbeHistoryEntrytraceRouteProbeHistoryEntrytraceRouteCtlRowStatusdestroy

解释路由跟踪变量

本主题包含有关跟踪路由 MIB 中未显式指定的以下变量的范围的信息:

  • - 的 最大值为 2550。traceRouteCtlMaxRowstraceRouteCtlMaxRows 这表示最大 TTL (255) 乘以 (10) 的 最大值。traceRouteCtlProbesPerHop 因此,在 最大值 下容纳一个完整的测试。traceRouteProbeHistoryTabletraceRouteCtlEntry 通常,不使用 最大值,并且能够容纳相同许多测试 的完整历史记录。traceRouteProbeHistoryTabletraceRouteCtlEntry

  • traceRouteMaxConcurrentRequests- 最大值为 50。如果测试正在运行,则它有一个未完成的探测器。 表示值 为 的 traceroute 测试的最大数目。traceRouteMaxConcurrentRequeststraceRouteResultsOperStatusenabled 在运行测试的情况下启动测试的任何尝试都将导致创建一个设置为 to 的探测器,并且该测试将立即结束。traceRouteMaxConcurrentRequeststraceRouteProbeHistoryStatusmaxConcurrentLimitReached

  • traceRouteCtlTable- 此表中允许的最大条目数为 100。任何创建第 101 个条目的尝试都将导致 SNMPv1 的消息和 SNMPv2 的消息。BAD_VALUERESOURCE_UNAVAILABLE

变更历史表

是否支持某项功能取决于您使用的平台和版本。 使用 Feature Explorer 查看您使用的平台是否支持某项功能。

版本
说明
17.2X75-D100
从 Junos OS 版本 17.2X75-D100 开始,必须先配置 RPM,然后才能启动 ICMP ping。