如何在Linux上配置Quagga路由套件
Quagga是核心开源项目之一,用于在Linux平台上提供路由服务。
它由不同动态协议的不同组件组成,例如打开最短路径第一(OSPF),路由信息协议(RIP),边框网关协议(BGP),中间系统到中间系统(IS-IS)和多协议标签交换(MPLS)组成。
部分地提供相同的虚拟终端或者CLI(VTY/VTYSH),如Cisco/Juniper,用于配置协议。
在本文中,我们将在Ubuntu平台上安装Quagga路由套件。
我们的VM的详细信息如下所示。
安装
但是,Quagga可以从源代码安装,但在本文中,我们将安装Deb /二进制包。
运行以下命令以检查Qugaaga包的依赖项。
#apt-cache depends quagga
上述命令的输出如下所示。
运行以下命令以安装Qugaaga路由软件。
#apt-get install quagga
Quagga包装安装如下图所示。
配置
基于Linux的设备的默认配置不支持数据包转发,直到启用少量内核参数。
使用以下命令启用IPv4的数据包转发,该命令如图所示。
设置将永久保存在/etc/sysctl.conf文件中。
$echo "net.ipv4.conf.all.forwarding=1" | sudo tee -a /etc/sysctl.conf $echo "net.ipv4.conf.default.forwarding=1" | sudo tee -a /etc/sysctl.conf $sudo sysctl -p
启用数据包后,现在我们将在Linux上配置Quagga路由软件。
以下配置需要在Ubuntu上运行Quagga守护程序。
babeld.conf bgpd.conf bgpd.conf isisd.conf ospf6d.conf ospfd.conf ripd.conf ripngd.conf vtysh.conf zebra.conf
用户可以创建这些配置文件或者将这些示例文件从/usr/share/doc/quagga/examples/path复制到/etc/quagga/*.conf路径。
在下图中显示了复制/etc/quagga/path下的示例文件。
在复制/etc/quagga目录中重命名示例文件。
test@test-machine:/etc/quagga$sudo mv babeld.conf.sample babeld.conf test@test-machine:/etc/quagga$sudo mv isisd.conf.sample isisd.conf test@test-machine:/etc/quagga$sudo mv ospfd.conf.sample ospfd.conf test@test-machine:/etc/quagga$sudo mv ripngd.conf.sample ripngd.conf test@test-machine:/etc/quagga$sudo mv zebra.conf.sample zebra.conf test@test-machine:/etc/quagga$sudo mv bgpd.conf.sample bgpd.conf test@test-machine:/etc/quagga$sudo mv ospf6d.conf.sample ospf6d.conf test@test-machine:/etc/quagga$sudo mv ripd.conf.sample ripd.conf test@test-machine:/etc/quagga$sudo mv vtysh.conf.sample vtysh.conf
因此,Quagga守护程序在用户Quagga下运行,因此更改配置文件的所有权和权限。
在包安装期间在Ubuntu中创建了用户Quagga。
在/etc/quagga文件夹下运行以下命令以更改所有者发货和权限。
$sudo chown quagga:quagga *
已在文件上设置"640"权限。
最后,我们必须启用或者禁用Quagga的不同守护进程。
ZEBRA守护程序是路由套件的核心部分,因此必须在/etc/quagga/daemons文件中启用它。
在本文中,仅在文件中启用了OSPF和RIP动态协议守护进程。
守护程序文件的默认配置在以下快照中显示。
默认配置文件中禁用所有路由守护程序。
具有OSPF和RIP的配置文件如下所示。
Quagga Suite的不同守护程序将在TCP协议上运行,聆听端口将是2600-2800。
test@test-machine:/etc/quagga$cat /etc/services | grep zebra zebrasrv 2600/tcp # zebra service zebra 2601/tcp # zebra vty ripd 2602/tcp # ripd vty (zebra) ripngd 2603/tcp # ripngd vty (zebra) ospfd 2604/tcp # ospfd vty (zebra) bgpd 2605/tcp # bgpd vty (zebra) ospf6d 2606/tcp # ospf6d vty (zebra) isisd 2608/tcp # ISISd vty (zebra)
使用以下命令启动Quagga路由套件。
$sudo /etc/init.d/quagga restart
使用netstat命令,我们可以确认成功运行的守护进程。
$sudo netstat -antp | grep 260
可以使用以下方式配置Quagga路由。
vtysh telnet (telnet 127.0.0.1 ospfd/ripd/bgpd/zebra)
Vtysh为所有守护进程提供了单一的位置。
在终端中键入以下命令以启动虚拟shell(vtysh)进行Quagga配置
$sudo vtysh
可以使用VTYSH配置ZEBRA,OSPFD和RIPD。
使用Telnet命令的守护进程配置如下图所示。
斑马守护进程
$telnet localhost zebra
OSPFD守护进程
$telnet localhost ospfd
RIPD守护进程
$telnet localhost ripd