::
- sudo pip install pytest
+ sudo pip install pytest
Get FRR, compile it and install it (from Git)
---------------------------------------------
--enable-fpm \
--enable-ldpd \
--with-pkg-git-version \
- --with-pkg-extra-version=-MyOwnFRRVersion
+ --with-pkg-extra-version=-MyOwnFRRVersion
make
make check
sudo make install
--enable-fpm \
--enable-ldpd \
--with-pkg-git-version \
- --with-pkg-extra-version=-MyOwnFRRVersion
+ --with-pkg-extra-version=-MyOwnFRRVersion
make
make check
sudo make install
--enable-eigrpd \
--enable-babeld \
--with-pkg-git-version \
- --with-pkg-extra-version=-MyOwnFRRVersion
+ --with-pkg-extra-version=-MyOwnFRRVersion
make
make check
sudo make install
--enable-rtadv \
--enable-fpm \
--with-pkg-git-version \
- --with-pkg-extra-version=-MyOwnFRRVersion
+ --with-pkg-extra-version=-MyOwnFRRVersion
gmake
gmake check
sudo gmake install
--enable-rtadv \
--enable-fpm \
--with-pkg-git-version \
- --with-pkg-extra-version=-MyOwnFRRVersion
+ --with-pkg-extra-version=-MyOwnFRRVersion
gmake
gmake check
sudo gmake install
--enable-rtadv \
--enable-fpm \
--with-pkg-git-version \
- --with-pkg-extra-version=-MyOwnFRRVersion
+ --with-pkg-extra-version=-MyOwnFRRVersion
gmake
gmake check
sudo gmake install
--enable-rtadv \
--enable-fpm \
--with-pkg-git-version \
- --with-pkg-extra-version=-MyOwnFRRVersion
+ --with-pkg-extra-version=-MyOwnFRRVersion
gmake
gmake check
sudo gmake install
--enable-rtadv \
--enable-fpm \
--with-pkg-git-version \
- --with-pkg-extra-version=-MyOwnFRRVersion
+ --with-pkg-extra-version=-MyOwnFRRVersion
gmake
gmake check
sudo gmake install
::
routeadm -e ipv4-forwarding
- routeadm -e ipv6-forwarding
+ routeadm -e ipv6-forwarding
Install required packages
-------------------------
library/idnkit/header-idnkit \
system/header \
system/library/math/header-math \
- git libtool gawk pkg-config
+ git libtool gawk pkg-config
Add additional Solaris packages:
--enable-rtadv \
--enable-fpm \
--with-pkg-git-version \
- --with-pkg-extra-version=-MyOwnFRRVersion
+ --with-pkg-extra-version=-MyOwnFRRVersion
gmake
gmake check
sudo gmake install
--enable-rtadv \
--enable-fpm \
--with-pkg-git-version \
- --with-pkg-extra-version=-MyOwnFRRVersion
+ --with-pkg-extra-version=-MyOwnFRRVersion
gmake
gmake check
doas gmake install
::
- net.inet6.ip6.forwarding=1 # 1=Permit forwarding of IPv6 packets
+ net.inet6.ip6.forwarding=1 # 1=Permit forwarding of IPv6 packets
net.inet6.ip6.mforwarding=1 # 1=Permit forwarding of IPv6 multicast packets
net.inet6.ip6.multipath=1 # 1=Enable IPv6 multipath routing
wget http://archive.ubuntu.com/ubuntu/pool/main/b/bison/bison_3.0.2.dfsg-2.dsc
wget http://archive.ubuntu.com/ubuntu/pool/main/b/bison/bison_3.0.2.dfsg.orig.tar.bz2
wget http://archive.ubuntu.com/ubuntu/pool/main/b/bison/bison_3.0.2.dfsg-2.debian.tar.gz
- tar -jxvf bison_3.0.2.dfsg.orig.tar.bz2
+ tar -jxvf bison_3.0.2.dfsg.orig.tar.bz2
cd bison-3.0.2.dfsg/
- tar xzf ../bison_3.0.2.dfsg-2.debian.tar.gz
+ tar xzf ../bison_3.0.2.dfsg-2.debian.tar.gz
sudo apt-get build-dep bison
debuild -b -uc -us
cd ..
- sudo dpkg -i ./libbison-dev_3.0.2.dfsg-2_amd64.deb ./bison_3.0.2.dfsg-2_amd64.deb
+ sudo dpkg -i ./libbison-dev_3.0.2.dfsg-2_amd64.deb ./bison_3.0.2.dfsg-2_amd64.deb
cd ..
rm -rf builddir
--enable-rtadv \
--enable-fpm \
--with-pkg-git-version \
- --with-pkg-extra-version=-MyOwnFRRVersion
+ --with-pkg-extra-version=-MyOwnFRRVersion
make
make check
sudo make install
::
- zebra=yes
- bgpd=yes
- ospfd=yes
- ospf6d=yes
- ripd=yes
- ripngd=yes
- isisd=yes
+ zebra=yes
+ bgpd=yes
+ ospfd=yes
+ ospf6d=yes
+ ripd=yes
+ ripngd=yes
+ isisd=yes
Start the init.d service
~~~~~~~~~~~~~~~~~~~~~~~~
--enable-fpm \
--enable-ldpd \
--with-pkg-git-version \
- --with-pkg-extra-version=-MyOwnFRRVersion
+ --with-pkg-extra-version=-MyOwnFRRVersion
make
make check
sudo make install
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 frr /dev/null /etc/frr/nhrpd.conf
sudo install -m 640 -o frr -g frrvty /dev/null /etc/frr/vtysh.conf
Enable IP & IPv6 forwarding
::
- zebra=yes
- bgpd=yes
- ospfd=yes
- ospf6d=yes
- ripd=yes
- ripngd=yes
- isisd=yes
+ zebra=yes
+ bgpd=yes
+ ospfd=yes
+ ospf6d=yes
+ ripd=yes
+ ripngd=yes
+ isisd=yes
Start the init.d service
~~~~~~~~~~~~~~~~~~~~~~~~
--enable-fpm \
--enable-systemd=yes \
--with-pkg-git-version \
- --with-pkg-extra-version=-MyOwnFRRVersion
+ --with-pkg-extra-version=-MyOwnFRRVersion
make
make check
sudo make install
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 frr /dev/null /etc/frr/nhrpd.conf
sudo install -m 640 -o frr -g frrvty /dev/null /etc/frr/vtysh.conf
Enable IPv4 & IPv6 forwarding
>80% of cases.
.. todo::
-
+
Daemons currently have ``daemon_memory.[ch]`` files listing all of
their MTYPEs. This is not how it should be, most of these types
should be moved into the appropriate files where they are used.
| | register() |
| | | zebra_add_rnh()
| | |
-
+
The next hop notification control flow is the following:
. Nexthop prefix .
. .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
-
+
``ZEBRA_NEXTHOP_UPDATE`` message is encoded as follows:
/\ struct bgp_node: a BGP destination/route/prefix
\/
-
+
[ ] struct bgp_info: a BGP path (e.g. route received from a peer)
-
+
_
(_) struct bgp_nexthop_cache: a BGP nexthop
-
+
/\ NULL
\/--+ ^
| :
resolved via kernel
via 10.0.1.2, eth0
Client list: bgp(fd 12)
-
+
frr# show ip bgp nexthop
Current BGP nexthop cache:
3.3.3.3 valid [IGP metric 0], #paths 3
Last update: Wed Oct 16 04:43:49 2013
-
+
11.0.0.10 valid [IGP metric 1], #paths 1
Last update: Wed Oct 16 04:43:51 2013
-
+
11.0.0.18 valid [IGP metric 1], #paths 2
Last update: Wed Oct 16 04:43:47 2013
-
+
11.11.11.11 valid [IGP metric 0], #paths 1
Last update: Wed Oct 16 04:43:47 2013
-
+
frr# show ipv6 nht
frr# show ip bgp nexthop detail
-
+
frr# debug bgp nht
frr# debug zebra nht
-
+
6. Sample test cases
-
+
r2----r3
/ \ /
r1----r4
-
+
- Verify that a change in IGP cost triggers NHT
+ shutdown the r1-r4 and r2-r4 links
+ no shut the r1-r4 and r2-r4 links and wait for OSPF to come back
Creates a new neighbor whose remote-as is ASN. PEER can be an IPv4 address
or an IPv6 address.::
-
+
router bgp 1
neighbor 10.0.0.1 remote-as 2
-
+
In this case my router, in AS-1, is trying to peer with AS-2 at 10.0.0.1.
-
+
This command must be the first command used when configuring a neighbor. If
the remote-as is not specified, *bgpd* will complain like this:::
-
+
can't find neighbor 10.0.0.1
specified the specified community list's information is shown.
::
-
+
# show ip community-list
Named Community standard list CLIST
permit 7675:80 7675:100 no-export
deny internet
Named Community expanded list EXPAND
permit :
-
+
# show ip community-list CLIST
Named Community standard list CLIST
permit 7675:80 7675:100 no-export
display all of IPv4 BGP routes.
::
-
+
BGP table version is 0, local router ID is 10.1.1.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
-
+
Network Next Hop Metric LocPrf Weight Path
\*> 1.1.1.1/32 0.0.0.0 0 32768 i
-
+
Total number of prefixes 1
Make a new BGP instance. You can use arbitrary word for the `name`.
::
-
+
bgp multiple-instance
!
router bgp 1
With this command, you can setup Route Server like below.
::
-
+
bgp multiple-instance
!
router bgp 1 view 1
prefixes because invalid routes have a lower local preference.
::
-
+
! Allow for invalid routes in route selection process
route bgp 60001
!
configuration (either in its individual configuration file, or in
:file:`frr.conf`). This is particularly troublesome for route-maps and
prefix lists, which would otherwise be synchronized between daemons.
-
+