I ran into an unexpected OSPF issue during the mock lab that totally stumped me and I was hoping someone could shed some light on this.
I was working on the R3-R5 hub and spoke frame relay routers. Since we had to use only the physical interfaces and could not change the ospf network type, we're stuck using non-broadcast as the ospf network type. This then requires us to use the neighbor command under ospf to get the adjacencies going. All of the frame relay interfaces are in area 0. R4 also has a stub ethernet interface in area 0. No problems with that setup.
We are later asked to have the point-to-point serial link between R5 (the hub) and R4 (the spoke) added to ospf area 1. There is a stipulation that the serial link is not to be used unless the frame relay link goes down. We can't use the backup interface feature to do this. So my solution was to jack up the cost of the serial link well above the frame relay link to ensure traffic took the frame relay link. I also setup a virtual link across the area 1 serial link, since we would have disconnected area 0s in that case. This looked good when I set it up and no routes were using the point-to-point serial link.
This all was working just fine until I rebooted the routers. After the router reboot, my area 0 adjacencies did not come back up across the frame relay hub and spoke network. I had my neighbor statements on my hub router, and after some troubleshooting, I saw that they weren't there any more. So I went to put them back in and got the error that neighbors statements could only be used on NBMA or on other network type that is escaping me at the moment. So I double check and my serial interfaces still show an ospf type of non-broadcast. So I tried adding the neighbor command to R4 instead and I ran into the same issue there. I was able to issue the neighbor command on R3 just fine.
Further reboots did not help. The only thing that allowed me to start using the neighbor command again was to get rid of the virtual link. But that broke the ability to allow the point to point serial link to be used as a backup to the frame relay link. I just could not get this to work. The weird thing is that after I remove the virtual link and get the adjacencies up, I can re-add the virtual link again and all is good until the next reboot.
Can anyone tell me why adding the virtual link broke the ability to use the neighbor statement on the frame relay link upon reboot? Was I not using the correct solution for the problem?
I ended up just getting rid of the virtual link and taking a few point hit as a result since I would have lost lots more points not having the hub and spoke adjacencies up.