[Babel-users] Babeld vs. BIRD [was: Please test master]

Toke Høiland-Jørgensen toke at toke.dk
Sun Sep 23 12:56:49 BST 2018


Dave Taht <dave.taht at gmail.com> writes:

> On Sat, Sep 22, 2018 at 6:39 AM Juliusz Chroboczek <jch at irif.fr> wrote:
>>
>> >> I'll point out that the BIRD codebase is cleaner and better designed
>> >> than babeld, and might be able to scale better. I'd be interested in
>> >> seeing a comparison.
>>
>> > Yeah, me too.
>>
>> Toke, perhaps you'd like to post some instructions?
>
> bird now has ipv4 + ipv6 support, yes?

Yup. I'd recommend using the git version from the 'int-new' branch:

https://gitlab.labs.nic.cz/labs/bird/


> If I could get a bird.conf configged for babel that also could do the
> moral equivalent of:
>
> "redistribute proto 50 metric 128"
>
> And another
>
> https://github.com/dtaht/rtod/blob/master/babeld-safe.conf

See below. You can edit the blacklist and import_filter to get the
filtering you want. You'll also need to define the right set of
interfaces near the bottom.

-Toke


Put this in a file and run `sudo ./bird -c name-of-file.conf`:


router id 62.168.0.1;

# Enable debugging output
debug protocols all;

# Need to define table for ipv6 sadr (v4 is implicitly defined as 'master4')
ipv6 sadr table tab1;

# Listen to dev up/down events
protocol device {}

# Blacklisting and filtering from kernel
define blacklist = [
       a::/16,
       127.0.0.0/8
];

filter import_filter
{
        # Filter routes in blacklist
        if (net ~ blacklist) then reject "blacklisted";
        # Only import kernel protocol 50
        #if (krt_source != 50) then reject "wrong protocol";
        accept;
}

protocol kernel {
  ipv6 sadr {
    table tab1;
    export all;
    import filter import_filter;
  };
  learn yes;
}

protocol kernel {
  ipv4 {
    export all;
    import filter import_filter;
  };
  learn yes;
}

# Create routes subnets configured on interfaces
protocol direct {
  ipv6 sadr;
  ipv4;
}

protocol babel {
  ipv6 sadr {
    table tab1;
    import all;
    # Set initial metric for all routes
    export filter { babel_metric = 128; accept; };
  };
  ipv4 {
    import all;
    # Set initial metric for all routes
    export filter { babel_metric = 128; accept; };
  };
  # Interfaces to listen on and their config
  interface "eth0" { type wired; };
  interface "wlan0" { type wireless; };
}




More information about the Babel-users mailing list