当前位置: 首页 > 科技观察

如何使用Quagga将你的CentOS盒子变成OSPF路由器?_1

时间:2023-03-19 20:45:16 科技观察

Quagga是一款开源路由软件套件,可用于将您的Linux设备变成功能齐全的路由器,支持多种主要路由协议,例如RIP、OSPF、BGP或ISIS路由器。它完全支持IPv4和IPv6,还支持路由/前缀过滤。万一您的生产环境中的路由器出现故障,并且您手头没有备用路由器,等待更换路由器到达,Quagga会派上用场。只要配置得当,Quagga甚至可以在生产环境中配置为路由器。在本教程中,我们将连接两个假设的分支机构网络(例如192.168.1.0/24和172.17.1.0/24),并在它们之间使用专用链路。我们的CentOS机器位于这条专用链路的两端。这两个设备的主机名分别设置为“site-A-RTR”和“site-B-RTR”。下面提供了有关IP地址的信息。站点A:192.168.1.0/24站点B:172.16.1.0/24两个Linux机器之间的对等互连:10.10.10.0/30Quagga软件包包含多个串联运行的守护进程。在本教程中,我们将重点关注设置以下守护进程。Zebra:核心守护进程,负责内核接口和静态路由。Ospfd:IPv4OSPF守护进程。在CentOS上安装Quagga我们首先使用yum安装Quagga。#yuminstallquagga在CentOS7上,SELinux默认阻止/usr/sbin/zebra写入其配置目录。此SELinux策略会干扰我们将要描述的安装过程,因此我们要禁用它。为此,请关闭SELinux(不推荐),或启用“zebra_write_config”布尔表达式,如下所示。如果您使用的是CentOS6,则可以跳过此步骤。#setsebool-Pzebra_write_config1如果没有此更改,我们在尝试从Quagga的命令外壳中保存Zebra配置时会看到以下错误。无法打开配置文件/etc/quagga/zebra.conf.OS1Uu5。(无法打开配置文件/etc/quagga/zebra.conf.OS1Uu5。)安装Quagga后,我们配置必要的对等IP地址并更新OSPF设置。Quagga附带一个名为vtysh的命令行shell。vtysh中使用的Quagga命令类似于Cisco或Juniper等主要路由器制造商的命令。第一阶段:配置Zebra我们首先创建一个Zebra配置文件,然后启动Zebradaemon。#cp/usr/share/doc/quagga-XXXXX/zebra.conf.sample/etc/quagga/zebra.conf#servicezebrastart#chkconfigzebraon启动vtysh命令shell:#vtysh首先,我们配置日志文件斑马。为此,请在vtysh中输入全局配置模式:site-A-RTR#配置终端并指定日志文件位置,然后退出该模式:site-A-RTR(config)#logfile/var/log/quagga/quagga.logsite-A-RTR(config)#exit永久保存配置:site-A-RTR#write接下来,我们在必要时识别可用接口,然后配置IP地址。site-A-RTR#showinterfaceInterfaceeth0已启动,线路协议检测已禁用。....Interfaceeth1已启动,线路协议检测已禁用。....配置eth0参数:site-A-RTR#configureterminalsite-A-RTR(config)#interfaceeth0site-A-RTR(config-if)#ipaddress10.10.10.1/30site-A-RTR(config-if)#descriptionto-site-Bsite-A-RTR(config-if)#noshutdown继续配置eth1参数:site-A-RTR(config)#interfaceeth1site-A-RTR(config-if)#ipaddress192.168.1.1/24site-A-RTR(config-if)#descriptionto-site-A-LANsite-A-RTR(config-if)#noshutdown现在验证配置:site-A-RTR(config-if)#doshowinterfaceInterfaceeth0已启动,线路协议检测已禁用。....inet10.10.10.1/30广播10.10.10.3。....Interfaceeth1已启动,线路协议检测已禁用。....inet192.168.1.1/24广播192.168.1.255。....site-A-RTR(config-if)#doshowinterfacedescriptionInterfaceStatusProtocolDescriptioneth0upunknownto-site-Beth1upunknownto-site-A-LAN***性保存配Configuration:site-A-RTR(config-if)#dowriteforsite-Bserver,也重复IP地址配置这一步如果一切顺利,你应该可以从site-A服务器ping到site-B的peerIP10.10.10.2。请注意:启动Zebra守护程序后,使用vtysh的命令行界面所做的任何更改将立即生效。配置更改后无需重新启动Zebra守护程序。阶段2:配置OSPF我们首先创建一个OSPF配置文件,然后启动OSPF守护进程:#cp/usr/share/doc/quagga-XXXXX/ospfd.conf.sample/etc/quagga/ospfd.conf#serviceospfdstart#chkconfigospfdon现在启动vtyshshell并继续进行OSPF配置:#vtysh进入路由器配置模式:site-A-RTR#configureterminalsite-A-RTR(config)#routerospf也可以手动设置router-id:site-A-RTR(config-router)#router-id10.10.10.1添加将参与OSPF的网络:site-A-RTR(config-router)#network10.10.10.0/30area0site-A-RTR(config-router)#network192.168.1.0/24area0永久保存配置:site-A-RTR(config-router)#dowrite对于site-B,重复类似的OSPF配置:site-B-RTR(config-router)#network10.10.10.0/30area0site-B-RTR(config-router)#network172.16.1.0/24area0site-B-RTR(config-router)#dowrite现在应该出现OSPF邻居。只要ospfd正在运行,通过vtyshshell所做的任何与OSPF相关的配置更改都会立即生效,并且无需重新启动ospfd。在下一节中,我们将验证已安装的Quagga环境。验证1.使用ping进行测试首先,您应该能够从站点Aping站点B的LAN。确保您的防火墙没有阻止ping流量。[root@site-A-RTR~]#ping172.16.1.1-c22.检查路由表。内核和Quagga路由表中都应该有必要的路由。[root@site-A-RTR~]#iproute10.10.10.0/30deveth0protokernelscopelinksrc10.10.10.1172.16.1.0/30via10.10.10.2deveth0protozebrametric20192.168.1.0/24deveth1protokernelscopelinksrc192.168.1.1[root@site-A-RTR~]#vtyshsite-A-RTR#showiprouteCodes:K-内核路由,C-已连接,S-静态,R-RIP,O-OSPF,I-ISIS,B-BGP,>-选择路由,*-FIBrouteO10.10.10.0/30[110/10]直连,eth0,00:14:29C>*10.10.10.0/30直连,eth0C>*127.0.0.0/8直连,loO>*172.16.1.0/30[110/20]via10.10.10.2,eth0,00:14:14C>*192.168.1.0/24直连,eth13.验证OSPF邻居和路由器在vtyshshell中,您可以检查是否存在必要的邻居并记住正确的路由。[root@site-A-RTR~]#vtyshsite-A-RTR#showipospfneighbor在本教程中,我们重点介绍了使用Quagga配置基本OSPF。通常,Quagga可以轻松配置常见的Linux机器以支持动态路由协议,如OSPF、RIP或BGP。启用Quagga的设备能够与您网络上可能拥有的任何其他路由器联系并交换路由。由于Quagga支持几种主要的开放标准路由协议,因此它可能是许多场景下的首选。更好的是,Quagga的命令行界面几乎与Cisco或Juniper等主要路由器制造商的命令行界面相同;这样,部署和维护Quagga设备就非常容易了。希望这篇文章对大家有所帮助。英文:http://xmodulo.com/turn-centos-box-into-ospf-router-quagga.html