运行在独立network namespace的KVM QEMU虚拟机无法ping通默认namespace问题求助
运行在独立network namespace的KVM QEMU虚拟机无法ping通默认namespace问题求助
大家好,我碰到了一个网络连通性的问题:在独立network namespace中运行的KVM QEMU虚拟机,没办法ping通默认的network namespace。以下是我的完整配置流程和测试结果,想请大家帮忙看看我哪里理解有误?
我的配置步骤
# 创建测试用namespace ip netns add test-ns # 创建veth pair设备 ip link add if-in-ns type veth peer name if-notin-ns # 配置默认namespace的veth端 ip link addr add 10.21.0.10/24 dev if-notin-ns ip link set dev if-notin-ns up # 配置test-ns namespace的veth端 ip link set dev if-in-ns netns test-ns ip netns exec test-ns ip addr add 10.21.0.20/24 dev if-in-ns ip netns exec test-ns ip link set dev if-in-ns up # 在test-ns中创建tap设备并配置 ip netns exec test-ns ip tuntap add tap0 mode tap ip netns exec test-ns ip addr add 10.0.2.2/24 dev tap0 ip netns exec test-ns ip link set dev tap0 up # 在默认namespace添加到10.0.2.0/24网段的路由 ip route add 10.0.2.0/24 dev if-notin-ns # 在test-ns中启动KVM虚拟机 ip netns exec test-ns qemu-system-x86_64 -drive file=img.qcow2,format=qcow2,media=disk -accel kvm -cpu host -m 2G -netdev tap,id=vm0,ifname=tap0,script=no,downscript=no -device virtio-net-pci,netdev=vm0,mac=52:54:77:6a:cc:02
连通性测试结果
默认namespace中
ping 10.21.0.20:能正常连通ping 10.0.2.2:能正常连通ping 10.0.2.3:无法连通(10.0.2.3为虚拟机内部IP)
test-ns namespace中
ping 10.21.0.10:能正常连通ping 10.0.2.3:能正常连通
虚拟机内部
ping 10.0.2.2:能正常连通(tap0的IP)ping 10.21.0.20:能正常连通(test-ns里veth设备的IP)ping 10.21.0.10:无法连通(默认namespace里veth设备的IP)
我原本觉得,既然虚拟机能ping通test-ns里的if-in-ns,而if-in-ns又能ping通默认namespace里的if-notin-ns,那虚拟机应该也能ping通if-notin-ns才对,但实际却不行。想请教下我哪里的理解出问题了?
补充说明:针对之前的建议,我查看了test-ns里的路由表,原本就有到默认namespace的路由:
ip netns exec test-ns ip route # 输出内容: 10.0.2.0/24 dev tap0 proto kernel scope link src 10.0.2.2 10.21.0.0/24 dev if-in-ns proto kernel scope link src 10.21.0.20
如果我删掉这条默认的10.21.0.0/24路由,换成建议的路由:
ip netns exec test-ns ip route del 10.21.0.0/24 dev if-in-ns ip netns exec test-ns ip route add 10.21.0.0/24 dev tap0
那在虚拟机内部ping 10.21.0.10的时候,会得到这样的提示:
ping 10.21.0.10 From 10.0.2.2 icmp_seq=1 Redirect Host(New nexthop: 10.21.0.10)
备注:内容来源于stack exchange,提问作者jak kaj
相关产品推荐
相关产品推荐

