VXLAN 流量的 TX 丢包计数器计数两次
使用 Broadcom ASIC 的交换机在启用 VXLAN 的网桥上将 BUM 流量反映为 TX 丢包。当您使用启用 VXLAN 的网桥配置交换机时,此行为源于 ASIC 本身。
症状
当启用 VXLAN 的网桥收到广播、未知单播或多播 (BUM) 帧时,ASIC 会避免将帧发送回最初接收它的同一端口,以避免环路。这种水平分割校正会导致 HwIfOutNonQDrops
传输丢包计数器对于每个计数递增两次。
当您运行以下命令时,您会看到此双重计数的效果
sudo ethtool -S swpX
net show counters
cl-netstat
此行为不会发生在配置了非 VXLAN 端口的网桥上。但是,当您将 VNI 配置为网桥端口时,交换机不再将该网桥中的交换机端口视为常规端口。这些交换机端口容易受到此行为的影响,并且流量统计信息反映了这种水平分割校正。
您还会看到 HwIfOutNonQDrops
计数器在接收 VXLAN 封装数据包的路由上行链路端口上计数两次。
示例
Host11 直接连接到端口 swp11 上的 VTEP1,并与直接连接到端口 swp22 上的 VTEP2 的 Host2 通信。IP 路由网络分隔 VTEP1 和 VTEP2。
对于从 Host11 到 Host22 的单向流量
- 入口 VTEP 在接收流量的边缘端口(VTEP1,swp11)上计算 TX 丢包,速率等于入口端口接收的 BUM 数据包数(来自流量源)。
- 出口 VTEP 在路由的上行链路端口(VTEP2,swp22)上计算 TX 丢包,速率等于 BUM 数据包数乘以洪泛列表中远程 VTEP 的数量(每个 VNI)。
在以下示例中,主机发送 10000 个多播数据包
- swp5 的
TX_DRP
列显示 10001,这表明由于水平分割校正行为,TX_DRP
计数器在哪里递增。 - swp5 的
RX_OK
列显示 10005,swp1 的TX_OK
列显示 20049。这些指示与此示例相关的流量的物理网络路径。 - vni-1010 的
TX_OK
列显示 20007,这指示与此示例相关的逻辑端口上的网络路径。
在入口 VTEP 上
- 边缘端口 (swp5) 接收 10005 个数据包。由于水平分割校正,入口端口上显示 10001 个数据包为 TX 丢包。
- 路由的上行链路 (swp1) 向两个远程 VTEP(VTEP2 和 VTEP3)发送 20049 个数据包。vni-1010 在洪泛列表中有两个远程 VTEP,因此 20007 个数据包显示为
TX_OK
;这是正常行为。
cumulus@vtep1:~$ net show counters
Kernel Interface table
Iface MTU Met RX_OK RX_ERR RX_DRP RX_OVR TX_OK TX_ERR TX_DRP TX_OVR Flg
-------- ----- ----- ------- -------- -------- -------- ------- -------- -------- -------- -----
bridge 1500 0 10011 0 0 0 50023 0 0 0 BMRU
eth0 1500 0 95 0 0 0 14 0 0 0 BMRU
lo 65536 0 0 0 0 0 0 0 0 0 LRU
swp1 1500 0 80 0 0 0 20049 0 6 0 BMRU
swp5 1500 0 10005 0 0 0 54 0 10001 0 BMRU
swp15 1500 0 13 0 0 0 23 0 0 0 BMRU
swp16 1500 0 3 0 0 0 20058 0 0 0 BMRU
swp51 1500 0 0 0 0 0 0 0 0 0 BMU
vni-1010 1500 0 3 0 0 0 20007 0 0 0 BMRU
对于出口 VTEP
- 路由的上行链路端口 (swp5) 接收 10055 个数据包。由于水平分割校正,入口端口上显示 20009 个数据包为 TX 丢包(以及相应 VNI 的 20011 个数据包)。
- 边缘端口 (swp49) 向目标发送 10061 个数据包。
cumulus@vtep2:~$ net show counters
Kernel Interface table
Iface MTU Met RX_OK RX_ERR RX_DRP RX_OVR TX_OK TX_ERR TX_DRP TX_OVR Flg
-------- ----- ----- ------- -------- -------- -------- ------- -------- -------- -------- -----
bridge 1500 0 10014 0 0 0 40027 0 0 0 BMRU
eth0 1500 0 133 0 0 0 25 0 0 0 BMRU
lo 65536 0 0 0 0 0 0 0 0 0 LRU
swp5 1500 0 10055 0 0 0 90 0 20009 0 BMRU
swp15 1500 0 3 0 0 0 14 0 0 0 BMRU
swp16 1500 0 3 0 0 0 10060 0 0 0 BMRU
swp49 1500 0 6 0 0 0 10061 0 0 0 BMRU
vni-1010 1500 0 10004 0 0 0 20011 0 0 0 BMRU
vni-1020 1500 0 1 0 0 0 1 0 0 0 BMRU