As you all know if you are configuring OSPF an adjacency will not form with a neighbour router if the MTU is different on the connecting interface of each device. I ran into this issue recently when I was configuring a neighbour ship between a Cisco 877w and a Cisco 3750 switch. The thing that threw me off when I was troubleshooting why the adjacency would not form was that I could not find any indication of what the MTU was set to for the interfaces on either device. I checked and double checked but I could not get the adjacency to form so I enabled the debug ip ospf adj, here I could see the issue on the switch
error: OSPF: Nbr 10.23.0.254 has smaller interface MTU
According to this error the MTU on the switch is bigger than the what is configured on the router (by default) so effectively the devices cannot commnuicate. No big deal right we will just change the MTU for the SVI on the switch however when trying to do this we got the following: % ip mtu is not supported on this interface
After some digging around on the internet I found that there were 3 ways to change the MTU on the c3750:
- change the system MTU (system mtu 1500)
- change the system MTU routing (system mtu routing 1500)
- tell OSPF to ignore the MTU missmatch on the interface (ip ospf mtu-ignore)
Change the system mtu will require a reboot of the device, which is not such a hot idea in a production environment. Telling OSPF to ignore the MTU could cause other problems in communication so everything I found said to use this command with care. Changing the system mtu routing was the easiest and it seemed to have the least impact as it is a global command and does not require a reboot of the device.
This morning I was playing around with the Brocade vRouter (Brocade’s vyatta acquisition) and setting up an adjacency with a cisco 3750 L3 switch. The vRouter is a guest OS in my VMware lab server where I have several of these virtual instances. I had configured the ip ospf network point-to-point network type on the SVI interface on the c3750, however somewhere along the lines I decided I would configure all my VM’s management IP’s on the same Ethernet segment (rather than put all devices on their own separate segments) so I removed the point-to-point command from the vRouter but not the switch.
Here is where things started getting weird. The adjacencies came up, both routers were in the FULL state and everything looked fine however the vRouter was not learning any routes from the 3750 (at this point the vRouter was not advertising any routes). I spent some time troubleshooting, first confirming that the switch was correctly learning routes from another physical router on my network. I checked debugs like the ospf packet and events etc but I could not find any errors or any indication that anything was wrong.
After some research I found that using different network types on each device will cause this kind of problem, I checked the vRouter’s config and there was no network type command in place, however on the c3750 I had the ip ospf network point-to-point command configured, once I removed this from the SVI I checked the route table on the vRouter and low and behold it started learning routes.
At first the reason for this did not occur to me and it is the first time I have seen it in practice. I am sure that this would have been something mentioned in the CCNP Cisco press exam guides but it just goes to show that hands on experience is vital to reinforcing concepts. I know that, now that I have seen this and resolved this in on actual gear I am going to be less likely to forget this in the future.