OpenBSD Journal

The Design of OpenBGP on Daemonnews

Contributed by marco on from the henning-talks-fast dept.

Daemonnews ran this interesting excerpt based on a video of Hennings presentation at NANOG 36.

I started OpenBGP two years ago, after getting completely fed up with Zebra, which we were running before. There were lots of bugs, bad configuration language, performance problems, and since I don't speak Japanese - I had problems understanding the documentation. Zebra makes heavy use of cooperative threads, which leads to it's main problem: Combined with the central event queue, Zebra can lose sessions while busy. This is because the keepalive events can be way down in the queue, so if something else simultaneously consumes all the CPU power - Zebra just doesn't process the keepalives until the peer resets the session. Zebra successor, Quagga, caught up and apparently fixed many of the bugs. However, they still used the Zebra's design, which I think is wrong. So, the issues are kind of unfixable.

(Comments are closed)

  1. By David ( on

    Very interesting and instructive! A great introduction on that great piece of software that is OpenBGPD. Many thanks to Henning for the original work and to the Daemon News staff for this excerpt.

    Btw, there's a typo in the "Looking Glass" section:
    While running httpd in a chroot environment, which is default on OpenBSD, a cgi can call the bgpd binary placed inside the chroot, passing the path to this restricted socket.


    But it's correct in the slides...

    1. By Nate ( on

      And :s/VERP/VRRP/g

      1. By Anonymous Coward ( on is "NOT" vi!

        1. By Nate ( on

          Everything is vi.

          1. By Anonymous Coward ( on

            Second that.

          2. By Anonymous Coward ( on

            I thought Everything was an Emacs mode? As far as I know it's one of their selling points...

            1. By Paladdin ( on

              Oh, don't you love those holy wars?

              Just kidding... ;-) OpenBGP is fantastic, and combined with pf and ospfd makes OpenBSD a wonderful router working machine. Great!

              Ummm... I've already received a NL-5354MP+Aries2 (miniPCI WiFi a/b/g card) that works fine with a Soekris 4501 and OBSD 3.8. I'm trying to figure the best routing strategy to improve our local wireless network -that has several nodes, and over 20 subnets- and I'm having very good vibrations. Those configuration files sintax rules! Plain to edit, plain to understand, smooth running so far... :D

        2. By Anonymous Coward ( on

          <set o="vi">


Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]