build FRR on ubuntu

简介: https://github.com/FRRouting/frr/wiki/Building-FRR-on-Ubuntu-1404 Install required packagesAdd packages:apt-get install git autoconf automake libt...

https://github.com/FRRouting/frr/wiki/Building-FRR-on-Ubuntu-1404

 

Install required packages

Add packages:

apt-get install git autoconf automake libtool make gawk libreadline-dev \
   texinfo dejagnu pkg-config libpam0g-dev libjson-c-dev bison flex \
   python-pytest libc-ares-dev python3-dev

Add frr groups and user

sudo groupadd -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

Download Source, configure and compile it

(You may prefer different options on configure statement. These are just an example.)

git clone https://github.com/frrouting/frr.git frr
cd frr
./bootstrap.sh
./configure \
    --prefix=/usr \
    --enable-exampledir=/usr/share/doc/frr/examples/ \
    --localstatedir=/var/run/frr \
    --sbindir=/usr/lib/frr \
    --sysconfdir=/etc/frr \
    --enable-pimd \
    --enable-watchfrr \
    --enable-ospfclient=yes \
    --enable-ospfapi=yes \
    --enable-multipath=64 \
    --enable-user=frr \
    --enable-group=frr \
    --enable-vty-group=frrvty \
    --enable-configfile-mask=0640 \
    --enable-logfile-mask=0640 \
    --enable-rtadv \
    --enable-fpm \
    --enable-ldpd \
    --with-pkg-git-version \
    --with-pkg-extra-version=-MyOwnFRRVersion
make
make check
sudo make install

derek@kbox:~/share/frr$ autoreconf -i
.ibtoolize: error: AC_CONFIG_MACRO_DIRS([m4]) conflicts with ACLOCAL_AMFLAGS=-I m4
autoreconf: libtoolize failed with exit status: 1

在项目的根目录下添加如下.gitattributes文件便可

*.sh     -crlf
*.ac     -crlf
*.am     -crlf

 

Create empty FRR configuration files

sudo install -m 755 -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 frr /dev/null /etc/frr/zebra.conf
sudo install -m 640 -o frr -g frr /dev/null /etc/frr/bgpd.conf
sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospfd.conf
sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ospf6d.conf
sudo install -m 640 -o frr -g frr /dev/null /etc/frr/isisd.conf
sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripd.conf
sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ripngd.conf
sudo install -m 640 -o frr -g frr /dev/null /etc/frr/pimd.conf
sudo install -m 640 -o frr -g frr /dev/null /etc/frr/ldpd.conf
sudo install -m 640 -o frr -g frr /dev/null /etc/frr/nhrpd.conf
sudo install -m 640 -o frr -g frrvty /dev/null /etc/frr/vtysh.conf

nable IP & IPv6 forwarding

Edit /etc/sysctl.conf and uncomment the following values (ignore the other settings)

# 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

Reboot or use sysctl -p to apply the same config to the running system ### Install the init.d service

sudo install -m 755 tools/frr /etc/init.d/frr
sudo install -m 644 tools/etc/frr/daemons /etc/frr/daemons
sudo install -m 644 tools/etc/frr/daemons.conf /etc/frr/daemons.conf
sudo install -m 644 -o frr -g frr tools/etc/frr/vtysh.conf /etc/frr/vtysh.conf

Enable daemons

Edit  /etc/frr/daemons and change the value from "no" to "yes" for those daemons you want to start by systemd.
For example.
zebra=yes
bgpd=yes
ospfd=yes
ospf6d=yes
ripd=yes
ripngd=yes
isisd=yes

Start the init.d service

  • sudo /etc/init.d/frr start
  • use /etc/init.d/frr status to check its status.

 

vtysh

  • sudo vtysh
derek@kbox:~$ sudo vtysh
[sudo] password for derek: 

Hello, this is FRRouting (version 3.1-dev-MyOwnFRRVersion-gff9eb72).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

This is a git build of frr-3.1-dev-699-g4ff9eb72
Associated branch(es):
        local:master
        github/frrouting/frr.git/master

kbox# show version
FRRouting 3.1-dev-MyOwnFRRVersion-gff9eb72 (kbox).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
This is a git build of frr-3.1-dev-699-g4ff9eb72
Associated branch(es):
        local:master
        github/frrouting/frr.git/master

configured with:
     '--prefix=/usr' '--enable-exampledir=/usr/share/doc/frr/examples/' '--localstatedir=/var/run/frr' '--sbindir=/usr/lib/frr'...

 

目录
相关文章
|
16天前
|
Ubuntu C++
Ubuntu20.04LTS+uhd3.15+gnuradio3.8.1源码编译及安装
Ubuntu20.04LTS+uhd3.15+gnuradio3.8.1源码编译及安装
15 0
|
5月前
|
Ubuntu
Ubuntu中安装Cmake
Ubuntu中安装Cmake
|
8月前
|
机器学习/深度学习 传感器 编解码
【基于Ubuntu18.04+Melodic的realsense D435i安装】
【基于Ubuntu18.04+Melodic的realsense D435i安装】
371 0
|
9月前
|
Ubuntu C++
VS code for Ubuntu 16.04安装
VS code for Ubuntu 16.04安装
71 0
|
域名解析 Ubuntu 编译器
如何在 Ubuntu 20.04 上安装 GCC(build-essential)
GNU 编译器集合是一系列用于语言开发的编译器和库的集合,包括: C, C++, Objective-C, Fortran, Ada, Go, and D等编程语言。很多开源项目,包括 Linux kernel 和 GNU 工具,都是使用 GCC 进行编译的。本文主要为大家讲解如何在 Ubuntu 20.04 上安装 GCC。
83268 3
如何在 Ubuntu 20.04 上安装 GCC(build-essential)
|
Ubuntu Python
Ubuntu下scons安装
1.需要先安装Python,推荐Python2.7 sudo apt-get install python2.7   2. 下载scons-2.
3838 0
|
关系型数据库 网络安全 开发工具
How to Deploy Dokku on Ubuntu 16.04
Dokku is an extensible, lightweight, open source Platform as a Service (PaaS) that runs on your server, such as Alibaba Cloud Elastic Compute Service (ECS).
2093 0
|
存储 分布式计算 Java