我正在调查间歇性网络故障,查看/proc/net/dev
文件时我发现 WireGuard 接口报告了集群中所有虚拟机的可变数量的传输错误(它随着通过该接口的流量而或多或少地扩展)。
然而,据报道没有错误在接收端。并且底层接口没有报告任何错误。
我应该如何解释这种情况?这是预料之中的吗?这是 WireGuard 中的错误吗?这可能是间歇性断开连接的原因吗?
ip -s -s link show wg0
4: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1
link/none
RX: bytes packets errors dropped overrun mcast
18229925236 135673958 0 0 0 0
RX errors: length crc frame fifo missed
0 0 0 0 0
TX: bytes packets errors dropped carrier collsns
951387346088 775255612 26278 0 0 0
TX errors: aborted fifo window heartbeat transns
0 0 0 0 0
我在这里只是为了向您展示我所看到的情况。
答案1
WireGuard 使用 UDP,因此发送方几乎不会报告任何错误 - 接收方也是如此。如果数据包在传输过程中丢失(丢弃),接收方 WireGuard 接口将报告该情况,但您的物理接口不会报告。
是的,丢失的数据包可能是(并且几乎肯定会是)罪魁祸首。