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'...

 

目录
相关文章
|
3月前
|
Ubuntu Linux
ubuntu源码编译指定版本make
以上内容涵盖了在Ubuntu中编译安装指定版本软件的全过程,这是一个技术性很强的操作,不仅可以带来定制化的安装体验,同时也能增加对系统管理和软件构建流程的理解。遵循以上步骤,任何有一定基础的用户都能够按需编译和安装软件。
55 8
|
6月前
|
Ubuntu C++
Ubuntu20.04LTS+uhd3.15+gnuradio3.8.1源码编译及安装
Ubuntu20.04LTS+uhd3.15+gnuradio3.8.1源码编译及安装
248 0
|
Ubuntu
Ubuntu中安装Cmake
Ubuntu中安装Cmake
208 0
|
机器学习/深度学习 传感器 编解码
【基于Ubuntu18.04+Melodic的realsense D435i安装】
【基于Ubuntu18.04+Melodic的realsense D435i安装】
931 0
|
Ubuntu
Ubuntu20.04安装软件报错:The following packages have unmet dependencies
Ubuntu20.04安装软件报错:The following packages have unmet dependencies
1110 0
Ubuntu20.04安装软件报错:The following packages have unmet dependencies
|
域名解析 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。
91778 3
如何在 Ubuntu 20.04 上安装 GCC(build-essential)
|
Ubuntu
libudev-dev : Depends: libudev0 (= 175-0ubuntu9) but 175-0ubuntu9.3 is to be installed 错误解决方案
libudev-dev : Depends: libudev0 (= 175-0ubuntu9) but 175-0ubuntu9.
1410 0
|
Ubuntu Linux 开发工具
如何在Debian和Ubuntu下重新打包Deb文件
本文将会为 Ubuntu、Linux Mint 和 Debian GUN/Linux 用户讲述,如何在它们基于Debian的Linux操作系统上轻松的解压和重新打包.deb文件。 有时候你在生活中会碰到这样的问题,你想要修改.deb文件的部分内容,然后重新打包。
1955 0
|
Ubuntu Python
Ubuntu下scons安装
1.需要先安装Python,推荐Python2.7 sudo apt-get install python2.7   2. 下载scons-2.
4112 0
|
Ubuntu JavaScript
004 Ubuntu上安装truffle
truffle的网址:http://truffleframework.com/ 1、安装条件 需要安装Nodejs5以上版本,安装请参考之前文章, http://blog.csdn.net/zxs9999/article/details/79029044 切换到root用户执行以下命令。
1625 0