Somehow I must be going nuts ...
I'm trying to set up a backup link. Currently, all traffic on the backbone is routed via OSPF-learned routes, which works fine. I have now added a backup line, which is also OSPF enabled. "show ip ospf nei" correctly shows all OSPF neighbors that should be there, none that shouldn't. Network looks something like this (simplified):
R1----------R2 | | | | | | R3----------R4
R1-R2 and R3-R4 are 100M LAN links, R1-R3 is a POS, R2-R4 a 2M link.
When R1-R3 goes down, it takes about three seconds for R1 to announce the loss of OSPF neighbor to R2. R2 then adjusts its routing to use R2-R4 for the link to the other side, and announces the routes. R1 accepts the routing changes - then, R2 switches back to using R1 as gateway to the outside ... (whereas R1 still uses R2 as gateway to the outside).
WTF is going on here? R1 is getting the route from R2, so why isn't R2 using what it's announcing instead of switching back to R1???