如何安装部署路由软件 FRRouting?

Zebra

1 基础知识

1.1 软件简介

– FRRouting(FRR)是一个适用于Linux和Unix平台的免费开源Internet路由协议套件
– FRRouting支持BGP、OSPF、RIP、IS-IS、PIM、LDP、BFD、Babel、PBR、OpenFabric和VRRP协议
– FRRouting同时支持EIGRP和NHRP的alpha协议

1.2 软件特点

– FRRouting与本机Linux/Unix IP网络堆栈的无缝集成使其成为通用路由堆栈
– FRRouting用例包括主机、虚拟机、容器连接到网络、广告网络服务、LAN 交换和路由、互联网访问路由器、和互联网对等互连
– FRRouting源于Quagga项目,它是由许多长期的Quagga开发人员共同发起开发
– FRRouting可用于ISP、SaaS基础设施、Web 2.0 业务、超大规模服务和财富 500 强私有云

2 最佳实践

2.1 环境信息

HostName = frr.cmdschool.org
OS = Oracle Linux 9.x x86_64
IP Addr = any
DNS = any
另外,你还需要参阅如下章节完成基本设置,

如何完成CentOS 7.x的基本服务?

2.2 安装配置

2.2.1 安装软件包

dnf install -y frr

2.2.2 启动服务

systemctl start frr.service
systemctl enable frr.service
systemctl status frr.service

然后,你可以使用如下命令查看服务启动的进程,

pgrep -u frr -a

可见如下显示,

9028 /usr/libexec/frr/zebra -d -F traditional -A 127.0.0.1 -s 90000000
9033 /usr/libexec/frr/staticd -d -F traditional -A 127.0.0.1

2.2.3 启用协议守护进程

cp /etc/frr/daemons /etc/frr/daemons.default
vim /etc/frr/daemons

修改如下配置,

ospfd=yes
zebra_options="  -A 0.0.0.0 -s 90000000"
ospfd_options="  -A 0.0.0.0"
staticd_options="-A 0.0.0.0"
frr_profile="traditional"
#frr_profile="datacenter"

以上配置需要根据实际情况选择,
– 如果你希望使用传统Telnet的方式管理,变量“frr_profile”的值需要设置为“traditional”
– 如果你希望使用登录Linux系统后执行“vtysh”命令管理,变量“frr_profile”的值需要设置为“datacenter”
– 参数“traditional”与“datacenter”分别代表传统模式与集中管理模式
– 传统模式下,配置文件分别保存到非“/etc/frr/frr.conf”以外的其他“*.conf”文件
– 集中管理模式下,配置文件集中保存到“/etc/frr/frr.conf”文件
– 传统模式下,你需要删除“/etc/frr/frr.conf”文件
– 集中管理模式下,你需要删除非“/etc/frr/frr.conf”以外的所有“*.conf”文件
基于对模式的选择,我们需要执行以下命令确保配置正确,

mv /etc/frr/frr.conf /etc/frr/frr.conf.save

配置修改后,你需要使用如下命令重启服务使配置生效,

systemctl restart frr.service

然后,你可以使用如下命令查看服务启动的进程,

pgrep -u frr -a

可见如下显示,

9316 /usr/libexec/frr/zebra -d -F traditional -A 0.0.0.0 -s 90000000
9321 /usr/libexec/frr/ospfd -d -F traditional -A 0.0.0.0
9324 /usr/libexec/frr/staticd -d -F traditional -A 0.0.0.0

然后,可使用如下命令查看端口,

netstat -anp | egrep "zebra|ospfd|staticd"

可见如下显示,

tcp        0      0 0.0.0.0:2601            0.0.0.0:*               LISTEN      9316/zebra          
tcp        0      0 0.0.0.0:2604            0.0.0.0:*               LISTEN      9321/ospfd          
tcp        0      0 0.0.0.0:2616            0.0.0.0:*               LISTEN      9324/staticd        
raw6       0      0 :::58                   :::*                    7           9316/zebra          
unix  2      [ ACC ]     STREAM     LISTENING     300187   9316/zebra           /var/run/frr/zserv.api
unix  2      [ ACC ]     STREAM     LISTENING     300189   9316/zebra           /var/run/frr/zebra.vty
unix  2      [ ACC ]     STREAM     LISTENING     300194   9321/ospfd           /var/run/frr/ospfd.vty
unix  2      [ ACC ]     STREAM     LISTENING     300201   9324/staticd         /var/run/frr/staticd.vty
unix  3      [ ]         STREAM     CONNECTED     300203   9316/zebra           /var/run/frr/zserv.api
unix  3      [ ]         STREAM     CONNECTED     300195   9321/ospfd           
unix  2      [ ]         DGRAM      CONNECTED     299865   9321/ospfd           
unix  3      [ ]         STREAM     CONNECTED     300218   9324/staticd         /var/run/frr/staticd.vty
unix  3      [ ]         STREAM     CONNECTED     300209   9316/zebra           /var/run/frr/zebra.vty
unix  3      [ ]         STREAM     CONNECTED     300202   9324/staticd         
unix  3      [ ]         STREAM     CONNECTED     300217   9321/ospfd           /var/run/frr/ospfd.vty
unix  2      [ ]         DGRAM      CONNECTED     299881   9324/staticd         
unix  2      [ ]         DGRAM      CONNECTED     299842   9316/zebra           
unix  3      [ ]         STREAM     CONNECTED     300196   9316/zebra           /var/run/frr/zserv.api

2.3 停止系统默认的管理服务

2.3.1 停止NetworManager服务

systemctl stop NetworkManager.service
systemctl disable NetworkManager.service

注:停止系统默认的“NetworkManager”服务,网络的管理功能由Frrouting接管。

2.3.2 停止Firewall服务

systemctl stop firewalld.service 
systemctl disable firewalld.service 

注:停止系统默认的“Firewalld”服务,防火墙管理功能由Frrouting接管。
注:由于服务禁用后,network服务被配置为不能手动重启,因此你需要手动重启系统使配置生效。

2.4 完成主机基本网络配置

2.4.1 查看路由接口

vtysh
route.cmdschool.org# 

进入路由配置Shll后,使用如下命令查看当前主机的网络接口,

route.cmdschool.org# show interface

假设显示如下,

Interface ens192 is up, line protocol is up
[…]

2.4.2 配置接口地址

frr.cmdschool.org# configure terminal
frr.cmdschool.org(config)# interface ens192
frr.cmdschool.org(config-if)# ip address 10.168.0.19/24
frr.cmdschool.org(config-if)# no ipv6 nd suppress-ra
frr.cmdschool.org(config-if)# quit
frr.cmdschool.org(config)# exit
frr.cmdschool.org# write
frr.cmdschool.org# exit

2.4.3 配置主机默认路由

frr.cmdschool.org# configure terminal
frr.cmdschool.org(config)# ip route 0.0.0.0/0 10.168.0.1
frr.cmdschool.org(config)# no ipv6 nd suppress-ra
frr.cmdschool.org(config)# exit
frr.cmdschool.org# write
frr.cmdschool.org# exit

2.4.4 重启系统

reboot

2.5 完成密码配置

2.5.1 查看路由接口

vtysh
route.cmdschool.org# 
route.cmdschool.org# configure terminal
route.cmdschool.org(config)#
route.cmdschool.org(config)# password zebra
route.cmdschool.org(config)# enable password zebra
route.cmdschool.org(config)# service password-encryption

2.5.4 测试路由登录

telnet 10.168.0.19 2601 # zebra
telnet 10.168.0.19 2604 # ospfd 
telnet 10.168.0.19 2616 # staticd

2.6 其他基本配置(可选)

如果你不熟悉路由的基本配置,请参阅以下链接的2.3章节,

如何实现基于Linux的路由之Quagga?

参阅文档
============================
项目地址
———–
https://frrouting.org/

RPM包
———-
https://rpm.frrouting.org/

使用文档
———–
https://frrouting.org/doc/

集成配置模式
————
https://docs.frrouting.org/en/latest/vtysh.html#integrated-configuration-mode

问题处理
———–
https://github.com/FRRouting/frr/issues/11755

没有评论

发表回复

Zebra
如何使OSPF的任播节点离线?

1 前言 一个问题,一篇文章,一出故事。 笔者最近需要维护基于任播技术的服务器节点,该服务器使用OS …

Zebra
如何解决Quagga受Docker虚拟接口影响?

1 前言 一个问题,一篇文章,一出故事。 笔者生产环境Docker集群有用到Quagga做OSPF路 …

Zebra
如何编译安装Quagga?

1. 理论部分 1.1 软件简介 Quagga中文翻译斑驴,是一种先进的路由软件包,提供一套基于TC …