在 M、MX 和 T 系列路由器以及 EX 系列交换机上配置 RPM 探测
RPM 探测的探测器所有者和测试名称共同表示单个 RPM 配置实例。指定测试名称时,还可以配置测试参数。
要配置探测器所有者、测试名称和测试参数,请在层次结构级别包含 probe
以下语句 [edit services rpm]
:
[edit services rpm] probe owner { delegate-probes; test test-name { data-fill data; data-size size; destination-interface interface-name; destination-port (RPM) port; dscp-code-points (RPM) dscp-bits; hardware-timestamp; history-size size; inet6-options; moving-average-size number; one-way-hardware-timestamp; probe-count count; probe-interval seconds; probe-type type; routing-instance (RPM) instance-name; rpm-scale { destination { interface interface-name.logical-unit-number; subunit-cnt subunit-cnt; } source { address-base ipv4-address-base; count ipv4-count; step ipv4-step; } source-inet6 { address-base ipv6-address-base; count ipv6-count; step ipv6-step; } target { address-base ipv4-address-base; count ipv4-count; step ipv4-step; } target-inet6 { address-base ipv6-address-base; count ipv6-count; step ipv6-step; } tests-count tests-count; } source-address address; target (url url | address address); test-interval interval; thresholds (Junos OS) thresholds; traps traps; ttl [hop-count] } }
配置 RPM 客户端和 RPM 服务器时,请记住以下几点:
逻辑系统不支持 RPM。
您无法配置基于 PIC 的 RPM 客户端和基于数据包转发引擎或路由引擎的 RPM 服务器来接收 RPM 探测。
您不能将基于数据包转发引擎的 RPM 客户端和接收 RPM 探测的 RPM 服务器配置为位于 PIC 或路由引擎上。
RPM 客户端和 RPM 服务器必须位于相同类型的模块上。例如,如果 RPM 客户端基于 PIC,则 RPM 服务器也必须基于 PIC,如果 RPM 服务器基于数据包转发引擎,则 RPM 客户端也必须基于数据包转发引擎。
从 Junos OS 17.3R1 版开始,如果您使用的是 MS-MPC 或 MS-MIC,则 IPsec 隧道和 GRE 隧道支持基于 PIC 和基于路由引擎的 RPM。IPsec 隧道不支持基于数据包转发引擎的 RPM。通过支持 IPSec 隧道上的 RPM,可以对在 IPSec 隧道中传输的流量进行服务级别协议 (SLA) 监控。
从 Junos OS 17.3R1 版开始,您可以在 MS-MPC 或 MS-MIC 上配置 IPv4
icmp-ping
和icmp-ping-timestamp
RPM 探测的生成,与数据包转发引擎上生成的探测数量相比,每个服务 NPU 上生成的探测数量增加到每秒 100 万个。从 Junos OS 18.1R1 版开始,您可以在 MS-MPC 或 MS-MIC 上配置 RPM 探测的icmp6-ping
生成。要在 MS-MPC 或 MS-MIC 上配置 RPM 探头的生成:在
[edit services rpm probe owner test test-name]
层次结构级别包括 ,destination-interface interface-name.logical-unit-number
在层次结构级别包括delegate-probes
语句[edit services rpm probe owner]
。指定 interface-name.logical-unit-number MS-MPC 或 MS-MIC 插槽、PIC 和端口上的逻辑接口,该接口上定义了有效的 IP 地址(例如,ms-1/2/1.1)。接口不能是聚合多服务接口 (ams-)。在层次结构级别包括
[edit interfaces interface-name unit logical-unit-number]
和rpm client-delegate-probes
family (inet | inet6) address address
语句。和 interface-name logical-unit-number 必须与您interface-name.logical-unit-number用于 的destination-interface
匹配。
对于在 MS-MPC 或 MS-MIC 上配置的 RPM 探测,不能在
[edit services rpm probe owner test test-name]
层次结构级别配置语句,也不能在同一测试中同时配置routing-instance
IPv4 和 IPv6 探测。从 Junos OS 18.1R1 版开始,对于在 MS-MPC 或 MS-MIC 上生成的 RPM 探测器,您可以使用其他过滤器来限制显示服务 rpm 探测结果和显示服务 rpm 历史记录结果命令的输出。
从 Junos OS 17.4R1 版开始,您可以针对 IPv4 的 RPM 测试优化 CLI 配置。从 Junos OS 18.2R1 版开始,您还可以针对 IPv6 的 RPM 测试优化 CLI 配置。此优化允许使用最少的 RPM 配置语句来生成具有预定义、保留的 RPM 测试名称的多个测试(最多 100K 测试)。可以为使用数据包转发引擎或 MS-MPC 或 MS-MIC 生成的探测器进行测试配置此优化。系统会针对源地址和目标地址的多个组合生成测试,这些组合会根据您的配置递增。
各种 Junos 版本支持的最大并发 RPM 探测数如下:
早于 17.3R1—500 的 Junos OS 版本
Junos OS 17.3R1 及更高版本 — 2000,适用于 ICMP 和 ICMP 时间戳探测类型。对于其他类型的探测器(UDP 和 TCP),限制为 500。
Junos OS 17.3R1 及更高版本(已实施 委托探测)— 每个服务 NPU 100 万个。
注意:一个 MS-MIC 包含一个服务 NPU,一个 MS-MPC 包含四个服务 NPU。
通过 实施委托探测器,RPM 探测器符合 RFC792 和 RFC4443 标准。因此,它们可用于监控任何符合 RFC 的 IP 设备,并能够响应 icmp 时间戳和/或 icmp6-ping 数据包。
首先为具有初始目标地址的所有源地址生成测试,然后为具有下一个可用目标地址的所有源地址生成测试,依此类推。您还可以配置包含特定探测器所有者的全局值的组,并将该组应用于探测器所有者。
要生成多个 RPM 测试,请配置以下内容:
[edit services rpm probe owner] apply-groups group-name; test test-name { rpm-scale { destination { interface interface-name.logical-unit-number; subunit-cnt subunit-cnt; } source { address-base ipv4-address-base; count ipv4-count; step ipv4-step; } source-inet6 { address-base ipv6-address-base; count ipv6-count; step ipv6-step; } target { address-base ipv4-address-base; count ipv4-count; step ipv4-step; } target-inet6 { address-base ipv6-address-base; count ipv6-count; step ipv6-step; } tests-count tests-count; } }
选项包括:
ipv4-address-base 递增以生成 RPM 测试中使用的地址的 IPv4 源地址或目标地址。
ipv6-address-base 递增以生成 RPM 测试中使用的地址的 IPv6 源地址或目标地址。
ipv4-step 为每个生成的 RPM 测试递增 IPv4 源地址或目标地址的量。
ipv6-step 为每个生成的 RPM 测试递增 IPv6 源地址或目标地址的量。
ipv4-count 用于生成的 RPM 测试的最大 IPv4 源地址或目标地址数。
ipv6-count 用于生成的 RPM 测试的最大 IPv6 源地址或目标地址数。
interface-name.logical-unit-number 生成 RPM 探测的服务接口和用于生成的第一个测试的逻辑单元号。
subunit-cnt 服务接口在生成的测试中使用的逻辑单元的最大数量。第一个生成的测试使用选项中 interface-name.logical-unit-number 指定的逻辑单元,并且每个连续测试将逻辑单元号递增 1。使用最大数量的逻辑单元后,下一个生成的测试将循环回第一个测试中使用的逻辑单元。
tests-count 要生成的最大 RPM 测试数。此数字必须小于或等于生成的源地址数乘以生成的目标地址数。
要使用特定探测器所有者的全局值配置组,请执行以下操作:
[edit groups group-name] services { rpm { probe <*> { test { data-fill data; data-size size; dscp-code-points (RPM) dscp-bits; history-size size; moving-average-size number; probe-count count; probe-type type; test-interval interval; thresholds (Junos OS) thresholds; } } } }
若要指定探测器所有者,请在层次结构级别包含
probe
[edit services rpm]
语句。探测器所有者标识符的长度最多为 32 个字符。若要指定测试名称,请在层次结构级别包含
test
语句[edit services rpm probe owner]
。测试名称标识符的长度最多为 32 个字符。测试表示计算标准偏差、平均值和抖动的探头范围。要指定互联网控制消息协议 (ICMP) 探测的数据部分的内容,请在层次结构级别包括
data-fill
该语句[edit services rpm probe owner]
。该值可以是十六进制值。该data-fill
语句对 或http-metadata-get
探测器类型无效http-get
。要指定 ICMP 探测器的数据部分的大小,请在层次结构级别包含
data-size
[edit services rpm probe owner]
该语句。大小可以是 到0
65400
,默认大小为0
。该data-size
语句对 或http-metadata-get
探测器类型无效http-get
。注意:如果配置硬件时间戳功能(请参阅 在 MX、M、T 和 PTX 系列路由器以及 EX 系列交换机上配置 RPM 时间戳):
这是一个已弃用的元素
data-size
默认值为 32 字节,这是一个已弃用的元素 32 是显式配置的最小值。UDP 时间戳探测类型是一个例外;它要求最小数据大小为 44 字节。必须
data-size
至少比 RPM 客户端接口的默认 MTU 小 100 个字节。
在 M 系列和 T 系列路由器上,您可以配置语句
destination-interface
以启用 RPM 探测数据包的硬件时间戳。您可以指定一个 sp- 接口,让 AS 或多服务 PIC 添加硬件时间戳;有关更多信息,请参阅 在 MX、M、T 和 PTX 系列路由器以及 EX 系列交换机上配置 RPM 时间戳。您还可以包含语句one-way-hardware-timestamp
以启用单向延迟和抖动测量。要指定探测器发送到的用户数据报协议 (UDP) 端口或传输控制协议 (TCP) 端口,请在层次结构级别包含
destination-port
该语句[edit services rpm probe owner test test-name]
。该destination-port
语句仅用于 UDP 和 TCP 探测类型。该值可以是7
或 到49160
65535
。如果配置硬件时间戳或与硬件
probe-type udp-ping-timestamp
时间戳一起配置probe-type udp-ping
,则 的值destination-port
只能为 7。在这种情况下,约束检查会阻止您为目标端口配置任何其他值。使用单向硬件时间戳时,此约束不适用。要在 IP 报头中指定差分服务 (DiffServ) 字段的值,请在层次结构级别包含
dscp-code-point
该语句[edit services rpm probe owner test test-name]
。DiffServ 代码点 (DSCP) 位值可以设置为有效的 6 位模式;例如,001111
.也可以使用在层次结构级别配置[edit class-of-service code-point-aliases dscp]
的别名进行设置。默认值为000000
。要指定存储的历史记录条目数,请在层次结构级别包含
history-size
[edit services rpm probe owner test test-name]
该语句。指定从 到0
的值512
。默认值为50
。要指定用于进行统计计算的样本数,请在层次结构级别包含
moving-average-size
该语句[edit services rpm probe owner test test-name]
。指定从0
到 的值255
。要指定测试中的探测数,请在层次结构级别包含
probe-count
[edit services rpm probe owner test test-name]
该语句。指定从1
到 的值15
。要指定发送数据包之间的等待时间,请在层次结构级别包含
probe-interval
[edit services rpm probe owner test test-name]
语句。指定从秒到255
秒的值1
。要指定探测器的数据包和协议内容,请在层次结构级别包含
probe-type
语句[edit services rpm probe owner test test-name]
。支持以下探测类型:http-get
— 向目标 URL 发送超文本传输协议 (HTTP) get 请求。http-metadata-get
- 将元数据的 HTTP get 请求发送到目标 URL。icmp-ping
— 将 ICMP 回显请求发送到目标地址。icmp-ping-timestamp
— 将 ICMP 时间戳请求发送到目标地址。tcp-ping
— 将 TCP 数据包发送到目标。udp-ping
— 将 UDP 数据包发送到目标。udp-ping-timestamp
— 将 UDP 时间戳请求发送到目标地址。
以下探测类型支持探测数据包
icmp-ping
的硬件时间戳:、 、udp-ping
、icmp-ping-timestamp
udp-ping-timestamp
。从 Junos OS 17.3R3 版开始,委托探测器在 3 秒的间隔内均匀分布,以避免由于实时性能监控 (RPM) 而导致网络中的数据包突发。处理 RPM 系统日志时,RPM 委托测试的启动时间增加到 60 秒。处理 RPM 系统日志后,同时启动和结束多个测试的机会较小,因此存在潜在的限制event-processing
。注意:某些探测器类型需要配置其他参数。例如,指定
tcp-ping
或udp-ping
选项时,必须使用destination-port
语句配置目标端口。该udp-ping-timestamp
选项要求最小数据大小为 12;任何较小的数据大小都会导致提交错误。TCP 探测数据包的最小数据大小为 1。当您配置命令或与命令一起
one-way-hardware-timestamp
配置probe-type udp-ping
时probe-type udp-ping-timestamp
,其destination-port
值只能为 7。在这种情况下,约束检查会阻止您为目标端口配置任何其他值。要指定 ICMP 探测使用的路由实例,请在层次结构级别包含
routing-instance
[edit services rpm probe owner test test-name]
该语句。默认路由实例为 互联网路由表inet.0
。要指定用于 ICMP 探测的源 IP 地址,请在层次结构级别包含
source-address
[edit services rpm probe owner test test-name]
该语句。如果源 IP 地址不是路由器分配的地址之一,数据包将使用传出接口的地址作为其源地址。从 Junos OS 16.1R1 版开始,要指定用于从 RPM 客户端(发出 RPM 数据包的设备)发送到 RPM 服务器(接收 RPM 探测的设备)的 RPM 探测的源 IPv6 地址,请在层次结构级别包括
inet6-options source-address ipv6-address statement
[edit services rpm probe owner test test-name]
。如果源 IPv6 地址不是路由器或交换机的分配地址之一,数据包将使用传出接口的地址作为其源地址。要指定用于探测的目标地址,请在层次结构级别包含
target
语句[edit services rpm probe owner test test-name]
。对于 HTTP 探测类型,请指定包含在 URL 地址中的完全格式的 URL
http://
。对于所有其他探测类型,请为目标主机指定 IP 版本 4 (IPv4) 或 IP 版本 6 (IPv6)(IPv6 支持从 Junos OS 版本 16.1R1 开始)地址。
要指定两次测试之间等待的时间,请在层次结构级别包含
test-interval
[edit services rpm probe owner test test-name]
该语句。指定从秒到86400
秒的值0
。值为 0 秒会导致 RPM 测试在一次迭代后停止。默认值为 1。要指定用于探测的阈值,请在层次结构级别包含
thresholds
[edit services rpm probe owner test test-name]
该语句。当超过配置的阈值时,将生成系统日志消息。同样,当超过阈值时,会生成 SNMP 陷阱(如果已配置)。支持以下选项:egress-time
—测量每个探头的最大源到目标时间。ingress-time
—测量每个探测器的最大目标到源时间。jitter-egress
—测量每次测试的最大源到目标抖动。jitter-ingress
—测量每次测试的最大目标到源抖动。jitter-rtt
—测量每次测试的最大抖动,从 0 到 60000000 微秒。rtt
—测量每个探头的最大往返时间(以微秒为单位)。std-dev-egress
—测量每个测试的最大源到目标标准偏差。std-dev-ingress
—测量每个测试的最大目标到源标准偏差。std-dev-rtt
—测量每个测试的最大标准偏差(以微秒为单位)。successive-loss
—测量连续探头丢失计数,指示探头故障。-
total-loss
—测量指示测试失败的总探头损耗计数(从 0 到 15)。此阈值的默认值为 1。
如果达到或超过配置的阈值,则会发送陷阱。要设置陷阱位以生成陷阱,请在层次结构级别包含
traps
[edit services rpm probe owner test test-name]
该语句。支持以下选项:egress-jitter-exceeded
— 达到或超过出口时间抖动阈值时生成陷阱。egress-std-dev-exceeded
- 达到或超过出口时间标准偏差阈值时生成陷阱。egress-time-exceeded
— 达到或超过最大出口时间阈值时生成陷阱。ingress-jitter-exceeded
— 达到或超过入口时间抖动阈值时生成陷阱。ingress-std-dev-exceeded
- 达到或超过入口时间标准偏差阈值时生成陷阱。ingress-time-exceeded
- 达到或超过最大入口时间阈值时生成陷阱。jitter-exceeded
- 达到或超过往返时间抖动阈值时生成陷阱。probe-failure
- 为超过的连续探测器丢失阈值生成陷阱。rtt-exceeded
- 达到或超过最大往返时间阈值时生成陷阱。std-dev-exceeded
- 达到或超过往返时间标准差阈值时生成陷阱。test-completion
- 测试完成后生成陷阱。test-failure
- 当达到或超过总探头丢失阈值时,将生成陷阱。
更改历史记录表
功能支持由您使用的平台和版本决定。使用功能资源管理器确定您的平台是否支持某个 功能 。
icmp6-ping
生成。
event-processing
。
icmp-ping
和
icmp-ping-timestamp
RPM 探测的生成,与数据包转发引擎上生成的探测数量相比,每个服务 NPU 上生成的探测数量增加到每秒 100 万个。
inet6-options source-address ipv6-address statement
[edit services rpm probe owner test test-name]
。