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 替代了。

具体配置方法如下:

  1. 编辑 /etc/frr/staticd.conf,格式为 ip route NETWORK GATEWAY table TABLENO nexthop-vrf VRFNAME DISTANCE vrf VRFNAME
  2. 编辑 /etc/frr/daemons,设置staticd=yes
  3. 重启 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

You may also like...

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

%d 博主赞过: