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
另外,你还需要参阅如下章节完成基本设置,
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章节,
参阅文档
============================
项目地址
———–
https://frrouting.org/
RPM包
———-
https://rpm.frrouting.org/
使用文档
———–
https://frrouting.org/doc/
集成配置模式
————
https://docs.frrouting.org/en/latest/vtysh.html#integrated-configuration-mode
没有评论