第-1步,安装samba(我是先下载V7.1到了本地,其实可以直接git clone下载即可,安装samba是为了copy进去)
下载releases发布的版本 V7.1到了本地
https://github.com/FRRouting/frr/releases
apt-get install samba samba-common
vim /etc/samba/smb.conf
复制到文末:
[work code]
comment = work
path = /home
public = yes
writeable = yes
available = yes
browseable = yes
creat mask = 0777
directory mask = 0777
guest ok = yes
forceuser=root
forcegroup=root
执行 service smbd restart
第0步、环境确认
XX:/code/frr# uname -r
4.15.0-54-generic
XX:/code/frr# cat /etc/issue
Ubuntu 18.04.3 LTS \n \l
第一步、安装依赖关系
apt update
apt-get update
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
autoreconf -ivf
第二步、安装FRR依赖于的libyang库
wget https://ci1.netdef.org/browse/LIBYANG-YANGRELEASE-10/artifact/shared/Debian-AMD64-Packages/libyang0.16_0.16.105-1_amd64.deb
wget https://ci1.netdef.org/browse/LIBYANG-YANGRELEASE-10/artifact/shared/Debian-AMD64-Packages/libyang-dev_0.16.105-1_amd64.deb
dpkg -i libyang0.16_0.16.105-1_amd64.deb
apt-cache policy libpcre32-3
apt-cache policy libpcrecpp0v5
apt-get install libpcre16-3=2:8.39-9 libpcre32-3=2:8.39-9 libpcrecpp0v5=2:8.39-9 libpcre3-dev
dpkg -i libyang-dev_0.16.105-1_amd64.deb
apt-get install protobuf-c-compiler libprotobuf-c-dev
apt-get install libzmq5 libzmq3-dev
第三步、添加FRR用户和组
groupadd -r -g 92 frr
groupadd -r -g 85 frrvty
adduser --system --ingroup frr --home /var/run/frr/ \
--gecos "FRR suite" --shell /sbin/nologin frr
usermod -a -G frrvty frr
第四步、编译
./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 \
--enable-systemd=yes \
--enable-doc-html --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 && make install
第五步、安装FRR配置文件
install -m 775 -o frr -g frr -d /var/log/frr
install -m 775 -o frr -g frrvty -d /etc/frr
install -m 640 -o frr -g frrvty tools/etc/frr/vtysh.conf /etc/frr/vtysh.conf
install -m 640 -o frr -g frr tools/etc/frr/frr.conf /etc/frr/frr.conf
install -m 640 -o frr -g frr tools/etc/frr/daemons.conf /etc/frr/daemons.conf
install -m 640 -o frr -g frr tools/etc/frr/daemons /etc/frr/daemons
第六步、调整的sysctl
1、vim /etc/sysctl.conf
# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1
# Uncomment the next line to enable packet forwarding for IPv6
# Enabling this option disables Stateless Address Autoconfiguration
# based on Router Advertisements for this host
net.ipv6.conf.all.forwarding=1
2、vim /etc/modules-load.d/modules.conf
# Load MPLS Kernel Modules
mpls_router
mpls_iptunnel
执行modprobe mpls-router mpls-iptunnel
启用MPLS转发
编辑/etc/sysctl.conf和以下行。确保为net.mpls.conf.eth0.inputMPLS使用的每个接口添加等于的行。
# 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
在执行sysctl -p
第七步、启用守护进程
vim /etc/frr/daemons查找带有watchfrr_enable=...和的部分zebra=...。通过将值更改为yes,根据需要启用守护进程。
第八步、安装服务文件
install -m 644 tools/frr.service /etc/systemd/system/frr.service
systemctl enable frr
systemctl start frr
停止使用
systemctl stop frr
参考:
http://docs.frrouting.org/projects/dev-guide/en/latest/building-frr-for-ubuntu1804.html