Hi,
I have been running OSPF between Bird and Mikrotik RouterOS over wireguard tunnels for over two years, no issue.
I have not changed ANYTHING (to the best of my knowledge) but this morning I randomly notice some connectivity issues. I started to debug this evening and found that all OSPF neighbors have been in "ExStart" on RouterOS for 15 hours or so. I tried to debug back and forth and eventually I rebooted all systems. Now all Mikrotik neighbors are stuck in "Init" and for my life of it I can't figure out why. IT WORKED FOR TWO YEARS!!! I neither changed Mikrotik side nor Bird side!
Anyway, I started debugging from scratch and I noticed one thing: Both bird and RouterOS send OSPF Hello's:
# tcpdump -i wg-b -n 'proto ospf'
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on wg-b, link-type RAW (Raw IP), snapshot length 262144 bytes
05:32:39.013170 IP 1.2.3.210 > 224.0.0.5: OSPFv2, Hello, length 48
05:32:39.895227 IP 1.2.3.185 > 224.0.0.5: OSPFv2, Hello, length 44
I enabled OSPF debugging and only see this:
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on wg-b, link-type RAW (Raw IP), snapshot length 262144 bytes
05:32:39.013170 IP 1.2.3.210 > 224.0.0.5: OSPFv2, Hello, length 48
05:32:39.895227 IP 1.2.3.185 > 224.0.0.5: OSPFv2, Hello, length 44
I enabled OSPF debugging and only see this:
Jan 15 05:32:24 BorderGate1 bird[35754]: ospf1: HELLO packet sent via wg-a
Jan 15 05:32:24 BorderGate1 bird[35754]: ospf1: HELLO packet sent via wg-b
Jan 15 05:32:24 BorderGate1 bird[35754]: ospf1: HELLO packet sent via wg-c
Jan 15 05:32:24 BorderGate1 bird[35754]: ospf1: HELLO packet sent via wg-d
Jan 15 05:32:27 BorderGate1 bird[35754]: ospf1: HELLO packet received from nbr 194.182.221.80 on wg-c
Jan 15 05:32:28 BorderGate1 bird[35754]: ospf1: HELLO packet received from nbr 1.2.3.195 on wg-d
Jan 15 05:32:24 BorderGate1 bird[35754]: ospf1: HELLO packet sent via wg-b
Jan 15 05:32:24 BorderGate1 bird[35754]: ospf1: HELLO packet sent via wg-c
Jan 15 05:32:24 BorderGate1 bird[35754]: ospf1: HELLO packet sent via wg-d
Jan 15 05:32:27 BorderGate1 bird[35754]: ospf1: HELLO packet received from nbr 194.182.221.80 on wg-c
Jan 15 05:32:28 BorderGate1 bird[35754]: ospf1: HELLO packet received from nbr 1.2.3.195 on wg-d
So bird is sending an OSPF Hello on all interfaces but is receiving none on wg-b. However, tcpdump clearly shows wg-b receives a Hello!
How the heck can this happen?
Thanks!
