了解叠加 ping 和 traceroute 数据包支持
在虚拟叠加网络中,现有 ping 和 traceroute 机制无法提供足够的信息来确定是否在整个网络中建立连接。现有 ping
命令和 traceroute
命令只能验证底层物理网络中两个端点之间的基本连接,但不能在叠加网络中进行验证。例如,您可以在作为虚拟隧道端点 (VTEP) 功能的瞻博网络设备上向另一个同时在虚拟可扩展 LAN (VXLAN) 叠加中充当 VTEP 的瞻博网络设备发出现有 ping
命令。在这种情况下,ping 输出可能表示源 VTEP 与目标 VTEP 之间的连接已启动并运行,尽管无法访问其中一个端点(应用程序直接运行的物理服务器)。
从适用于 QFX5100 交换机的 Junos OS 14.1X53-D30 版本、EX9200 交换机的 16.1 版和 MX 系列路由器的 16.2 版开始,叠加 ping 和 traceroute 作为叠加网络的故障排除工具引入。
要使 ping 和 traceroute 机制在叠加网络中工作,与在叠加分段上转发的数据包相同的 VXLAN UDP 标头(外部标头)必须封装 ping 和 traceroute 数据包,也统称为运维、管理和管理 (OAM) 数据包。此实施可确保传输节点以与特定叠加分段的数据包相同的方式转发 OAM 数据包。
如果特定数据流出现任何连接问题,与流对应的叠加 OAM 数据包将遇到与该流的数据包相同的连接问题。
使用 ping 叠加和 traceroute 叠加时,请记住以下内容:
支持的唯一通道类型是 VXLAN 隧道。
叠加网络中发送和接收叠加 ping 数据包的 VTEP 必须是支持叠加 ping 和 traceroute 的瞻博网络设备。
叠加 ping 和 traceroute 功能
叠加 ping 和 traceroute 数据包作为用户数据报协议 (UDP) 回应请求和回复发送,并封装在 VXLAN 标头中。启动和终止叠加隧道的 VTEP,发送和接收叠加 OAM 数据包。叠加 ping 和 traceroute 仅在 VXLAN 叠加网络中受支持,其中发送和接收 VTEP 都是瞻博网络设备。
叠加 ping 功能可验证 VTEP 的数据平面以及 MAC 地址和 IP 地址。此附加验证不同于更常用的 IP ping 功能,其中实际目标回复回应请求,而没有叠加分段上下文。
在 VXLAN 叠加网络中追踪路由时,沿路由支持的叠加 traceroute 的瞻博网络设备还提供了时间戳。不支持叠加 traceroute 的第三方设备和瞻博网络设备不提供此时间戳。
UDP 有效负载的叠加 OAM 数据包格式
叠加 OAM 数据包的格式取决于隧道中承载的有效负载类型。对于 VXLAN 隧道,内部数据包为第 2 层数据包。
仅支持第 2 层 UDP 有效负载。
图 1 显示了 VXLAN 封装的叠加 OAM 数据包上的完整标头。

外部以太网标头 — 包含物理网络中直接连接的节点的源 MAC (SMAC) 和目标 MAC (DMAC) 地址。这些地址在每个跃点上都会发生变化。
外部 IP 报头 — 包含瞻博网络设备的源和目标 IP 地址,这些设备充当启动和终止隧道的 VTEP。
外部 UDP 标头 — 包含与流信息量和目标端口关联的源端口。源端口是内部计算的散列值。目标端口是用于 VXLAN 的标准 UDP 端口 (4789)。
VXLAN 标头 — 包含 VXLAN 网络标识符 (VNI) 或 VXLAN 的分段 ID,以及新的路由器警报 (RA) 标志位。
内部以太网标头 — 包含用于 SMAC 和 DMAC 的控制 MAC 地址 (00-00-5E-90-xxxx)。此地址不会从 VTEP 中转发出来。或者,SMAC 可以设置为非控制 MAC 地址。但是,如果使用了非控制 MAC 地址,VTEP 不得从叠加 OAM 数据包中学习 SMAC。
内部 IP 报头 — 包含源 IP 地址,可设置到端点或源 VTEP 的 IP 地址。目标 IP 地址可设置为 127/8 地址,从而确保叠加 OAM 数据包不会从配置为 VTEP 的瞻博网络设备的端口中转发。
内部 UDP 报头 — 包含在内部 UDP 标头的目标端口字段中使用的新保留值。此值将传入的 UDP 数据包标识为叠加 OAM 数据包。
内部 UDP 有效负载 — 包含所有特定于 OAM 的叠加消息格式和类型、长度和值 (TLV) 定义。
内部 UDP 有效负载格式如下:
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Message Type | Reply mode | Return Code | Return Subcode| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Originator Handle | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TimeStamp Sent (seconds) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TimeStamp Sent (microseconds) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TimeStamp Received (seconds) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TimeStamp Received (microseconds) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TLVs ... | . . . . . . | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
OAM 特定的消息类型如下之一:
Value What it means ----- ------------- 1 Echo Request 2 Echo Reply Reply Mode Values:- Value What it means ----- --------------------------------- 1 Do not reply 2 Reply via an IPv4/IPv6 UDP Packet 3 Reply via Overlay Segment
VXLAN ping 的 TLV 定义如下:
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type = 1(VXLAN ping IPv4) | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | VXLAN VNI | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IPv4 Sender Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
多个路由实例支持
从 Junos OS 19.3R1 版开始,您可以使用 ping overlay
和 traceroute overlay
命令来验证连接并检测具有多个路由实例的静态 VxLAN 隧道中的故障。为 ping overlay
和 traceroute overlay
命令创建的 ping 和 traceroute 数据包与数据包遵循相同的底层网络路径。这允许您验证叠加 VxLAN 隧道中两个 VTEP 之间的连接。配置为源和目标 VTEP 的设备都必须运行支持多个路由实例的 Junos OS 版本,但传输设备不支持。