3. 多点通信nolearning模式逻辑拓扑
3.1 步骤
host1
3.1.1 创建vxlan nolearning模式
ip link add vxlan1 type vxlan id 100 dstport 4789 local 10.33.30.150 nolearning
ip link set dev vxlan1 up
ip add a 192.168.1.254/32 dev vxlan1
3.1.2 创建bridge,并设置IP
brctl addbr br1
ip link set dev br1 up
ip add a 192.168.1.1/24 dev br1
3.1.3 创建namespace,veth pair,分别移入bridge和ns中
ip netns add ns1
ip link add tap1 type veth peer name tap2
ip link set dev tap2 up
ip link set tap1 netns ns1
ip netns exec ns1 ip link set dev tap1 up
ip netns exec ns1 ip addr add 192.168.1.100/24 dev tap1
brctl addif br1 tap2
3.1.4 配置路由
ip netns exec ns1 ip route add default via 192.168.1.1
ip route add 192.168.2.0/24 via 192.168.2.254 dev vxlan1 onlink
ip route add 192.168.3.0/24 via 192.168.3.254 dev vxlan1 onlink
3.1.5 手动添加mac和fdb表项
ip nei add 192.168.2.254 dev vxlan1 lladdr ca:f8:51:26:0d:42
ip nei add 192.168.3.254 dev vxlan1 lladdr a2:09:09:72:3d:94
bridge fdb add ca:f8:51:26:0d:42 dev vxlan1 dst 10.33.30.151 self
bridge fdb add a2:09:09:72:3d:94 dev vxlan1 dst 10.33.30.152 self
3.1.6 开启内核参数
sysctl -w net.ipv4.ip_forward=1
host2
ip link add vxlan2 type vxlan id 100 dstport 4789 local 10.33.30.151 nolearning
ip link set dev vxlan2 up
ip add a 192.168.2.254/32 dev vxlan2
brctl addbr br2
ip link set dev br2 up
ip add a 192.168.2.1/24 dev br2
ip netns add ns2
ip link add tap1 type veth peer name tap2
ip link set dev tap2 up
ip link set tap1 netns ns2
ip netns exec ns2 ip link set dev tap1 up
ip netns exec ns2 ip addr add 192.168.2.100/24 dev tap1
brctl addif br2 tap2
ip netns exec ns2 ip route add default via 192.168.2.1
ip route add 192.168.1.0/24 via 192.168.1.254 dev vxlan2 onlink
ip route add 192.168.3.0/24 via 192.168.3.254 dev vxlan2 onlink
ip nei add 192.168.1.254 dev vxlan2 lladdr 4a:1b:c8:de:3f:86
ip nei add 192.168.3.254 dev vxlan2 lladdr a2:09:09:72:3d:94
bridge fdb add 4a:1b:c8:de:3f:86 dev vxlan2 dst 10.33.30.150 self
bridge fdb add a2:09:09:72:3d:94 dev vxlan2 dst 10.33.30.152 self
sysctl -w net.ipv4.ip_forward=1
host3
ip link add vxlan3 type vxlan id 100 dstport 4789 local 10.33.30.152 nolearning
ip link set dev vxlan3 up
ip add a 192.168.3.254/32 dev vxlan3
brctl addbr br3
ip link set dev br3 up
ip add a 192.168.3.1/24 dev br3
ip netns add ns3
ip link add tap1 type veth peer name tap2
ip link set dev tap2 up
ip link set tap1 netns ns3
ip netns exec ns3 ip link set dev tap1 up
ip netns exec ns3 ip addr add 192.168.3.100/24 dev tap1
brctl addif br3 tap2
ip netns exec ns3 ip route add default via 192.168.3.1
ip route add 192.168.1.0/24 via 192.168.1.254 dev vxlan3 onlink
ip route add 192.168.2.0/24 via 192.168.2.254 dev vxlan3 onlink
sysctl -w net.ipv4.ip_forward=1
fdb表和arp状态截图