Hi all,I am working today to try to have BIRD propagate my calculated IGP metric to an eBGP peer via MED. This is implemented in commercial routers typically with a flag in the BGP configuration (ie. on JunOS you set 'metric-out igp' in the peer configuration), which will propagate to eBGP the calculated IGP metric to the BGP next-hop as MED MED. This allows MED to update dynamically based on changes to the internal path to that exit, and be automatically calculated by the IGP SPF algorithm, assuming you have set your link costs appropriately.
My network uses OSPF to propagate interface and loopback routes only, and iBGP for all 'real' routes. While there is a full mesh in iBGP, obviously not all nodes are directly connected, so OSPF costs are used to determine the path to the destination using 'gateway recursive'. The IGP cost may change if e.g. a node goes down, and I would like to facilitate eBGP peers moving their traffic to the optimal node in such cases, as well as leveraging the IGP data to automatically use the correct entry point in the normal case as well.
Is there a way to do this in BIRD? I tried a few different parameters that might contain this information, but none were set in an eBGP export filter (igp_metric, preference, ospf_metric1).
The only solution I could come up with, even for the normal case, was using a community for 'route learned at', but this requires every router's configuration to include the path cost to every other router, which quickly becomes cumbersome to maintain as the network grows.
I think the ideal solution would be to expose the IGP cost in a new attribute (or maybe use igp_metric as it doesn't seem to be set), such that a filter could work with it to set an appropriate bgp_med. Internally it's obviously available, since birdc shows it as part of the preference for BGP routes. I guess the difficulty would be making sure changes propagate through eBGP peerings. Alternatively, a knob could be provided in the peer configuration, perhaps as a special setting for default bgp_med. Or both :).
Keenan Tims
pgps5ldx9Jm9_.pgp
Description: PGP Digital Signature