docker实现OSPF测试通信(以下内容复制自网络并根据实际情况修改)
docker-compose.yml
1 | version: '2.0' |
执行docker-compose up -d于存放该yaml的文件夹。
我们的设备位于这条专用链路的两端。下面提供了IP地址的信息信息。
Site-A:192.168.1.0/24
Site-B:172.16.1.0/24
两个Linux设备之间的对等:10.10.10.0/30
Quagga软件包含有几个协同运行的后台程序。我们在本教程中将着重介绍设置下列后台程序。
Zebra:核心后台程序,负责内核接口和静态路由。
Ospfd:IPv4 OSPF后台程序。
第一个阶段:配置Zebra
我们首先创建一个Zebra配置文件,然后启动Zebra后台程序。要是已经启动了就不用了。
这里的路径可能不一样,要自己找。
1 | cp /usr/share/doc/quagga/examples/zebra.conf.sample /etc/quagga/zebra.conf |
在配置路由前,如果你是用docker启动的,先ip route show看一下,要是有什么default via 什么什么之类的,第一步先删了它!不然你的流量就会通过这个跑到物理机上头然后nat跑出去,简直白给。
启动vtysh命令外壳:
1 | vtysh |
首先,我们为Zebra配置日志文件。为此,输入下列内容,进入vtysh中的全局配置模式:
1 | site-A-RTR# configure terminal |
并指定日志文件位置,然后退出该模式:
1 | site-A-RTR(config)# log file /var/log/quagga/quagga.log |
永久性保存配置:
1 | site-A-RTR# write |
下一步,我们在必要时确定可用接口,然后配置IP地址。
1 | site-A-RTR# show interface |
1 | Interface eth0 is up, line protocol detection is disabled |
这里哪个eth配那个也不一定,要根据互相ping出来的确定是哪一个
配置eth0参数:
1 | site-A-RTR# configure terminal |
继续配置eth1参数:
1 | site-A-RTR(config)# interface eth1 |
现在验证配置:
1 | site-A-RTR(config-if)# do show interface |
1 | Interface eth0 is up, line protocol detection is disabled |
1 | site-A-RTR(config-if)# do show interface description |
1 | Interface Status Protocol Description |
永久性保存配置:
1 | site-A-RTR(config-if)# do write |
针对site-B服务器,也重复IP地址配置这个步骤。
要是一切顺利,你应该能够从site-A服务器来ping检测site-B的对等IP 10.10.10.2。
请注意:一旦Zebra后台程序已启动,用vtysh的命令行接口进行的任何更改会立即生效。不需要在配置变更后重启Zebra后台程序。
第2个阶段:配置OSPF
我们先创建一个OSPF配置文件,然后启动OSPF后台程序:
1 | cp /usr/share/doc/quagga/examples/ospfd.conf.sample /etc/quagga/ospfd.conf |
现在启动vtysh外壳,继续进行OSPF配置:
1 | vtysh |
进入路由器配置模式:
1 | site-A-RTR# configure terminal |
手动设置router-id:
1 | site-A-RTR(config-router)# router-id 10.10.10.1 |
添加将参与OSPF的网络:
注意这里的网段,如果不是8/16/24,就要手动考虑一下是不是要更改倒数第二位/第三位之类的了
1 | site-A-RTR(config-router)# network 10.10.10.0/30 area 0 |
永久性保存配置:
1 | site-A-RTR(config-router)# do write |
针对site-B,也重复类似的OSPF配置:
1 | site-B-RTR(config-router)# network 10.10.10.0/30 area 0 |
OSPF邻居现在应该会出现。只要ospfd在运行,通过vtysh外壳所作的任何与OSPF有关的配置变更都会立即生效,没必要重启ospfd。
在下一个部分,我们将验证已安装的Quagga环境。
验证
- 用ping来测试
首先,你应该能够从site-A来ping检测site-B的局域网了网。确保你的防火墙没有阻止ping检测流量。
1 | [root@site-A-RTR ~]# ping 172.16.1.1 -c 2 |
- 检查路由表
内核和Quagga路由表里面应该都有必要的路由。
1 | [root@site-A-RTR ~]# ip route |
1 | [root@site-A-RTR ~]# vtysh |
3.验证OSPF邻居和路由器
在vtysh外壳里面,你可以检查必要的邻居有没有出现,是否记住合适的路由。
1 | [root@site-A-RTR ~]# vtysh |