RPKI路由实验:(四)Frr的安装及简单配置
程序员文章站
2022-03-10 16:09:34
...
0x00 环境
软件:vmware workstation pro 15, ubuntu 18.04.4 LTS,rtrlib
0x01 安装依赖
$ sudo apt update
$ sudo apt-get install \
git autoconf automake libtool make libreadline-dev texinfo \
pkg-config libpam0g-dev libjson-c-dev bison flex python3-pytest \
libc-ares-dev python3-dev libsystemd-dev python-ipaddress python3-sphinx \
install-info build-essential libsystemd-dev libsnmp-dev perl libcap-dev
$ sudo apt install cmake libpcre3-dev
$ git clone https://github.com/CESNET/libyang.git
$ cd libyang
$ mkdir build
$ cd build
$ cmake -DENABLE_LYD_PRIV=ON -DCMAKE_INSTALL_PREFIX:PATH=/usr \
-D CMAKE_BUILD_TYPE:String="Release" ..
$ make
$ sudo make install
$ sudo apt-get install protobuf-c-compiler libprotobuf-c-dev
$ sudo apt-get install libzmq5 libzmq3-dev
0x02 安装frr
1、添加frr用户和组
$ sudo groupadd -r -g 92 frr
$ sudo groupadd -r -g 85 frrvty
$ sudo adduser --system --ingroup frr --home /var/run/frr/ \
--gecos "FRR suite" --shell /sbin/nologin frr
$ sudo usermod -a -G frrvty frr
2、编译
$ git clone https://github.com/frrouting/frr.git frr
$ cd frr
$ ./bootstrap.sh
$ ./configure \
--prefix=/usr \
--includedir=\${prefix}/include \
--enable-exampledir=\${prefix}/share/doc/frr/examples \
--bindir=\${prefix}/bin \
--sbindir=\${prefix}/lib/frr \
--libdir=\${prefix}/lib/frr \
--libexecdir=\${prefix}/lib/frr \
--localstatedir=/var/run/frr \
--sysconfdir=/etc/frr \
--with-moduledir=\${prefix}/lib/frr/modules \
--with-libyang-pluginsdir=\${prefix}/lib/frr/libyang_plugins \
--enable-configfile-mask=0640 \
--enable-logfile-mask=0640 \
--enable-snmp=agentx \
--enable-multipath=64 \
--enable-user=frr \
--enable-group=frr \
--enable-vty-group=frrvty \
--with-pkg-git-version \
--with-pkg-extra-version=-MyOwnFRRVersion \
--enable-systemd=yes
--enable-doc-html --enable-rpki --enable-ripd --enable-ripngd --enable-ldpd --enable-bgpdd --enable-eigrpd --enable-gcc-rdynamic --enable-watchfrr --enable-datacenter --enable-vtysh --enable-backtrace --enable-ospfapi --enable-ospfclient --enable-isisd --enable-snmp --enable-multipath=6 --enable-shell-access --disable-sysrepo --enable-fpm
$ make
$ sudo make install
(保持当前所在目录不变更)
3、安装frr配置文件
$ sudo install -m 775 -o frr -g frr -d /var/log/frr
$ sudo install -m 775 -o frr -g frrvty -d /etc/frr
$ sudo install -m 640 -o frr -g frrvty tools/etc/frr/vtysh.conf /etc/frr/vtysh.conf
$ sudo install -m 640 -o frr -g frr tools/etc/frr/frr.conf /etc/frr/frr.conf
$ sudo install -m 640 -o frr -g frr tools/etc/frr/daemons.conf /etc/frr/daemons.conf
$ sudo install -m 640 -o frr -g frr tools/etc/frr/daemons /etc/frr/daemons
4、调整sysctls
编辑/etc/sysctl.conf:
net.ipv4.ip_forward=1
net.ipv6.conf.all.forwarding=1
运行sysctl -p更新
5、添加MPLS内核模块
编辑/etc/modules-load.d/modules.conf:
# Load MPLS Kernel Modules
mpls_router
mpls_iptunnel
保存后执行:
$ sudo modprobe mpls-router mpls-iptunnel
6、开启MPLS转发
编辑/etc/sysctl.conf:
# Enable MPLS Label processing on all interfaces
net.mpls.conf.eth0.input=1
net.mpls.conf.eth1.input=1
net.mpls.conf.eth2.input=1
net.mpls.platform_labels=100000
7、安装服务文件
$ sudo install -m 644 tools/frr.service /etc/systemd/system/frr.service
$ sudo systemctl enable frr
8、开启守护程序
编辑/etc/frr/daemons,比要开启的选项改为yes
9、添加服务端口
编辑/etc/services:
zebrasrv 2600/tcp # zebra service
zebra 2601/tcp # zebra vty
ripd 2602/tcp # RIPd vty
ripngd 2603/tcp # RIPngd vty
ospfd 2604/tcp # OSPFd vty
bgpd 2605/tcp # BGPd vty
ospf6d 2606/tcp # OSPF6d vty
ospfapi 2607/tcp # ospfapi
isisd 2608/tcp # ISISd vty
babeld 2609/tcp # BABELd vty
nhrpd 2610/tcp # nhrpd vty
pimd 2611/tcp # PIMd vty
ldpd 2612/tcp # LDPd vty
eigprd 2613/tcp # EIGRPd vty
bfdd 2617/tcp # bfdd vty
fabricd 2618/tcp # fabricd vty
vrrpd 2619/tcp # vrrpd vty
10、启动frr
$ systemctl enable frr
$ systemctl start frr
使用systemctl stop frr停止frr
使用systemctl restart frr杀死当前所有进程并重启frr
使用systemctl reload frr重新加载更新配置后的frr
0x03 参考
上一篇: 静态路由和策略路由的配置实践