FRR编译
环境:centos 7.6.1810
版本:FRR 7.3
编译
下载FRR源代码包
wget https://github.com/FRRouting/frr/archive/frr-7.3.tar.gz
使用yum下载依赖包
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 systemd-devel python-sphinx libcap-devel
安装libyang,版本要求 >= 0.16.105,这里有各个系统的安装包,根据环境下载对应的libyang和libyang-devel。
#下载libyang
wget https://ci1.netdef.org/artifact/LIBYANG-YANGRELEASE/shared/build-10/CentOS-7-x86_64-Packages/libyang-0.16.111-0.x86_64.rpm
#下载libyang-devel
wget https://ci1.netdef.org/artifact/LIBYANG-YANGRELEASE/shared/build-10/CentOS-7-x86_64-Packages/libyang-devel-0.16.111-0.x86_64.rpm
#安装
rpm -ihv libyang-0.16.111-0.x86_64.rpm
rpm -ihv libyang-devel-0.16.111-0.x86_64.rpm
编译FRR源码
tar -zxvf frr-7.3.tar.gz
cd frr-frr-7.3/
sh bootstrap.sh
#安装目录改为/usr/local/frr
#使用root用户运行
./configure --prefix=/usr/local/frr -exec-prefix=/usr/local/frr --enable-watchfrr --enable-user=root --enable-group=root --enable-static --enable-static-bin --enable-systemd
这里的–enable-systemd很关键,使用systemctl启动时,frr.service使用了WatchdogSec,这个配置项如果没有在规定时间内调用sd_notify(3) ,就会重启FRR服务,而–enable-systemd就是用于定时调用sd_notify(3),避免FRR服务一直被重启。
配置完成
编译安装
make;make install
#创建日志目录
mkdir /usr/local/frr/var/log/ -p
安装Service和daemon配置文件
install -p -m 644 tools/frr.service /usr/lib/systemd/system/frr.service
#frr.service使用/usr/lib/frr/frrinit.sh脚本,我们需要改为/usr/local/frr/sbin目录下
sed "s#/usr/lib/frr#/usr/local/frr/sbin#g" -i /usr/lib/systemd/system/frr.service
install -p -m 644 tools/etc/frr/daemons /usr/local/frr/etc/daemons
使能ip转发