示例:在 QFX 系列交换机上使用叠加 Ping 和叠加跟踪路由对 VXLAN 叠加网络进行故障排除
在虚拟可扩展 LAN (VXLAN) 叠加网络中,现有 ping
和 traceroute
命令可以验证两个瞻博网络设备之间的基本连接,这些设备在底层物理网络中充当虚拟隧道端点 (VTEP)。但是,在两个 VTEP 之间,可能有多条路由通过中间设备到达相同的目标,并且 ping 和 traceroute 数据包可能会成功到达其目标,而数据包通常转发的另一条路由中存在连接问题。
在适用于 QFX5100 交换机的 Junos OS 14.1X53-D30 版中引入 overlay
参数和其他选项后,您可以使用 ping
和 traceroute
命令对 VXLAN 叠加网络进行故障排除。
要使 ping 和 traceroute 机制在 VXLAN 叠加网络中工作,ping 和 traceroute 数据包(也称为操作、管理和管理 (OAM) 数据包)必须使用与通过 VXLAN 分段转发的数据包相同的 VXLAN UDP 标头(外部标头)封装,但可能存在连接问题。如果出现任何连接问题,叠加 OAM 数据包将遇到与数据包相同的问题。
此示例说明如何在 VTEP 上使用叠加 ping 和 traceroute 来验证 VXLAN 叠加网络中的以下内容:
场景 1 — 验证是否在另一个 VTEP 上配置了特定 VXLAN。
场景 2 — 验证特定端点的 MAC 地址是否与另一个 VTEP 上的 VXLAN 相关联。
场景 3 — 验证发送和接收终端节点之间的特定数据流中是否存在问题。
发出 ping overlay
and traceroute overlay
命令时,发出命令的源 VTEP 和接收 ping 或 traceroute 数据包的目标 VTEP 必须是支持叠加 ping 和 traceroute 的瞻博网络设备。
要求
此示例使用以下硬件和软件组件:
三个物理(裸机)服务器,应用程序直接运行在这两个服务器上。
两台运行 Junos OS 14.1X53-D30 或更高版本软件的 QFX5100 交换机。这些交换机用作 VTEP。
两个第 3 层路由器,可以是 Juniper Networks 路由器或其他供应商提供的路由器。
在发出 ping overlay
and traceroute overlay
命令之前,请收集用于特定场景的每个参数所需的信息,例如 IP 地址或 MAC 地址。请参阅 表 1 以确定每个场景使用哪些参数。
概述和拓扑
图 1 所示的 VXLAN 叠加网络拓扑包括应用程序直接运行的物理服务器 A、B 和 C。物理服务器 A 和 B 上的应用程序需要与物理服务器 C 上的应用程序进行通信。这些服务器位于同一子网上,因此应用程序之间的通信发生在第 2 层级别,VXLAN 封装或隧道用于通过第 3 层网络传输其数据包。

在此拓扑中,有两个 QFX5100 交换机用作 VTEP。VTEP1 为物理服务器 A 和 B 启动和终止 VXLAN 隧道,VTEP2 为物理服务器 C 执行相同的操作。VTEP1 和 VTEP2 位于 VXLAN 100 中。
从物理服务器 A 发送的数据包通常会路由到 IP 地址为 192.0.2.30 的第 3 层路由器,以到达物理服务器 C。
在此 VXLAN 叠加网络拓扑中,物理服务器 A 和 C 之间出现通信问题。要解决此数据流的问题,您可以在 VTEP1(源 VTEP 或 tunnel-src
)上启动 ping overlay
and traceroute overlay
命令,并指定 VTEP2 是目标 VTEP 或 tunnel-dst
。
命令 ping overlay
and traceroute overlay
包含多个参数。 表 1 说明了用途,并为场景 1、2 和 3 中使用的每个参数提供了一个值。
表 1 不包括所有可用 ping overlay
参数 traceroute overlay
和参数。此示例使用这些省略参数的默认值。
|
描述 |
参数适用的场景 |
价值 |
---|---|---|---|
|
标识要进行故障排除的隧道类型。 |
都 |
VXLAN |
|
此示例中使用的 VXLAN 的 VXLAN 网络标识符 (VNI)。 |
都 |
100 |
|
VTEP1 的 IP 地址,您在其上启动覆盖 ping 或 traceroute。 |
都 |
192.0.2.10 |
|
VTEP2 的 IP 地址,用于接收覆盖 ping 或 traceroute 数据包。 |
都 |
192.0.2.20 |
|
物理服务器 C 的 MAC 地址,即目标终端节点。 |
仅限场景 2 和 3 |
00:00:5E:00:53:抄送 |
|
VTEP1 发送的覆盖 ping 请求数。
注意:
count 参数不适用于叠加层 traceroute。 |
都 |
5 |
|
物理服务器 A 的 MAC 地址,即源终端节点。 |
仅限方案 3 |
00:00:5E:00:53:aa |
|
物理服务器 C 的 MAC 地址,即目标终端节点。
注意:
为场景 3 指定此参数时,MAC 地址必须与为该参数指定的 |
仅限方案 3 |
00:00:5E:00:53:抄送 |
|
物理服务器 A 的 IP 地址。 |
仅限方案 3 |
198.51.100.1 |
|
物理服务器 C 的 IP 地址。 |
仅限方案 3 |
198.51.100.3 |
|
源终端节点的 VLAN ID。
注意:
如果源终端节点不是 VLAN 的成员,则无需使用此参数。 |
仅限方案 3 |
150 |
|
数据流源自的 VTEP1 接口。 |
仅限方案 3 |
氙-0/0/2 |
|
数据流中使用的协议的值。 |
仅限方案 3 |
17 |
|
外部 TCP/UDP 源端口的值。 |
仅限方案 3 |
4456 |
|
外部 UDP 目标端口的值。 |
仅限方案 3 |
4540 |
表 1 包含多个哈希参数,用于场景 3。对于这些参数中的每一个,您必须指定与要进行故障排除的数据流关联的值。根据您指定的值,系统计算 VXLAN UDP 报头源端口哈希,该哈希包含在叠加 ping 和 traceroute 数据包的 VXLAN UDP 报头中。在 VXLAN UDP 标头中包含计算的哈希值,使叠加 ping 和 traceroute 数据包能够模拟您正在故障排除的流中的数据包。
使用哈希参数时,我们建议您为每个参数指定一个值。此准则的例外情况是 hash-vlan 参数,如果源端点不是 VLAN 的成员,则不必使用该参数。这种做法可确保叠加 ping 和 traceroute 进程成功,并且每个命令的输出都是准确的。如果您没有为一个或多个散列参数指定值,系统将发送一个 OAM 请求,该请求可能包含不正确的散列值并生成警告消息。
验证
本部分包括以下验证任务:
场景 1:验证 VXLAN 100 是否在 VTEP2 上配置
目的
验证 VTEP2 上是否配置了 VNI 为 100 的 VXLAN。您可以使用 overlay ping 或 traceroute 来执行此验证。
行动
叠加 Ping
在 VTEP1 上,启动覆盖 ping:
user@switch> ping overlay tunnel-type vxlan vni 100 tunnel-src 192.0.2.10 tunnel-dst 192.0.2.20 count 5 ping-overlay protocol vxlan vni 100 tunnel src ip 192.0.2.10 tunnel dst ip 192.0.2.20 mac address 00:00:00:00:00:00 count 5 ttl 255 WARNING: following hash-parameters are missing - hash computation may not succeed end-host smac end-host dmac end-host src ip end-host dst ip end-host vlan end-host input interface end-host protocol end-host l4-src-port end-host l4-dst-port Request for seq 1, to 192.0.2.20, at 09-24 22:03:16 PDT.033 msecs Response for seq 1, from 192.0.2.20, at 09-24 22:03:16 PDT.036 msecs, rtt 10 msecs Overlay-segment not present at RVTEP 192.0.2.20 Request for seq 2, to 192.0.2.20, at 09-24 22:03:16 PDT.044 msecs Response for seq 2, from 192.0.2.20, at 09-24 22:03:16 PDT.046 msecs, rtt 10 msecs Overlay-segment not present at RVTEP 192.0.2.20 Request for seq 3, to 192.0.2.20, at 09-24 22:03:16 PDT.054 msecs Response for seq 3, from 192.0.2.20, at 09-24 22:03:16 PDT.057 msecs, rtt 10 msecs Overlay-segment not present at RVTEP 192.0.2.20 Request for seq 4, to 192.0.2.20, at 09-24 22:03:16 PDT.065 msecs Response for seq 4, from 192.0.2.20, at 09-24 22:03:16 PDT.069 msecs, rtt 10 msecs Overlay-segment not present at RVTEP 192.0.2.20 Request for seq 5, to 192.0.2.20, at 09-24 22:03:16 PDT.076 msecs Response for seq 5, from 192.0.2.20, at 09-24 22:03:16 PDT.079 msecs, rtt 10 msecs Overlay-segment not present at RVTEP 192.0.2.20
覆盖层 Traceroute
在 VTEP1 上,启动覆盖网络 traceroute:
user@switch> traceroute overlay tunnel-type vxlan vni 100 tunnel-src 192.0.2.10 tunnel-dst 192.0.2.20 traceroute-overlay protocol vxlan vni 100 tunnel src ip 192.0.2.10 tunnel dst ip 192.0.2.20 mac address 00:00:00:00:00:00 ttl 255 WARNING: following hash-parameters are missing - hash computation may not succeed end-host smac end-host dmac end-host src ip end-host dst ip end-host vlan end-host input interface end-host protocol end-host l4-src-port end-host l4-dst-port ttl Address Sender Timestamp Receiver Timestamp Response Time 1 10.1.0.1 09-25 00:51:10 PDT.599 msecs * 10 msecs 2 192.0.2.20 09-25 00:51:10 PDT.621 msecs 09-25 00:51:10 PDT.635 msecs 21 msecs Overlay-segment not present at RVTEP 192.0.2.20
意义
示例叠加 ping 输出指示以下内容:
VTEP1 向 VTEP2 发送了 5 个 ping 请求,VTEP2 对每个请求进行了响应。
VTEP2 指示未配置 VNI 100 (
Overlay-segment not present at RVTEP 192.0.2.20
),并在对 VTEP1 的响应中包含此信息。
示例 overlay traceroute 输出指示以下内容:
收到生存时间 (TTL) 值为 1 跳的覆盖 traceroute 数据包后,第 3 层路由器会响应 VTEP1。
VTEP2 收到 TTL 值为 2 跳的 overlay traceroute 数据包后,会响应 VTEP1。
VTEP2 指示未配置 VNI 100 (
Overlay-segment not present at RVTEP 192.0.2.20
),并在对 VTEP1 的响应中包含此信息。
叠加 traceroute 输出的 Receiver Timestamp 列中的星号 (*) 表示接收叠加 traceroute 数据包的第 3 层路由器不是瞻博网络设备,或者是不支持叠加跟踪路由的瞻博网络设备。
鉴于叠加 ping 和 traceroute 的输出都表明 VXLAN 100 不存在,请检查 VTEP2 上的此配置。如果必须在 VTEP2 上配置 VNI 100,请在层次结构级别使用 vni
configuration 语句 [edit vlans vlan-id vxlan]
,然后重新发出 ping overlay
or traceroute overlay
命令以验证 VXLAN 100 现在是否已被识别。
场景 2:验证目标终端节点的 MAC 地址是否在 VTEP2 上
目的
验证物理服务器 C(目标终端节点)的 MAC 地址 (00:00:5E:00:53:cc) 是否在 VTEP2 的转发表中。您可以使用 overlay ping 或 traceroute 来执行此验证。
行动
叠加 Ping
在 VTEP1 上,启动覆盖 ping:
user@switch> ping overlay tunnel-type vxlan vni 100 tunnel-src 192.0.2.10 tunnel-dst 192.0.2.20 mac 00:00:5E:00:53:cc count 5 ping-overlay protocol vxlan vni 100 tunnel src ip 192.0.2.10 tunnel dst ip 192.0.2.20 mac address 00:00:5E:00:53:cc count 5 ttl 255 WARNING: following hash-parameters are missing - hash computation may not succeed end-host smac end-host dmac end-host src ip end-host dst ip end-host vlan end-host input interface end-host protocol end-host l4-src-port end-host l4-dst-port Request for seq 1, to 192.0.2.20, at 09-24 23:53:54 PDT.089 msecs Response for seq 1, from 192.0.2.20, at 09-24 23:53:54 PDT.089 msecs, rtt 6 msecs Overlay-segment present at RVTEP 192.0.2.20 End-System Not Present Request for seq 2, to 192.0.2.20, at 09-24 23:53:54 PDT.096 msecs Response for seq 2, from 192.0.2.20, at 09-24 23:53:54 PDT.100 msecs, rtt 10 msecs Overlay-segment present at RVTEP 192.0.2.20 End-System Not Present Request for seq 3, to 192.0.2.20, at 09-24 23:53:54 PDT.107 msecs Response for seq 3, from 192.0.2.20, at 09-24 23:53:54 PDT.111 msecs, rtt 10 msecs Overlay-segment present at RVTEP 192.0.2.20 End-System Not Present Request for seq 4, to 192.0.2.20, at 09-24 23:53:54 PDT.118 msecs Response for seq 4, from 192.0.2.20, at 09-24 23:53:54 PDT.122 msecs, rtt 11 msecs Overlay-segment present at RVTEP 192.0.2.20 End-System Not Present Request for seq 5, to 192.0.2.20, at 09-24 23:53:54 PDT.129 msecs Response for seq 5, from 192.0.2.20, at 09-24 23:53:54 PDT.133 msecs, rtt 10 msecs Overlay-segment present at RVTEP 192.0.2.20 End-System Not Present
覆盖层 Traceroute
在 VTEP1 上,启动覆盖网络 traceroute:
user@switch> traceroute overlay tunnel-type vxlan vni 100 tunnel-src 192.0.2.10 tunnel-dst 192.0.2.20 mac 00:00:5E:00:53:cc traceroute-overlay protocol vxlan vni 100 tunnel src ip 192.0.2.10 tunnel dst ip 192.0.2.20 mac address 00:00:5E:00:53:cc ttl 255 WARNING: following hash-parameters are missing - hash computation may not succeed end-host smac end-host dmac end-host src ip end-host dst ip end-host vlan end-host input interface end-host protocol end-host l4-src-port end-host l4-dst-port ttl Address Sender Timestamp Receiver Timestamp Response Time 1 10.1.0.1 09-25 00:56:17 PDT.663 msecs * 10 msecs 2 192.0.2.20 09-25 00:56:17 PDT.684 msecs 09-25 00:56:17 PDT.689 msecs 11 msecs Overlay-segment present at RVTEP 192.0.2.20 End-System Not Present
意义
示例叠加 ping 输出指示以下内容:
VTEP1 向 VTEP2 发送了 5 个 ping 请求,VTEP2 对每个请求进行了响应。
VTEP2 验证了 VNI 100 是否已配置 (
Overlay-segment present at RVTEP 192.0.2.20
),但物理服务器 C 的 MAC 地址不在转发表 ()End-System Not Present
中。VTEP2 在其对 VTEP1 的响应中包含了此信息。
示例 overlay traceroute 输出指示以下内容:
收到 TTL 值为 1 跳的 Overlay traceroute 数据包后,第 3 层路由器会响应 VTEP1。
VTEP2 收到 TTL 值为 2 跳的 overlay traceroute 数据包后,会响应 VTEP1。
VTEP2 验证了 VNI 100 是否已配置 (
Overlay-segment present at RVTEP 192.0.2.20
),但物理服务器 C 的 MAC 地址不在转发表 ()End-System Not Present
中。VTEP2 在其对 VTEP1 的响应中包含了此信息。
叠加 traceroute 输出的 Receiver Timestamp 列中的星号 (*) 表示接收叠加 traceroute 数据包的第 3 层路由器不是瞻博网络设备,或者是不支持叠加跟踪路由的瞻博网络设备。
鉴于 overlay ping 和 traceroute 的输出都表明 VTEP2 不知道物理服务器 C 的 MAC 地址,因此您必须进一步调查以确定为什么此 MAC 地址不在 VTEP2 的转发表中。
方案 3:验证数据流
目的
验证是否存在可能阻碍数据从物理服务器 A 流向物理服务器 C 的问题。支持此流程的网络设备包括 VTEP1、IP 地址为 192.0.2.30 的第 3 层路由器和 VTEP2(参见 图 1)。
最初,使用叠加 ping,如果叠加 ping 结果指示存在问题,则使用叠加 traceroute 来确定问题存在于路径的哪一段。
对于叠加 ping 和 traceroute,使用哈希参数指定有关此数据流中设备的信息,以便系统可以计算 VXLAN UDP 报头源端口哈希,该哈希包含在叠加 ping 和 traceroute 数据包的 VXLAN UDP 报头中。由于 VXLAN UDP 标头中包含计算的哈希值,叠加 ping 和 traceroute 数据包可以模拟此流中的数据包,这应该会产生更准确的 ping 和 traceroute 结果。
使用哈希参数时,我们建议为每个参数指定一个值。此准则的例外情况是 hash-vlan 参数,如果源端点不是 VLAN 的成员,则不必使用该参数。这种做法可确保叠加 ping 和 traceroute 进程成功,并且每个命令的输出都是准确的。如果您没有为一个或多个散列参数指定值,系统将发送一个 OAM 请求,该请求可能包含不正确的散列值并生成警告消息。
行动
叠加 Ping
在 VTEP1 上,启动覆盖 ping:
user@switch> ping overlay tunnel-type vxlan vni 100 tunnel-src 192.0.2.10 tunnel-dst 192.0.2.20 mac 00:00:5E:00:53:cc count 5 hash-source-mac 00:00:5E:00:53:aa hash-destination-mac 00:00:5E:00:53:cc hash-source-address 198.51.100.1 hash-destination-address 198.51.100.3 hash-vlan 150 hash-input-interface xe-0/0/2 hash-protocol 17 hash-source-port 4456 hash-destination-port 4540 ping-overlay protocol vxlan vni 100 tunnel src ip 192.0.2.10 tunnel dst ip 192.0.2.20 mac address 00:00:5E:00:53:cc count 5 ttl 255 hash-parameters: input-ifd-idx 653 end-host smac 00:00:5E:00:53:aa end-host dmac 00:00:5E:00:53:cc end-host src ip 198.51.100.1 end-host dst ip 198.51.100.3 end-host protocol 17 end-host l4-src-port 4456 end-host l4-dst-port 4540 end-host vlan 150 Request for seq 1, to 192.0.2.20, at 09-24 19:15:33 PDT.352 msecs Request for seq 2, to 192.0.2.20, at 09-24 19:15:33 PDT.363 msecs Request for seq 3, to 192.0.2.20, at 09-24 19:15:33 PDT.374 msecs Request for seq 4, to 192.0.2.20, at 09-24 19:15:33 PDT.385 msecs Request for seq 5, to 192.0.2.20, at 09-24 19:15:33 PDT.396 msecs
覆盖层 Traceroute
如果需要,在 VTEP1 上,启动覆盖网络 traceroute:
user@switch> traceroute overlay tunnel-type vxlan vni 100 tunnel-src 192.0.2.10 tunnel-dst 192.0.2.20 mac 00:00:5E:00:53:cc hash-source-mac 00:00:5E:00:53:aa hash-destination-mac 00:00:5E:00:53:cc hash-source-address 198.51.100.1 hash-destination-address 198.51.100.3 hash-vlan 150 hash-input-interface xe-0/0/2 hash-protocol 17 hash-source-port 4456 hash-destination-port 4540 traceroute-overlay protocol vxlan vni 100 tunnel src ip 192.0.2.10 tunnel dst ip 192.0.2.20 mac address 00:00:5E:00:53:cc ttl 255 hash-parameters: input-ifd-idx 653 end-host smac 00:00:5E:00:53:aa end-host dmac 00:00:5E:00:53:cc end-host src ip 198.51.100.1 end-host dst ip 198.51.100.3 end-host protocol 17 end-host l4-src-port 4456 end-host l4-dst-port 4540 end-host vlan 150 ttl Address Sender Timestamp Receiver Timestamp Response Time 1 10.1.0.1 09-25 00:56:17 PDT.663 msecs * 10 msecs
意义
示例叠加 ping 输出表明 VTEP1 向 VTEP2 发送了 5 个 ping 请求,但 VTEP2 未响应任何请求。VTEP2 没有响应表示 VTEP1 与第 3 层路由器之间的路径或第 3 层路由器与 VTEP2 之间的路径存在连接问题。
要进一步排查问题所在的路径,请使用 overlay traceroute。示例 overlay traceroute 输出指示以下内容:
收到 TTL 值为 1 跳的 overlay traceroute 数据包后,第 3 层路由器会响应 VTEP1,这表明 VTEP1 和第 3 层路由器之间的路径已启动。
VTEP2 不响应覆盖网络 traceroute 数据包,这表明第 3 层路由器和 VTEP2 之间的路径可能已关闭。
叠加 traceroute 输出的 Receiver Timestamp 列中的星号 (*) 表示接收叠加 traceroute 数据包的第 3 层路由器不是瞻博网络设备,或者是不支持叠加跟踪路由的瞻博网络设备。
鉴于覆盖 traceroute 输出表明第 3 层路由器和 VTEP2 之间存在连接问题,您必须进一步调查此路径段以确定问题的根源。