配置 SNMP 远程操作
SNMP 远程操作概述
SNMP 远程操作是路由器上可以使用 SNMP 远程控制的任何进程。Junos OS 目前支持两种 SNMP 远程操作:在 RFC 2925 中定义的 Ping MIB 和 Traceroute MIB。使用这些 MIB,网络管理系统 (NMS) 中的 SNMP 客户端可以:
在路由器上启动一系列操作
操作完成后接收通知
收集每个操作的结果
Junos OS 还在瞻博网络企业特定扩展 和 .jnxPingMIB
jnxTraceRouteMIB
有关和的详细信息,请参阅 PING MIB 和路由跟踪 MIB。jnxPingMIB
jnxTraceRouteMIB
https://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]
[edit snmp] community community-name { authorization authorization; view view-name; } view view-name { oid object-identifier (include | exclude); }
示例:设置 SNMP 视图
要创建名为以授予 SNMP 客户端对 Ping MIB、MIB、 Traceroute MIB 和 MIB 的读写访问权限的社区,请在层次结构级别包含以下语句 :remote-community
jnxPing
jnxTraceRoute
[edit snmp]
snmp { view remote-view { oid 1.3.6.1.2.1.80 include; # pingMIB oid 1.3.6.1.4.1.2636.3.7 include; # jnxPingMIB oid 1.3.6.1.2.1.81 include; # traceRouteMIB oid 1.3.6.1.4.1.2636.3.8 include; # jnxTraceRouteMIB } community remote-community { view remote-view; authorization read-write; } }
有关该语句的详细信息,请参阅和社区 (SNMP)。community
配置 SNMP 社区community (SNMP)
有关该语句的详细信息,请参阅 、视图(SNMP 公共组)和视图(配置 MIB 视图)。view
配置 MIB 视图view (SNMP Community)view (Configuring a MIB View)
为远程操作设置陷阱通知
除了为陷阱通知配置远程操作 MIB 之外,还必须配置 Junos OS。必须为远程操作陷阱指定目标主机。
要为 SNMP 远程操作配置陷阱通知,请在层次结构级别包含 and 语句 :categories
targets
[edit snmp trap-group group-name]
[edit snmp trap-group group-name] categories { category; } targets { address; } }
示例:为远程操作设置陷阱通知
指定 为所有远程操作陷阱的目标主机:172.17.12.213
snmp { trap-group remote-traps { categories remote-operations; targets { 172.17.12.213; } } }
有关陷阱组的详细信息,请参见 。配置 SNMP 陷阱组
使用可变长度字符串索引
Junos OS 支持的远程操作 MIB 中的所有表格对象都按两个类型的 变量编制索引。SnmpAdminString
有关 的详细信息 ,请参阅 RFC 2571。SnmpAdminString
Junos OS 的处理 方式与八位字节字符串变量类型没有任何不同。SnmpAdminString
但是,索引定义为可变长度。将可变长度字符串用作索引时,字符串的长度必须作为对象标识符 (OID) 的一部分包含在内。
示例:设置可变长度字符串索引
要引用 where is 和 is 中的行的变量,请使用以下对象标识符 (OID):pingCtlTargetAddress
pingCtlTable
pingCtlOwnerIndex
bob
pingCtlTestName
test
pingMIB.pingObjects.pingCtlTable.pingCtlEntry.pingCtlTargetAddress."bob"."test" 1.3.6.1.2.1.80.1.2.1.4.3.98.111.98.4.116.101.115.116
有关 Ping MIB 定义的详细信息,请参阅 RFC 2925。
启用日志记录
为响应 SNMP 请求而返回的 SNMP 错误代码只能提供问题的一般性描述。远程操作过程记录的错误描述通常可以提供有关问题的更详细信息,并帮助您更快地解决问题。默认情况下不启用此日志记录。要启用日志记录,请在层次结构级别包含 语句 :flag general
[edit snmp traceoptions]
[edit] snmp { traceoptions { flag general; } }
如果远程操作进程收到它无法容纳的 SNMP 请求,则会将错误记录 在文件中。/var/log/rmopd
要监控此日志文件,请在命令行界面 (CLI) 的操作模式下发出 命令。monitor start rmopd
将 Ping MIB 用于远程监控运行 Junos OS 的设备
ping 测试用于确定从本地主机发送的数据包是否到达指定主机并返回。如果可以访问指定的主机,ping 测试将提供数据包的大致往返时间。Ping 测试结果存储在 和 中。pingResultsTable
pingProbeHistoryTable
RFC 2925 是对 Ping MIB 的详细描述,并提供了 Ping MIB 的 ASN.1 MIB 定义。
开始 ping 测试
使用本主题启动 ICMP ping 测试。有两种方法可以启动 ping 测试:使用多个 Set 协议数据单元 (PDU) 或单个 Set PDU。
开始之前
开始 ping 测试
要启动 ping 测试,请在 中创建 一行并设置为 。pingCtlTable
pingCtlAdminStatus
enabled
在设置为 之前 必须指定的最少信息是:pingCtlAdminStatus
enabled
pingCtlOwnerIndexSnmpAdminString
pingCtlTestNameSnmpAdminString
pingCtlTargetAddressInetAddress
pingCtlTargetAddressTypeInetAddressType
pingCtlRowStatusRowStatus
对于所有其他值,除非另有指定,否则将选择默认值。 并 用作索引,因此其值被指定为对象标识符 (OID) 的一部分。pingCtlOwnerIndex
pingCtlTestName
要创建行,请设置为尚不存在的行或行。pingCtlRowStatus
createAndWait
createAndGo
如果值为 for 表示已提供所有必要的信息,可以开始测试;可以设置为 。active
pingCtlRowStatus
pingCtlAdminStatus
enabled
如果未指定行中的必要信息或信息不一致,则设置为 的 SNMP 请求将失败。Set
pingCtlRowStatus
active
有关如何配置视图的信息,请参阅 设置 SNMP 视图。监视正在运行的跟踪路由测试
请阅读以下部分,了解如何对变量进行排序。
使用多集 PDU
您可以使用多个请求 PDU(多个 PDU,每个 PDU 具有一个或多个变量绑定),并按此顺序设置以下变量以启动测试:Set
pingCtlRowStatus
自createAndWait
所有适当的测试变量
pingCtlRowStatus
自active
Junos OS 现在验证是否已指定运行测试所需的所有信息。
pingCtlAdminStatus
自enabled
使用单集 PDU
您可以使用单个 请求 PDU(一个 PDU,具有多个变量绑定)来设置以下变量来启动测试:Set
pingCtlRowStatus
自createAndGo
所有适当的测试变量
pingCtlAdminStatus
自enabled
监视正在运行的 ping 测试
成功 设置为 时,在将 SNMP 请求的确认发送回客户端之前,将执行以下操作:pingCtlAdminStatus
enabled
Set
pingResultsEntry
如果尚不存在,则为其创建。过渡到 。
pingResultsOperStatus
enabled
有关详细信息,请参阅以下部分:
平结果表
在测试运行时, 跟踪测试的状态。pingResultsEntry
的值 是在 测试运行时和 测试停止时。pingResultsOperStatus
enabled
disabled
的值 将一直保留 ,直到您将其 设置为 。pingCtlAdminStatus
enabled
disabled
因此,要获得测试的状态,您必须检查 。pingResultsOperStatus
该 变量可用于为一个 .pingCtlFrequency
pingCtlEntry
在测试正常结束(您未停止测试)并且经过秒 数后,测试将再次启动,就像您设置为 一样 。pingCtlFrequency
pingCtlAdminStatus
enabled
如果在重复测试之间的任何时间进行干预(设置为 或 ),则重复功能将被禁用,直到另一个测试开始并正常结束。pingCtlAdminStatus
disabled
pingCtlRowStatus
notInService
值 为 0 表示此重复特征未处于活动状态。pingCtlFrequency
当 的值为 时,设置为已解析的目标地址的值。pingResultsIpTgtAddr
pingResultsIpTgtAddrType
pingCtlTargetAddressType
dns
当测试成功启动并 转换为 :pingResultsOperStatus
enabled
设置为 。
pingResultsIpTgtAddr
null-string
设置为 。
pingResultsIpTgtAddrType
unknown
在 可以解析为数字地址之前 不设置。pingResultsIpTgtAddr
pingResultsIpTgtAddrType
pingCtlTargetAddress
要检索这些值,请在成功设置为 后轮询除以外的任何值。pingResultsIpTgtAddrType
unknown
pingCtlAdminStatus
enabled
在测试开始时,初始化为 1 并发送第一个探测。每次发送探测时增加 1。 pingResultsSentProbes
pingResultsSentProbes
测试运行时,每隔几秒就会发生以下 情况:pingCtlTimeOut
对于对应的 in 设置为 。
pingProbeHistoryStatus
pingProbeHistoryEntry
pingProbeHistoryTable
requestTimedOut
如有必要,将生成陷阱。
pingProbeFailed
尝试发送下一个探测器。
注:每个测试不存在一个未完成的探针。
对于每个探测,您都可以收到以下结果之一:
目标主机通过响应确认探测。
探测超时;目标主机没有确认探测的响应。
无法发送探测器。
每个探测结果都记录在 中 。pingProbeHistoryTable
有关 的详细信息 ,请参见 。pingProbeHistoryTable
ping探测器历史记录表
当从目标主机收到确认当前探测的响应时:
pingResultsProbeResponses
增加 1.更新了以下变量:
pingResultsMinRtt
- 最短往返时间pingResultsMaxRtt
- 最长往返时间pingResultsAverageRtt
- 平均往返时间pingResultsRttSumOfSquares
- 往返时间的平方和pingResultsLastGoodProbe
- 上次响应的时间戳注:只有导致目标主机响应的探测器才有助于计算往返时间 (RTT) 变量。
当收到对最后一个探测的响应或最后一个探测超时时,测试完成。
ping探测器历史记录表
() 中的条目表示探测结果,并由三个变量编制索引:pingProbeHistoryTable
pingProbeHistoryEntry
前两个变量 和 与用于 的 变量相同,用于标识测试。
pingCtlOwnerIndex
pingCtlTestName
pingCtlTable
第三个变量 是用于唯一标识每个探测器结果的计数器。
pingProbeHistoryIndex
为给定测试创建的最大条目数 受 限制 。pingProbeHistoryTable
pingCtlMaxRows
如果设置为 0,则 不会 为该测试创建任何条目。pingCtlMaxRows
pingProbeHistoryTable
每次确定探测结果时,都会创建一个 并将其添加到 中。 的新值比上次为该测试添加的值大 1。如果这是表中的第一个条目,则设置为 1。 pingProbeHistoryEntry
pingProbeHistoryTable
pingProbeHistoryIndex
pingProbeHistoryEntry
pingProbeHistoryEntry
pingProbeHistoryTable
pingProbeHistoryIndex
同一个测试可以运行多次,因此此索引不断增长。
如果最后添加的为 0xFFFFFFFF,则下一个添加的已设置为 1。pingProbeHistoryIndex
pingProbeHistoryEntry
pingProbeHistoryEntry
pingProbeHistoryIndex
为每个探测结果记录以下内容:
pingProbeHistoryResponse
—生存时间 (TTL)pingProbeHistoryStatus
—发生了什么以及为什么pingProbeHistoryLastRC
—ICMP 数据包的返回代码 (RC) 值pingProbeHistoryTime
- 确定探测结果时的时间戳
当无法发送探测时, 设置为 0。当探测器超时时, 设置为发现探测器超时的时间与发送探测器的时间之间的差值。pingProbeHistoryResponse
pingProbeHistoryResponse
生成陷阱
对于要生成的任何陷阱,必须设置适当的位 。pingCtlTrapGeneration
还必须配置陷阱组以接收远程操作。在以下条件下会生成陷阱:
在测试期间,每次连续探测数失败时,都会生成一个陷阱。
pingProbeFailed
pingCtlTrapProbeFailureFilter
当测试完成且至少多个探测器失败时,将生成陷阱。
pingTestFailed
pingCtlTrapTestFailureFilter
当测试完成且少于探测器失败时,将生成陷阱。
pingTestCompleted
pingCtlTrapTestFailureFilter
注:当探测结果是 以外的任何内容时,探测器被视为失败。
pingProbeHistoryStatus
responseReceived
有关如何配置陷阱组以接收远程操作的信息,请参阅 配置 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,则在完成此测试的第一次运行后,将包含类似于 中的探测器。pingCtlProbeCount
pingCtlMaxRows
pingProbeHistoryTable
表 1
ping探测历史索引 |
探测结果 |
---|---|
11 |
运行 1 的第 11 次探测的结果 |
12 |
运行 1 的第 12 次探测的结果 |
13 |
运行 1 的第 13 次探测的结果 |
14 |
运行 1 的第 14 次探测的结果 |
15 |
运行 1 的第 15 次探测的结果 |
完成此测试第二次运行的第一个探测器后, 将包含类似于 中的 探测器。pingProbeHistoryTable
表 2
ping探测历史索引 |
探测结果 |
---|---|
12 |
运行 1 的第 12 次探测的结果 |
13 |
运行 1 的第 13 次探测的结果 |
14 |
运行 1 的第 14 次探测的结果 |
15 |
运行 1 的第 15 次探测的结果 |
16 个 |
运行 2 的第一次探测的结果 |
完成此测试的第二次运行后, 将包含类似 中的 探测器。pingProbeHistoryTable
表 3
ping探测历史索引 |
探测结果 |
---|---|
26 |
运行 2 的第 11 次探测的结果 |
27 |
运行 2 的第 12 次探测的结果 |
28 |
运行 2 的第 13 次探测的结果 |
29 |
运行 2 的第 14 次探测的结果 |
30 |
运行 2 的第 15 次探测的结果 |
可以通过两种方式从 MIB 中删除历史记录条目:
将为给定测试添加更多历史记录条目,并且历史记录条目数超过 。
pingCtlMaxRows
删除最旧的历史记录条目,以便为新条目腾出空间。您可以通过设置为 来 删除整个测试。
pingCtlRowStatus
destroy
停止 ping 测试
要停止活动测试,请设置为 。pingCtlAdminStatus
disabled
要停止测试并从 MIB 中删除其 、 和 任何 对象,请设置为 。pingCtlEntry
pingResultsEntry
pingHistoryEntry
pingCtlRowStatus
destroy
解释 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 明确定义。
pingCtlTrapProbeFailureFilter
pingCtlTrapTestFailureFilter
pingCtlTrapProbeFailureFilter
pingCtlTrapTestFailureFilter
如果为 0,则在任何情况下都不会为测试生成陷阱。pingCtlTrapProbeFailureFilter
pingProbeFailed
如果为 0,则在任何情况下都不会为测试生成陷阱。pingCtlTrapTestFailureFilter
pingTestFailed
将路由跟踪 MIB 用于运行 Junos OS 的远程监控设备
路由跟踪测试近似数据包从本地主机到远程主机的路径。
RFC 2925 是 Traceroute MIB 的详细描述,并提供了 Traceroute MIB 的 ASN.1 MIB 定义。
启动路由跟踪测试
在开始跟踪路由测试之前,请配置跟踪路由 MIB 视图。这允许 上的 SNMP 请求。Set
tracerouteMIB
要开始测试,请在 中创建 一行并设置为 。traceRouteCtlTable
traceRouteCtlAdminStatus
enabled
在设置为 之前,必须至少指定以下内容:traceRouteCtlAdminStatus
enabled
traceRouteCtlOwnerIndexSnmpAdminString
traceRouteCtlTestNameSnmpAdminString
traceRouteCtlTargetAddressInetAddress
traceRouteCtlRowStatusRowStatus
对于所有其他值,除非另有指定,否则将选择默认值。 并 用作索引,因此它们的值被指定为 OID 的一部分。traceRouteCtlOwnerIndex
traceRouteCtlTestName
要创建行,请设置为尚不存在的行或行。traceRouteCtlRowStatus
createAndWait
createAndGo
for 值表示已指定所有必需信息,可以开始测试;可以设置为 。active
traceRouteCtlRowStatus
traceRouteCtlAdminStatus
enabled
如果未指定行中的必要信息或信息不一致,则设置为 的 SNMP 请求将失败。Set
traceRouteCtlRowStatus
active
有关如何配置视图的信息,请参阅 设置 SNMP 视图。监视正在运行的跟踪路由测试
有两种方法可以启动路由跟踪测试:
使用多集 PDU
您可以使用多个请求 PDU(多个 PDU,每个 PDU 具有一个或多个变量绑定),并按此顺序设置以下变量以启动测试:Set
traceRouteCtlRowStatus
以创建并等待所有适当的测试变量
traceRouteCtlRowStatus
自active
Junos OS 现在验证是否已指定运行测试所需的所有信息。
traceRouteCtlAdminStatus
自enabled
使用单集 PDU
您可以使用单个 请求 PDU(一个 PDU,具有多个变量绑定)来设置以下变量来启动测试:Set
traceRouteCtlRowStatus
自createAndGo
所有适当的测试变量
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 远程操作概述。
监视路由跟踪测试完成情况
测试完成后,将从 转换为 。traceRouteResultsOperStatus
enabled
disabled
此转换发生在以下情况下:
测试成功结束。探测结果表明已到达目标。在这种情况下,当前跃点是最后一个跃点。发送此跃点的其余探测器。确定当前跃点的最后一个探测结果后,测试结束。
traceRouteCtlMaxTtl
已超过阈值。永远不会到达目的地。在发送 TTL 值等于 的探测器数量后,测试结束。traceRouteCtlMaxttl
traceRouteCtlMaxFailures
已超过阈值。以状态 结尾的连续探测数超过 。requestTimedOut
traceRouteCtlMaxFailures
您结束测试。您可以通过设置为 来设置或删除行。
traceRouteCtlAdminStatus
disabled
traceRouteCtlRowStatus
destroy
您错误地配置了跟踪路由测试。您指定的 值或变量不正确,不允许发送单个探测器。
traceRouteCtlTable
由于数据的性质,在测试开始之前无法确定此错误;也就是说,直到过渡到 .traceRouteResultsOperStatus
enabled
发生这种情况时,会将一个条目添加到 设置为 相应的错误代码。traceRouteProbeHistoryTable
traceRouteProbeHistoryStatus
如果设置正确,则会生成或陷阱。traceRouteCtlTrapGeneration
traceRouteTestFailed
traceRouteTestCompleted
收集路由跟踪测试结果
您可以轮询 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探测器历史记录。
历史指数 |
历史跳跃指数 |
历史探测索引 |
---|---|---|
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 |
停止路由跟踪测试
要停止活动测试,请设置为 。traceRouteCtlAdminStatus
disabled
要停止测试并从 MIB 中删除其 、 、 和对象,请设置为 。traceRouteCtlEntry
traceRouteResultsEntry
traceRouteProbeHistoryEntry
traceRouteProbeHistoryEntry
traceRouteCtlRowStatus
destroy
解释路由跟踪变量
本主题包含有关跟踪路由 MIB 中未显式指定的以下变量的范围的信息:
- 的 最大值为 2550。
traceRouteCtlMaxRows
traceRouteCtlMaxRows
这表示最大 TTL (255) 乘以 (10) 的 最大值。traceRouteCtlProbesPerHop
因此,在 最大值 下容纳一个完整的测试。traceRouteProbeHistoryTable
traceRouteCtlEntry
通常,不使用 最大值,并且能够容纳相同许多测试 的完整历史记录。traceRouteProbeHistoryTable
traceRouteCtlEntry
traceRouteMaxConcurrentRequests
- 最大值为 50。如果测试正在运行,则它有一个未完成的探测器。 表示值 为 的 traceroute 测试的最大数目。traceRouteMaxConcurrentRequests
traceRouteResultsOperStatus
enabled
在运行测试的情况下启动测试的任何尝试都将导致创建一个设置为 to 的探测器,并且该测试将立即结束。traceRouteMaxConcurrentRequests
traceRouteProbeHistoryStatus
maxConcurrentLimitReached
traceRouteCtlTable
- 此表中允许的最大条目数为 100。任何创建第 101 个条目的尝试都将导致 SNMPv1 的消息和 SNMPv2 的消息。BAD_VALUE
RESOURCE_UNAVAILABLE
变更历史表
是否支持某项功能取决于您使用的平台和版本。 使用 Feature Explorer 查看您使用的平台是否支持某项功能。