Libvirt路由网络下宿主机与VM间UDP通信异常求助
Libvirt路由网络下宿主机与VM间UDP通信异常求助
大家好,我最近在使用Libvirt的路由网络时碰到了一个棘手的问题,想请各位帮忙分析排查下。
环境信息
- 宿主机网络:
Host: 192.168.1.144/24 - Libvirt路由网络(VMs(routed)):
192.168.122.0/24 - 我的VM均连接在名为
routed-122的路由网络上,网络配置如下:
<network> <name>routed-122</name> <uuid>86ca64a6-7fea-4cf8-9625-fa45fe944c2c</uuid> <forward mode='route'/> <bridge name='virbr1' zone='public' stp='on' delay='0'/> <mac address='52:54:00:0e:84:40'/> <domain name='routed_nat'/> <ip address='192.168.122.1' netmask='255.255.255.0'> <dhcp> <range start='192.168.122.128' end='192.168.122.254'/> <host mac='52:54:00:32:a9:9d' name='kvm-srv01' ip='192.168.122.131'/> <host mac='52:54:00:82:b7:f7' name='kvm-srv02' ip='192.168.122.132'/> <host mac='52:54:00:ee:38:54' name='kvm-srv03' ip='192.168.122.133'/> </dhcp> </ip> </network>
通信现状
UDP通信在以下场景完全正常:
- VMs ↔ 网桥virbr1(192.168.122.1)
- VMs ↔ 宿主机所在的外部网络(192.168.1.0/24)
但UDP无法在VMs和宿主机本身(192.168.1.144/24)之间建立通信,而TCP在所有场景下都能正常工作,没有任何问题!
测试方式
我用iperf3的UDP模式做了多次测试:
- 在宿主机启动服务端:
iperf3 -s - 在VM发起UDP连接:
iperf3 -u -c HOST-IP
反过来在VM启动服务端、宿主机发起连接,结果一致——UDP完全不通。
另外我还用Wireshark抓包分析过,并且尝试把VM切换到Libvirt默认的NAT网络(192.168.100.0/24),还是遇到了相同的UDP通信问题。这个异常是我在测试Docker Swarm的时候偶然发现的。
备注:内容来源于stack exchange,提问作者chupnik
相关产品推荐
相关产品推荐

