CentOS 8 使用FRR配置静态路由(替代Quagga)
从 CentOS 8 开始,系统中不再有 Quagga 的安装包,取而代之的是 FRRouting (FRR);于此同时,zebra也不再具备配置静态路由的功能,由staticd取代。本文会简要介绍如何安装并启用FRR,并配置静态路由。
Quagga 哪去了?
当我们用 dnf install quagga
时,会被提示找不到这个包。
而在搜索引擎中搜索 centos 和 quagga 时,得到的内容基本上都是自己下载源码并进行编译安装,这在通常情况下其实是非常不推荐的一种方式。
我们熟悉的 Quagga 哪里去了呢?RedHat在发行文档中提到,它被 FRR 所替代了。
FRR 是什么?
FRR 是下面这些工具的集合,并提供了统一的 systemd 管理入口。这看起来比 Quagga 还多了一些组件。
- zebra
- bgpd
- isisd
- ospfd
- ospf6d
- pimd
- ripd
- ripngd
- eigrpd
- nhrpd
- bfdd
- pbrd
- staticd
- fabricd
更为详细的介绍,可以参考 FRR 官网文档。
安装&配置 FRR
既然知道了Quagga已经被 FRR 所替代,那么安装就非常简单了。
# CentOS 7
yum install -y frr
# CentOS 8
dnf install -y frr
安装之后,如果尝试启动 FRR,会提示失败,因为默认情况下 FRR 没有启动任何的组件,但 zebra 又是必须的。
启用 daemon
编辑 /etc/frr/daemons
,设置zebra=yes
。
现在可以启动 FRR 了。
systemctl enable --now frr
启动之后,会发现自动创建了一个文件 /etc/frr/zebra.conf
,这就是 Zebra 的配置。
实时修改Zebra
在/etc/frr/zebra.conf
中配置 password 和 enable password 后,可以进入 vtysh 进行配置以便实时生效。
hostname thisismyhst
password mypass
enable password mypass
修改后,记得先重启下 FRR
systemctl restart frr
具体实时编辑的方法为:
telnet 0 zebra # 进入 vtysh,需要输入 password 对应的值
enable # 进入提权模式,需要输入 enable password 对应的值
configure terminal # 进入配置模式
xxxx # 各种配置,可以使用 ? 查看提示,所有命令实时生效
exit # 退出配置模式
copy r s # 保存到配置文件,以便重启 FRR 时,刚刚的配置依然有效
配置静态路由
原来在Quagga中, 想要配置静态路由,仅需要在 Zebra 配置文件中填写路由或在 vtysh 中直接配置即可,但是,现在不行了,报错如下:
dh-ali2(config)# ip route 192.0.2.0/24 203.0.113.255
% [ZEBRA] Unknown command: ip route 192.0.2.0/24 203.0.113.255
Staticd
经查阅相关资料,Zebra的静态路由功能,被单独的组件 staticd 替代了。
具体配置方法如下:
- 编辑
/etc/frr/staticd.conf
,格式为ip route NETWORK GATEWAY table TABLENO nexthop-vrf VRFNAME DISTANCE vrf VRFNAME
- 编辑
/etc/frr/daemons
,设置staticd=yes
。 - 重启 FRR,
systemctl restart frr
。
至此,就完成了静态路由的配置,当下一跳可达时,我们可以通过命令获取到路由。
ip route
default via 172.26.207.253 dev eth0 proto dhcp metric 100
192.0.2.0/24 via 203.0.113.255 dev tun0 proto 196 metric 20