Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

ICMP 功能

使用互联网控制消息协议 (ICMP) 功能诊断网络问题并检查设备的可访问性。

协议重定向消息

ICMP 重定向(也称为协议重定向)是交换机和路由器用来向主机传输路由信息的机制。设备使用协议重定向消息通知相同数据链路上的主机为给定目标提供可用的最佳路由。

了解协议重定向消息

协议重定向消息通知主机更新其路由信息,并在备用路由上发送数据包。假设有主机试图通过交换机 S1 发送数据包,而 S1 将数据包发送至另一台交换机 S2。此外,假设有一条从主机到 S2 的直接路径可用(即,主机和 S2 在同一以太网分段上)。然后,S1 会发送一条协议重定向消息,通知主机目标的最佳路由是指向 S2 的直接路由。然后,主机应将数据包直接发送到 S2,而不是通过 S1 发送。S2 仍将从 S1 接收的原始数据包发送至预期目标。

有关协议重定向的详细信息,请参阅 RFC-1122RFC-4861

注意:
  • 如果数据包包含路由信息,交换机不会发送协议重定向消息。

  • 所有 EX 系列交换机都支持 IPv4 和 IPv6 流量的发送协议重定向消息。

禁用协议重定向消息

默认情况下,设备会同时为 IPv4 和 IPv6 流量发送协议重定向消息。出于安全考虑,您可能需要禁用设备发送协议重定向消息。

要禁用整个设备的协议重定向消息,请在 no-redirects 层次结构级别包含或 no-redirects-ipv6 语句 [edit system]

  • 对于 IPv4 流量:

  • 对于 IPv6 流量:

要重新启用在设备上发送重定向消息,请从配置中删除语句 no-redirects (适用于 IPv4 流量)或 no-redirects-ipv6 语句(适用于 IPv6 流量)。

要禁用每个接口的协议重定向消息,请在 no-redirects 层级添加语句 [edit interfaces interface-name unit logical-unit-number family family]

  • 对于 IPv4 流量:

  • 对于 IPv6 流量:

Ping 使用 ICMP。当设备向目标发送 ICMP 回显请求,目标使用 ICMP 回显回复进行响应时,ping 就会成功。但是,在某些情况下,您可能不希望您的设备响应 ping 请求。

禁用路由引擎对组播 Ping 数据包的响应

默认情况下,路由引擎会响应发送至组播组地址的 ICMP 回显请求。通过将路由引擎配置为忽略组播 ping 数据包,可以防止未经授权的人员发现网络中提供商边缘 (PE) 设备列表。

要禁用路由引擎响应这些 ICMP 回显请求,请在 no-multicast-echo 层次结构级别包括以下语句 [edit system]

禁用在 Ping 响应中报告 IP 地址和时间戳

使用选项发出 ping 命令 record-route 时,路由引擎默认显示 ICMP 回显请求数据包的路径和 ICMP 回显响应中的时间戳。通过配置 no-ping-record-routeno-ping-timestamp 选项,可以防止未经授权的人员发现有关提供商边缘 (PE) 设备及其环路地址的信息。

您可以配置路由引擎以禁用 ping 请求数据包的 IP 标头中的选项设置 record-route 。禁用选项 record-route 可防止路由引擎在响应中记录和显示 ICMP 回显请求数据包的路径。

要配置路由引擎以禁用选项的设置 record route ,请在 no-ping-record-route 层次结构级别添加语句 [edit system]

要禁用在 ICMP 回显响应中报告时间戳,请在 no-ping-time-stamp 层级包括以下选项 [edit system]

源提示消息

当设备接收的数据报过多或未经请求时,它可以向始发设备发送源抑制消息。源抑制消息会向始发设备发出信号,以减少其发送的流量。

默认情况下,设备会对 ICMP 源抑制消息做出反应。要忽略 ICMP 源抑制消息,请将语句 no-source-quench 包含在 [edit system internet-options] 层次结构级别:

要停止忽略 ICMP 源抑制消息,请使用 source-quench 语句:

生存时间 (TTL) 到期

数据包标头中的生存时间 (TTL) 值决定了数据包在网络中保持多久。数据包通过的每个设备(或跃点)的 TTL 值都会减去。当设备收到 TTL 值为 0 的数据包时,会丢弃该数据包。TTL 到期消息使用 ICMP 发送。

您可以将设备配置为使用 IPv4 地址作为 ICMP 生存时间 (TTL) 到期错误消息的源地址。这意味着,您可以将环路地址配置为响应 ICMP 错误数据包的源地址。当您无法将设备地址用于 traceroute 时,由于网络中存在重复的 IPv4 地址,这样做会很有用。

源地址必须是 IPv4 地址。要指定源地址,请在 ttl-expired-source-address source-address 层级使用选项 [edit system icmp (System)]

此配置仅适用于 ICMP TTL 到期消息。其他 ICMP 错误回复消息继续使用入口接口的地址作为源地址。

速率限制 ICMP 流量

要限制路由引擎可以生成 ICMPv4 或 ICMPv6 消息并将其发送到路由引擎的速率,请将适当的速率限制语句 [edit system internet-options] 包含在层次结构级别。

  • 对于 IPv4:

  • 对于 IPv6:

速率限制 ICMP 错误消息

默认情况下,非 TTL 过期的 IPv4 和 IPv6 数据包的 ICMP 错误消息以每秒 1 个数据包的速率生成 (pps)。您可以将此速率调整为自己决定为网络提供足够信息的值,而不会造成网络拥塞。

注意:

对于 TTL 过期的 IPv4 或 IPv6 数据包,ICMP 错误消息的速率不可配置。固定在 500 pps。

为什么要对 ICMPv4 和 ICMPv6 错误消息进行速率限制

调整速率限制的一个示例用例是提供 Web 服务的数据中心。假设此数据中心网络上有许多服务器在通过互联网与主机通信时使用 MTU 为 9100 字节的巨型帧。其他主机需要 1500 字节的 MTU。除非在连接两端实施最大分段大小 (MSS),否则服务器可能会回复的数据包太大,无法通过互联网传输,而在到达数据中心的边缘路由器时不会分片。

由于 TCP/IP 实施通常默认启用路径 MTU 发现,并将 dont-fragment 位设置为 1,因此传输设备将丢弃过大的数据包,而不是将其分片。设备将返回 ICMP 错误消息,指示由于数据包太大而无法访问目标。消息还将提供发生错误时所需的 MTU。发送主机应调整该连接的发送 MSS,并重新发送较小数据包的数据,以避免分片问题。

核心接口速度较高时,当网络中有许多主机需要此服务时,错误消息的默认速率限制为 1 pps 可能不足以通知所有主机。其后果是出站数据包会悄无声息地丢弃。此操作可以触发其他重新传输或回传行为,具体取决于数据中心边缘路由器在每个面向核心的接口上处理的请求量。

在这种情况下,您可以提高速率限制,使更多的超大数据包能够到达发送主机。(添加更多面向核心的接口也有助于解决问题。)

如何对 ICMPv4 和 ICMPv6 的速率限制错误消息

尽管您在层次结构级别配置速率限制 [edit chassis] ,但它不是机箱范围的限制。相反,速率限制适用于每个接口系列。例如,这意味着配置了 family inet 多个物理接口,可以按照配置的速率同时生成 ICMP 错误消息。

注意:

此速率限制仅对持续 10 秒或更长时间的流量生效。速率限制不会应用于持续时间较短的流量,例如 5 秒或 9 秒。

  • 要配置 ICMPv4 的速率限制,请使用 icmp 以下语句:

    从 Junos OS 19.1R1 版开始,最大速率从 50 pps 增加到 1000 pps。

  • 要配置 ICMPv6 的速率限制,请使用以下 icmp6 语句:

您还必须考虑,速率限制值可以与您的 DDoS 保护配置交互。超过 MTU 的例外数据包的默认带宽值为 250 pps。当数据包数量超过此值时,DDoS 防御将标记违规。如果将速率限制设置为高于当前 mtu-exceeded 带宽值,则必须将带宽值配置为与速率限制匹配。

例如,假设将 ICMP 速率限制设置为 300 pps:

您必须配置 DDoS 防御 mtu-exceeded bandwidth 才能与该值匹配。

选择性错误消息的 ICMP 扩展选项

IP 设备使用 ICMP 协议来诊断网络通信问题,特别是确定数据报是否及时到达其预期目的地。如果数据报未到达预期的目的地,ICMP 会向始发 IP 设备报告适当的错误消息。

当网络问题阻止 IP 数据包交付时,网络设备会使用 ICMP 生成源 IP 地址的错误消息。ICMPv4 和 ICMPv6 为选择性错误消息提供扩展选项。

ICMP 扩展的优势

ICMP 扩展有助于识别接口和其他信息,如下所示:

  • ICMPv4 和 ICMPv6 消息无法识别无法在未编号的接口上处理的数据报接口。

  • ICMP 消息是通过确定传入接口的源地址并将数据包发送到发起设备创建的;但是,源设备无法知道 ICMP 消息的来源。

ICMP 扩展允许您识别响应 ICMP 消息的网络设备,包括以下信息:

  • 通过 IP 接口接收的数据报。

  • 数据报到达 IP 接口的子 IP 组件。

  • 转发数据报的 IP 接口。

  • 它将转发到的下一跃点 IP 地址。

我们实施了 RFC5837,以便为已编号和未编号的聚合以太网接口附加附加字段,以选择 ICMP(IPv4 和 IPv6) 消息:

  • ICMPv4 时间超标
  • 无法访问 ICMPv4 目标
  • ICMPv6 时间超出
  • 无法访问 ICMPv6 目标
注意:

ICMPv6 扩展仅支持编号接口。

如何启用 ICMP 扩展

要启用 ICMPv4 扩展,

要禁用 ICMPv4 扩展,请删除以下配置:

要启用 ICMPv6 扩展,

要禁用 ICMPv6 扩展,请删除配置: