A funny story with limited benefit that someone else may learn from someday...
Jake
jake at elsif.net
Fri Sep 22 20:56:34 CEST 2023
For 20 years in the industry, I’ve misunderstood an element of BGP.
My understanding was that “multihop” was used any time you might receive a
route from a thing, but be given destinations for other things.
In some cases, that mean routers multiple hops away, yes. But in my
incorrect understanding, it also meant route-servers at Internet
Exchanges (which are considered directly connected.
So for all of my time at this job and last, I set nearly everything in
Quagga/zebra/BIRD to multihop…and it worked.
But…recently something in Linux changed, it seems…where the algorithm used
to recursively try to solve routes when “multihop” was used now completely
ignores directly-connected interfaces, maybe...?
So…when BIRD did it’s reconfig…all of a sudden it was unable to resolve
the route lookups for anything labeled “multihop”. This resulted in every
route received over a multihop BGP session with a route-server at an IXP
being marked "!", unreachable, reject.
Thus, removing the line “multihop” from all of our route-server peers
fixed the issue, routes were again received and added to the kernel
properly, and life went on.
Maybe nobody else out there has the same misunderstanding I did, and
nobody will ever experience this again...but if posting here in my
embarrassment helps one of you down the line, I suppose it was all worth
it.
-jake
More information about the Bird-users
mailing list