欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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 参考

http://docs.frrouting.org/projects/dev-guide/en/latest/building-frr-for-ubuntu1804.html#installing-dependencies

http://docs.frrouting.org/en/latest/setup.html

相关标签: Rpki Frr