[RFC] Automatic MP peering with IPv6 link local peers

Nico Schottelius nico.schottelius at ungleich.ch
Sat Jul 9 10:53:28 CEST 2022


Good morning^2,

as virtually all parts in our datacenters have become IPv6 only, I was
wondering if it was easy to add a feature to bird to automatically BGP
peer with all alive link local neighbours?

Motivation and situation
------------------------

Every node has an IPv6 link local address on every network interface.
Bird already supports dynamic peers, including whitelisting of ranges.

Instead of specifying specific ranges, it would be great if two or more
routers could be placed in the same layer 2 segment and would
automatically BGP peer with each other, thus removing any configuration
needs.

OSPF does a similar job already, however it is not suitable for
transferring the BGP attributes.

Implementation sketch
--------------------------------------------------------------------------------
The idea would be for each router have something on the line of


protocol bgp fe80auto {
        local     as 65532;
        neighbor range fe80::/12 as 65534;
        dynamic name "link_local_";

        # New option, similar to the OSPF option
        auto_fe80_interfaces "eth1.*";

        ipv6 {
        };
        ipv4 {
        };
}

If bird had the stanza auto_fe80_interfaces in it, it would

a) ping ff02::2 and record all results
b) For each result, excluding our own address, connect to the other nodes
c) On expiry or regular interal, go back to (a) and clear peers

--------------------------------------------------------------------------------

Maybe this is already possible in current bird, but I haven't found a
direct way to dynamically solve this.

Looking forward to your thoughts,

Nico


--
Sustainable and modern Infrastructures by ungleich.ch


More information about the Bird-users mailing list