Limitations of BGP AS confederations?

Ondrej Zajicek santiago at crfreenet.org
Sat Nov 7 16:04:52 CET 2020


On Fri, Nov 06, 2020 at 11:52:11AM +0100, Erik Zscheile (Software Development) wrote:
> Hello,
> 
> Am 06.11.20 um 04:56 schrieb Ondrej Zajicek:
> > On Fri, Nov 06, 2020 at 12:01:20AM +0100, Erik Zscheile (Software Development) wrote:
> > > in an article [1] (which was one of very few articles which I found about BIRD + BGP AS confederations)
> > > it is stated that currently, BGP AS confederations have the following limitation:
> > > 
> > > > Bird won't consider the confederation part while calculating distance, which leads to weird routing results.
> > 
> > That is expected behavior per RFC 5065 5.3 (3).
> > 
> > The idea is that inside confederation BGP next hops are preserved when
> > paths are propagated from one internal ASN to another, therefore paths
> > are compared based on IGP cost to confederation border (assuming shared
> > IGP routes / metrics within whole confederation).
> > 
> > > > Bird neither provides a variable for the filter to calculate confederation length and make manual adjustments.
> > > >   * bgp_path.len in Bird doesn't contain the length of Confederation, as stated above;
> > 
> > It is true that bgp_path.len returns AS PATH length without confederation
> > ASNs, to be consistent with AS_PATH length used for best route selection.
> > 
> > Seems to me that the best tool for your case might be AIGP option (RFC
> > 7311, implemented in version 2.0.7).
> > 
> This might be a good fit, yes. But from the documentation I wasn't able to
> conclude how it should be used (e.g. how to set or increment the AIGP value)...

You just enable 'aigp originate' on sessions to originate AIGP on local (non-BGP)
routes. AIGP values are increased automatically on links that change/reset next
hop (e.g. if your intra-confederation inter-AS links have have 'next hop self');
based in IGP values (if you have IGP, e.g. OSPF, inside each AS and use recursive
next hop calculation) or link costs can be configured manually (e.g. if each 'AS'
is just one router and BGP links use 'direct' mode).


> > BIRD uses AS_CONFED_SEQUENCE, treats AS_SEQUENCE as length n, AS_SET as length 1
> > and AS_CONFED_SEQUENCE / AS_CONFED_SET as length 0.
> Thanks for that information. Maybe this should be mentioned in the documentation,
> as it is non-obvious.

That is just behavior from RFC 5065 spec, and pretty technical.

-- 
Elen sila lumenn' omentielvo

Ondrej 'Santiago' Zajicek (email: santiago at crfreenet.org)
OpenPGP encrypted e-mails preferred (KeyID 0x11DEADC3, wwwkeys.pgp.net)
"To err is human -- to blame it on a computer is even more so."


More information about the Bird-users mailing list