如何在Linux上配置Quagga路由套件

时间:2020-03-05 15:31:53  来源:igfitidea点击:

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