在CentOS 7上从源码构建FRRouting(FRR)的完整指南
frr The FRRouting Protocol Suite 项目地址: https://gitcode.com/gh_mirrors/fr/frr
前言
FRRouting(FRR)是一个功能强大的开源路由软件套件,提供了BGP、OSPF、IS-IS等多种路由协议支持。本文将详细介绍在CentOS 7系统上从源码构建FRR的完整过程,帮助网络工程师和开发者在企业环境中部署这一专业路由解决方案。
CentOS 7环境准备
在开始构建前,需要了解CentOS 7的一些限制:
- MPLS功能限制:默认内核不支持MPLS功能,需要Linux内核4.5或更高版本
- 依赖库版本:某些功能可能需要较新版本的依赖库
安装构建依赖
执行以下命令安装必要的开发工具和库:
sudo yum install git autoconf automake libtool make \
readline-devel texinfo net-snmp-devel groff pkgconfig \
json-c-devel pam-devel bison flex pytest c-ares-devel \
python-devel python-sphinx libcap-devel \
elfutils-libelf-devel libunwind-devel protobuf-c-devel
重要说明:
- 某些依赖库如libunwind可能需要特别注意版本兼容性
- 如果计划使用YANG模型功能,还需要额外安装libyang库
创建FRR系统用户和组
为安全考虑,FRR需要专用系统用户运行:
sudo groupadd -g 92 frr
sudo groupadd -r -g 85 frrvty
sudo useradd -u 92 -g 92 -M -r -G frrvty -s /sbin/nologin \
-c "FRR FRRouting suite" -d /var/run/frr frr
获取源码并构建
- 获取FRR源码
- 运行bootstrap准备构建环境
- 配置构建选项
- 编译和安装
git clone <FRR源码仓库地址> frr
cd frr
./bootstrap.sh
./configure \
--bindir=/usr/bin \
--sbindir=/usr/lib/frr \
--libdir=/usr/lib/frr \
--libexecdir=/usr/lib/frr \
--with-moduledir=/usr/lib/frr/modules \
--enable-snmp \
--enable-multipath=64 \
--enable-user=frr \
--enable-group=frr \
--enable-vty-group=frrvty \
--disable-ldpd \
--enable-fpm \
--with-pkg-git-version \
--with-pkg-extra-version=-MyOwnFRRVersion \
SPHINXBUILD=/usr/bin/sphinx-build
make
make check
sudo make install
配置选项说明:
--enable-snmp
:启用SNMP支持--enable-multipath=64
:支持最多64条等价路径--disable-ldpd
:禁用LDP协议(因MPLS限制)--enable-fpm
:启用转发平面管理器功能
配置FRR环境
创建配置文件结构
sudo mkdir /var/log/frr
sudo mkdir /etc/frr
sudo touch /etc/frr/{zebra,bgpd,ospfd,ospf6d,ripd,ripngd,pimd,nhrpd,eigrpd,babeld}.conf
sudo chown -R frr:frr /etc/frr/
sudo touch /etc/frr/vtysh.conf
sudo chown frr:frrvty /etc/frr/vtysh.conf
sudo chmod 640 /etc/frr/*.conf
安装守护进程配置
sudo install -p -m 644 tools/etc/frr/daemons /etc/frr/
sudo chown frr:frr /etc/frr/daemons
配置说明: 编辑/etc/frr/daemons
文件,启用需要的路由协议守护进程,将对应值改为yes
系统网络配置
启用IP转发
创建/etc/sysctl.d/90-routing-sysctl.conf
文件:
# Sysctl for routing
#
# Routing: We need to forward packets
net.ipv4.conf.all.forwarding=1
net.ipv6.conf.all.forwarding=1
应用配置:
sudo sysctl -p /etc/sysctl.d/90-routing-sysctl.conf
系统服务集成
安装systemd服务文件
sudo install -p -m 644 tools/frr.service /usr/lib/systemd/system/frr.service
sudo systemctl preset frr.service
sudo systemctl enable frr
启动FRR服务
sudo systemctl start frr
验证安装
- 检查服务状态:
systemctl status frr
- 使用vtysh连接FRR控制台验证功能
- 检查各守护进程是否正常运行
后续配置建议
- 根据网络需求配置各路由协议
- 设置日志轮转策略
- 配置SNMP监控
- 考虑设置备份和恢复策略
通过以上步骤,您已在CentOS 7系统上成功构建并部署了FRRouting套件,可以开始配置各种路由协议来满足您的网络需求。
frr The FRRouting Protocol Suite 项目地址: https://gitcode.com/gh_mirrors/fr/frr
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考