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)...
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.
Regards, Erik Zscheile