zdq0394.github.com

Tech study and research.

Follow me on GitHub

Bridge之间通过路由联通

实践

以下按照下图构建网络

创建两个namespace

ip netns add net100
ip netns add net200

配置网络br100

创建一个网桥br100,并创建一对vethpair veth101和veth102,然后将veth101加入网桥,然后将veth102加入net100。

ip link add dev br100 type bridge
ip link add dev veth101 type veth peer name veth102
ip link set veth101 master br100
ip link set veth102 netns net100

为veth102配置ip地址,并设置默路由

ip netns exec net100 ip addr add 192.168.100.2/24 dev veth102
ip netns exec net100 ip route add default via 192.168.100.1 dev veth102

启用三个设备

ip link set br100 up
ip link set veth101 up
ip netns exec net100 ip link set veth102 up

配置网络br200

ip link add dev br200 type bridge
ip link add dev veth201 type veth peer name veth202
ip link set veth201 master br200
ip link set veth202 netns net200

ip netns exec net200 ip addr add 192.168.200.2/24 dev veth202
ip netns exec net200 ip route add default via 192.168.200.1 dev veth202

ip link set br200 up
ip link set veth201 up
ip netns exec net200 ip link set veth202 up

配置网关及路由

增加网关ns

ip netns add routerns

在routerns中配置br100的网关

ip link add dev r101 type veth peer name r102
ip link set r101 master br100
ip link set r102 netns routerns
ip netns exec routerns ip addr add 192.168.100.1/24 dev r102

在routerns中配置br200的网关

ip link add dev r201 type  veth peer name r202
ip link set r201 master br200
ip link set r202 netns routerns
ip netns exec routerns ip addr add 192.168.200.1/24 dev r202

配置路由

ip netns exec routerns ip route add 192.168.200.0/24 via 192.168.200.1 dev r202
ip netns exec routerns ip route add 192.168.100.0/24 via 192.168.100.1 dev r102

启用设备

ip link set r101 up
ip netns exec routerns ip link set r102 up
ip link set r201 up
ip netns exec routerns ip link set r202 up

测试联通性

ip netns exec net100 ping 192.168.200.2
PING 192.168.200.2 (192.168.200.2) 56(84) bytes of data.
64 bytes from 192.168.200.2: icmp_seq=1 ttl=63 time=0.109 ms
64 bytes from 192.168.200.2: icmp_seq=2 ttl=63 time=0.156 ms
ip netns exec net200 ping 192.168.100.2
PING 192.168.100.2 (192.168.100.2) 56(84) bytes of data.
64 bytes from 192.168.100.2: icmp_seq=1 ttl=63 time=0.100 ms
64 bytes from 192.168.100.2: icmp_seq=2 ttl=63 time=0.166 ms