环境信息
两个节点:192.168.25.129、192.168.49.101
配置
节点192.168.25.129上开始配置:
ip netns add net1
ip netns add net2
ip link add ipv1 link eth0 type ipvlan mode l3
ip link add ipv2 link eth0 type ipvlan mode l3
ip link set ipv1 netns net1
ip link set ipv2 netns net2
ip netns exec net1 ip link set ipv1 up
ip netns exec net2 ip link set ipv2 up
ip netns exec net1 ip addr add 100.200.25.100/24 dev ipv1
ip netns exec net2 ip addr add 200.100.25.100/24 dev ipv2
ip netns exec net1 ip route add default dev ipv1
ip netns exec net2 ip route add default dev ipv2
配置完成后,net1可以ping通net2,但无法访问主机。
使用veth-pair的形式打通与主机的通信:
ip link add veth1 type veth peer name veth1-peer
ip link set veth1-peer netns net1
ip netns exec net1 ip link set veth1-peer up
ip link set veth1 up
ip route add 100.200.25.100/32 dev veth1
ip netns exec net1 ip route add 192.168.25.129/32 dev veth1-peer
通过配置定向路由和veth对,实现了主机和net1间的互相通信,但是此时net1无法访问其他主机,通过修改路由和iptable实现:
iptables -t nat -A POSTROUTING -s 100.200.25.100/24 -j MASQUERADE
ip netns exec net1 ip route add 192.168.49.0/24 via 192.168.25.129 dev veth1-peer
配置后,net1可以访问另一台主机192.168.49.101。