Neighbor stuck in Init/DROther state ------------------------------------- 2009/Sep/28 - backlogged As this is backlogged, it's more as an demonstration rather than exact report. Thus figures doesn't have to fit exactly. I've noticed strange behaviour at one link. This might be for some time - two weeks, perhaps. I didn't notice before, because quagga in OpenWRT seems to be crapped lately - dropping routes, creating loops, etc. So, there was a lot of work and strange stuff going on. ### FIGURE A - ROUTER A ### rourerA> show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL 192.168.0.1 1 Full/DR 00:00:37 192.168.1.33 ath0:192.168.1.34 0 0 0 192.168.0.2 1 Init/DROther 00:00:37 192.168.1.13 ath1:192.168.1.14 0 0 0 192.168.0.3 1 Full/Backup 00:00:37 192.168.1.9 ath2:192.168.1.10 0 0 0 192.168.0.4 1 Full/DR 00:00:32 192.168.1.18 ath3:192.168.1.17 0 0 0 routerA> routerA> show ip ospf interface ath1 ath1 is up Internet Address 192.168.1.14/30, Broadcast 192.168.1.15, Area 0.0.0.0 Router ID 192.168.0.5, Network Type BROADCAST, Cost: 20 Transmit Delay is 1 sec, State DROther, Priority 1 No designated router on this network No backup designated router on this network Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 00:00:02 Neighbor Count is 1, Adjacent neighbor count is 0 routerA> ### FIGURE A - ROUTER A ### ### FIGURE B - ROUTER B ### routerB> show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface RXmtL RqstL DBsmL 192.168.0.1 1 Full/DR 00:00:32 192.168.1.38 ath0:192.168.1.37 0 0 0 192.168.0.3 1 Full/Backup 00:00:33 192.168.1.6 eth0:192.168.1.5 0 0 0 192.168.0.4 1 Full/Backup 00:00:38 192.168.1.1 eth1:192.168.1.2 0 0 0 routerB> routerB> show ip ospf interface ath1 ath1 is up Internet Address 192.168.1.13/30, Broadcast 192.168.1.15, Area 0.0.0.0 Router ID 192.168.0.2, Network Type BROADCAST, Cost: 20 Transmit Delay is 1 sec, State DROther, Priority 1 No designated router on this network No backup designated router on this network Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5 Hello due in 00:00:02 Neighbor Count is 0, Adjacent neighbor count is 0 routerB> ### FIGURE B - ROUTER B ### Both routers sent their Hello packets, yet they were unable to "see" each other. I've truned on logging at RouterB only to see there is some problem with CRC of Hello packets. Log entry looked like: ospf_check_sum(): checksum mismatch, my AAA, his BBB This comes from quagga-src/ospfd/ospf_packet.c I've tried different versions only to get same results. Link, where this problem occured, is running stable without any probelms. The fix is easy. Edit '/etc/quagga/ospfd.conf' at both ends and add following at problematic interfaces: ### OSPFD.conf ### interface ath1 description link-somewhere ! added line follows ip ospf network point-to-point ip ospf cost 20 ### OSPFD.conf ### May be there is some problem with transmiting broadcasts, yet it's really strange as this problem is unique to one link. Both, RouterA and RouterB, routers have N links to other [ospf] routers. No problems of such kind. I've also tried increase number of IGMP membership: echo 100 > /proc/sys/net/ipv4/igmp_max_memberships synchronizing time to every second, but nothing helped. Except specifying network type at problematic interfaces. There might be problem somewhere in kernel, yet - I don't know. I hope this will help somebody else :)