1、實現拓撲如下:
2、連接基本拓撲(其中主機是常規的ubuntu、交換機使用的是ovs、路由器是自己封裝的quagga)
使用以下語句,連接基本的拓撲結構
sudo ovs-vsctl add-br s1 #生成交換機s1
sudo docker run -itd --network=none --name=h1 --privileged=true tzk/ubuntu
sudo docker run -itd --network=none --name=h2 --privileged=true tzk/ubuntu
sudo docker run -itd --network=none --name=server --privileged=true tzk/ubuntu
sudo docker run -itd --network=none --name=Rt170 --privileged=true tzk/quagga
sudo docker run -itd --network=none --name=Rt171 --privileged=true tzk/quagga
#交換機連接h1、h2和Rt170
sudo ovs-docker add-port s1 eth1 h1 --ipaddress=192.168.100.10/24 --gateway=192.168.100.170
sudo ovs-docker add-port s1 eth1 h2 --ipaddress=192.168.100.11/24 --gateway=192.168.100.170
sudo ovs-docker add-port s1 eth1 Rt170 --ipaddress=192.168.100.170/24
#Rt170、Rt171、server相連
sudo mkdir /var/run/netns
PID1=$(sudo docker inspect -f '{{.State.Pid}}' Rt170)
PID2=$(sudo docker inspect -f '{{.State.Pid}}' Rt171)
PID3=$(sudo docker inspect -f '{{.State.Pid}}' server)
sudo ln -s /proc/$PID1/ns/net /var/run/netns/$PID1
sudo ln -s /proc/$PID2/ns/net /var/run/netns/$PID2
sudo ln -s /proc/$PID3/ns/net /var/run/netns/$PID3
sudo ip link add v1 type veth peer name v2
sudo ip link set v1 netns $PID1
sudo ip link set v2 netns $PID2
sudo ip netns exec $PID1 ip link set v1 up
sudo ip netns exec $PID1 ip addr add 192.168.50.170/24 dev v1
sudo ip netns exec $PID2 ip link set v2 up
sudo ip netns exec $PID2 ip addr add 192.168.50.171/24 dev v2
sudo ip link add v3 type veth peer name v4
sudo ip link set v3 netns $PID2
sudo ip link set v4 netns $PID3
sudo ip netns exec $PID2 ip link set v3 up
sudo ip netns exec $PID2 ip addr add 192.168.200.171/24 dev v3
sudo ip netns exec $PID3 ip link set v4 up
sudo ip netns exec $PID3 ip addr add 192.168.200.20/24 dev v4
#給服務器server設置默認網關爲Rt171
sudo ip netns exec $PID3 ip route add default via 192.168.200.171
3、實現路由器功能。以上2步驟的實現,可以在同網段相互ping通,但是Rt170與Rt171並沒有實現其該有的路由功能。
我們結下來實現其路由功能(以Rt171爲例)
3.1、進入Rt171路由器中開大zebra與ospfd
3.2、配置路由器的ospf協議
3.3、查看鄰居信息 show ip ospf neighbor
以上的操作是針對Rt171的,Rt170相同,主要是在3.2步驟不同,下圖是針對Rt170的3.2的ospf協議配置
Rt170的配置完成neighbor信息如下
4、查看Rt170與Rt171配置效果 show ip route
4.1、Rt170的
4.2、Rt171的
5、測試
5.1、h1 ping server
5.2、server ping h1