vyattaを使ってOSPFを実装してみる
かなり時間が空いてしまったけど前回の続きです。
参考と言うか設定を丸パクリさせて頂いた記事に感謝を。
ameblo.jp
構成図
参考記事そのままです。ルータ4台にスイッチ4台のひし形の構図です。
ルータを用意する。
# docker run -d --name router1 --net=none --privileged -v /lib/modules:/li b/modules kurochan/vyos:1.1.6 /sbin/init # docker run -d --name router2 --net=none --privileged -v /lib/modules:/li b/modules kurochan/vyos:1.1.6 /sbin/init # docker run -d --name router3 --net=none --privileged -v /lib/modules:/li b/modules kurochan/vyos:1.1.6 /sbin/init # docker run -d --name router4 --net=none --privileged -v /lib/modules:/li b/modules kurochan/vyos:1.1.6 /sbin/init
スイッチを用意する
ovs-vsctl add-br switch1 ovs-vsctl add-br switch2 ovs-vsctl add-br switch3 ovs-vsctl add-br switch4
ルータとスイッチを接続する
# ovs-docker add-port switch1 eth0 router1 --ipaddress=10.0.1.1/24 # ovs-docker add-port switch2 eth1 router1 --ipaddress=10.0.2.1/24 # ovs-docker add-port switch1 eth0 router2 --ipaddress=10.0.1.2/24 # ovs-docker add-port switch3 eth1 router2 --ipaddress=10.0.3.1/24 # ovs-docker add-port switch2 eth0 router3 --ipaddress=10.0.2.2/24 # ovs-docker add-port switch4 eth1 router3 --ipaddress=10.0.4.1/24 # ovs-docker add-port switch3 eth0 router4 --ipaddress=10.0.3.2/24 # ovs-docker add-port switch4 eth1 router4 --ipaddress=10.0.4.2/24
ルータ1からルータ2へPing疎通を確認する
# docker exec -it router1 ping -c 2 10.0.1.2 PING 10.0.1.2 (10.0.1.2) 56(84) bytes of data. 64 bytes from 10.0.1.2: icmp_req=1 ttl=64 time=0.394 ms 64 bytes from 10.0.1.2: icmp_req=2 ttl=64 time=0.108 ms --- 10.0.1.2 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1001ms rtt min/avg/max/mdev = 0.108/0.251/0.394/0.143 ms #
問題なく疎通できている。
ルータ1からルータ4へPing疎通を確認する
Ping疎通不可です。これはルータ1がルータ4への経路を持っていないからです。
# docker exec -it router1 ping -c 2 10.0.3.2 connect: Network is unreachable #
OSPFを設定し各ルータのルート情報を伝搬してみる
router1
# docker exec -it router1 /bin/vbash vbash-4.1# su - vyos vyos@vyos:~$ configure [edit] vyos@vyos# set interfaces loopback lo address 1.1.1.1/32 [edit] vyos@vyos# set protocols ospf area 0 network 10.0.0.0/16 [edit] vyos@vyos# set protocols ospf parameters router-id 1.1.1.1 [edit] vyos@vyos# commit [edit] vyos@vyos# save Saving configuration to '/config/config.boot'... Done [edit] vyos@vyos#
残りのルータをも上記同様に設定する。
router2
set interfaces loopback lo address 2.2.2.2/32 set protocols ospf area 0 network 10.0.0.0/16 set protocols ospf parameters router-id 2.2.2.2
router3
set interfaces loopback lo address 3.3.3.3/32 set protocols ospf area 0 network 10.0.0.0/16 set protocols ospf parameters router-id 3.3.3.3
router4
set interfaces loopback lo address 4.4.4.4/32 set protocols ospf area 0 network 10.0.0.0/16 set protocols ospf parameters router-id 4.4.4.4
ルータ1でルーティングテーブルを確認してみる。
飛び地のルータ4の【10.0.3.0/24,10.0.4.0/24】をOSPFで学習している事がわかります。
vyos@vyos:~$ show ip route Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF, I - ISIS, B - BGP, > - selected route, * - FIB route C>* 1.1.1.1/32 is directly connected, lo O 10.0.1.0/24 [110/10] is directly connected, eth0, 00:03:00 C>* 10.0.1.0/24 is directly connected, eth0 O 10.0.2.0/24 [110/10] is directly connected, eth1, 00:03:00 C>* 10.0.2.0/24 is directly connected, eth1 O>* 10.0.3.0/24 [110/20] via 10.0.1.2, eth0, 00:01:55 O>* 10.0.4.0/24 [110/20] via 10.0.2.2, eth1, 00:01:20 C>* 127.0.0.0/8 is directly connected, lo vyos@vyos:~$
ルータ1からルータ4へPing疎通してみよう
無事ルータ4へPing疎通ができました。
# docker exec -it router1 ping -c 2 10.0.3.2 PING 10.0.3.2 (10.0.3.2) 56(84) bytes of data. 64 bytes from 10.0.3.2: icmp_req=1 ttl=63 time=0.269 ms 64 bytes from 10.0.3.2: icmp_req=2 ttl=63 time=0.099 ms --- 10.0.3.2 ping statistics --- 2 packets transmitted, 2 received, 0% packet loss, time 1002ms rtt min/avg/max/mdev = 0.099/0.184/0.269/0.085 ms #
次回VxLANあたりやってみたいですね~