Where is the problem?
The OpenBGPd project was started by
Henning Brauer as a alternative for Zebra and Quagga routing suites.
Unfortunately, Henning didn't port the package to other BSD systems.
The good news is, it's quite easy to do by hand.
What will I need?
You'll need original package with sources:
...and three files:
file from OpenBSD CVS repository
- pfkey_compat.c - overlay file
disabling MD5 authentication of peers that's not supported in FreeBSD, written by Claudio Jeker with my
- openbgpd-freebsd.diff - all
the other changes - to Makefiles and some sources
Now, You'll have to follow this simple script:
- untar the OpenBGPd archive:
tar xvfz openbgpd-3.6.tar.gz
- Move the pfkey_compat.c file to bgpd directory:
cp pfkey_compat.c bgpd/
- Move the if_media.h file to bgpctl directory:
cp if_media.h bgpctl/
- Patch other files with openbgpd-freebsd.diff:
patch -p1 <openbgpd-freebsd.diff
- Go to bgpd directory, compile, install and clean:
cd bgpd; make; make install; make clean
- Go to bgpctl directory, compile, install and clean:
cd ../bgpctl; make; make install; make clean
And that's all. You'll need some example configuration file - it can
be fetched again from OpenBSD repository (bgpd.conf).
Put it in the /etc directory and if everything went smoothly,
You can now run BGP by simply typing bgpd. Please consult all
other options with man and other available literature.
What works and what doesn't?
AFAIK only the MD5 authentication won't work, as there no infrastructure
in FreeBSD. I've tested iBGP and eBGP, community with pf tables and
nexthop manipulation for redirection to /dev/null and it
Additional BGP references
- RFC 1771
RFC about BGPv4
- bgpd man
man page of bgpd from OpenBSD project
- BGP4 AS
site with many reference materials about BGPv4
- Intro to BGPv4
presentation of Philip Smith from Cisco, that's introducing reader to BGPv4
- Multihoming in BGPv4
presentation of Philip Smith from Cisco, that's about multihoming techniques in BGPv4
- Troubleshooting BGPv4
presentation of Philip Smith from Cisco, that's about troubleshooting BGPv4