So I’ve setup BFD on point to point interfaces and making BGP BFD ” aware” on IOS many times no problems.
But this time was different. I had a nexus 9k in the standalone code so no ACI in my on-prem datacenter and my “cloud” datacenter. Setup a point to point interface , turned on “feature bfd”,
Added to both ends on the interface and BGP. I ran the “show bfd neighbors” command and got nothing back on either side.At this point I was legitimately confused. So instead of wasting time I opened a TAC case with Cisco.
We reviewed the config and in true Cisco fashion they advised to upgrade the code. We did the following weekend, no change. At this point both the TAC engineer and myself are both baffled.
Here where it gets interesting, so I had originally planned BGP to terminate on an upstream device until I learned that multi hop BFD was not available in the current code so I changed it to the directly connected Nexus 9k. What I didn’t realize is I created my own problem. After some troubleshooting we decided to the eBGP multi hop and wouldn’t you know after we restarted the BGP process BFD came screaming to life.
I tried looking in Cisco documentation to see if this was called out anywhere. It was not or anywhere I could find. Now I know and I wanted to put it out there so others don’t end up beating their heads on a desk for days trying to figure out what the heck is going on.
TLDR; BFD wasn’t working between two Nexus 9ks, Opened a TAC case. We figured out that BFD and eBGP multi hop are incompatible configurations.
BGP can be a tricky beast.
It works now (since 9.3.6)
Hmmmm, then why does this work???
router bgp 65101
neighbor 10.1.1.1
bfd multihop
bfd multihop interval 250 min_rx 250 multiplier 3
remote-as 65102
update-source loopback3
ebgp-multihop 5
!
router# show bfd neighbors vrf all
OurAddr NeighAddr LD/RD RH/RS Holdown(mult) State Int Vrf Type BSID
10.2.2.2 10.1.1.1 1090519641/443678731 Up 606(3) Up Lo3 external MH N/A
It works now when I wrote the blog post it did not. 🙂