[quagga-dev 1436] Confederations and prepending

Douglas Fraser doug+quagga at idmf.net
Tue Aug 24 20:19:31 BST 2004


I've run into an unwanted interaction between confederations and
prepending in route-maps.

If I prepend the confederation ID to the AS path the
confederation path sequence is not removed before advertising to
an eBGP neighbour.

This appears to be due to aspath_prepend being called before
aspath_delete_confed_seq.

Because aspath_prepend is called first, the left most segment in
the path is not of type AS_CONFED_SEQUENCE and, as per RFC 3065,
confederation path sequences later in AS path are not removed by
aspath_delete_confed_seq and replaced by the confederation ID.
Instead the confederation ID is simply prepended to the path.

Example:
 bgp confederation identifier 65024
 bgp confederation peers
  65025 172.24.9.69
  65026 172.24.12.40
  65028 172.24.14.129

When prepending 65024 twice in a routemap on 172.24.9.69

On eBGP peer
* 172.24.12.40/29 172.24.9.69   0 65024 65024 65024 (65028 65026) i
*                 172.24.14.129 0 65024 i

My initial thoughts are that aspath_delete_confed_seq should be
called before aspath_prepend so that rather than getting something
like:
                          (65028 65026)
aspath_prepend:           65024 65024 (65028 65026)
aspath_delete_confed_seq: 65024 65024 (65028 65026)
aspath_add_seq:           65024 65024 65024 (65028 65026)

You get:
                          (65028 65026)
aspath_delete_confed_seq: 
aspath_prepend:           65024 65024
aspath_add_seq:           65024 65024 65024

Does anyone disagree with this ordering or interpretation of the
RFC or perhaps I'm going about this completely wrong?

I can provide example configurations if any wishes to test this
themselves and would interested if someone could test IOS to see
what it does.

Cheers,

Dougie




More information about the Quagga-dev mailing list