NAT模式下开启veth网络不可用
问题背景:
测试Linux namespace的网络空间 虚拟网卡 veth的隔离性.
我的虚拟机是vmvare,网络模式是NAT,虚拟机OS是centos7
主要动作
创建网络空间
创建虚拟网卡
配置IP
启动成对的虚拟网卡和空间内的lo回环网卡
现象
使用NAT模式下,一旦开启veth,则宿主机立刻无法ping通虚拟机
宿主机和虚拟机之间无法连通,ping不通,ssh掉线
解决方案
我的问题在于我把虚拟网卡的网段设置的和vmvare的网段一样了
改成一个单独的网段就解决了
我认为是因为是相同网段路由表优先级导致的问题,但是我没有完全验证出来,后续验证出来单独写个文章补充
脚本
我的宿主机IP 172.16.193.0/24 这个网段
路由表信息
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default bogon 0.0.0.0 UG 100 0 0 ens33
172.16.193.0 0.0.0.0 255.255.255.0 U 100 0 0 ens33
192.168.50.0 0.0.0.0 255.255.255.0 U 0 0 0 veth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
# 测试脚本
ip netns add netns01
ip link add veth0 type veth peer name veth1
ip link set veth1 netns netns01
ip netns exec netns01 ip addr add 192.168.50.2/24 dev veth1
ip netns exec netns01 ip link set veth1 up
ip netns exec netns01 ip link set lo up
ip addr add 192.168.50.3/24 dev veth0
ip link set veth0 up