Setting up anycast DNS using bird

K Storbeck kai at
Fri Jan 15 16:30:07 CET 2010

Fellow birdwatchers,

We're running a set of resolvers here using an anycast setup. We currently do this on FreeBSD using openbsd's bgpd.

Bgpd is started with a bare config defining the local as, the neighbor and its as. After starting up our DNS servers on a local dummy0 interface, and we're confident that they work, we're using bgpctl (openbgp's CLI) to announce one or more prefixes.

So far I have a working setup, but I'm not completely satisfied:

log syslog {info, warning, error, fatal, debug, trace, remote, auth};
log "/var/log/bird.log" all;

router id;
listen bgp address port 179;

protocol kernel {
        persist;                # Don't remove routes on BIRD shutdown
        scan time 20;           # Scan kernel routing table every 20 seconds

protocol device {
        scan time 10;           # Scan interfaces every 10 seconds

# only guesswork here: I'm presuming this scans all dummy interfaces, and looks what is up and configured?
protocol direct {
        interface "dummy*";

protocol bgp {
        debug all;
        local as 65516;
        neighbor as 3265;
        source address;

	# again: guesswork, does this announce all 'protocol direct' stuff?
        export all;

My preference would be to explicitly list the prefixes that I want to announce, not having to rely on what I'm really configuring on my linux dummy interface. Is that coming, or did I misinterpret the docs?

I'd love to setup a v4 and a v6 bgp session with 1 daemon, since my DNS software is fine with it. Do I understand it correctly that this currently isn't possible?


More information about the Bird-users mailing list