I have a situation where I need to enable EBGP multihop even though the peer is directly connected. Backstory: I have hosts running BIRD peered with MLAG paired switches and there are instances where BGP ECMP and LACP hashing don't align. BGP packets destined to one peer (Switch A) will land on the other switch in the pair (Switch B). In this case, the switch in which the packet landed (Switch B) will route the packet to the correct switch (Switch A) causing TTL to decrement.
When I configure multihop in BIRD, it seems BIRD assumes that the next-hop address is unreachable and expects there to be a static route to the peer before it will consider accepted routes reachable. I can't add a static route that points to itself, so in my testing environment I ended up adding a /128 to the loopback interface on both switches and configured BIRD peer with that address. Then I was able to add the static route BIRD is expecting (and is now actually necessary), and multihop works fine.
However, if possible, I'd like to avoid having to do this. Is there a way?
Thanks!
~ Anthony