OSPF neighbor state stuck in Exstart if MTU mismatch

OSPF neighbors are in the 2-Way or Full state when normal; 2-Way is just a neighbor relationship, and Full indicates that LSDB synchronization is complete in the Adjacency relationship. However, there are times when the neighbor state gets stuck in the Exstart state.

The main reason why neighbor gets stuck in Exstart state is MTU mismatch. The Exstart state is the state in which the neighbor is deciding which side to start from when exchanging DD packets; DD packets contain Interface MTU information, and if the Interface MTU is mismatched, the neighbor state will not proceed beyond Exstart.

Figure Stuck in Exstart state if MTU mismatch
Figure Stuck in Exstart state if MTU mismatch

LSAs are advertised in LSU packets on OSPF. If there are many LSAs to be advertised, the size of the LSU packet may become large and may be separated; if the MTUs do not match, the separated LSU packets may not be exchanged properly. Therefore, the MTU must be matched between neighbors.

Example of getting stuck in Exstart state

Let’s look at a specific example of a neighbor getting stuck in the Exstart state in the following network diagram.

R1 Configuration

The configuration related to OSPF on R1 is as follows: MTU of Fa0/0 on R1 is changed to 1400 bytes.

R1

interface Loopback0
 ip address 192.168.1.1 255.255.255.0
 ip ospf network point-to-point
!
interface FastEthernet0/0
 ip address 192.168.12.1 255.255.255.0
 ip mtu 1400
!
router ospf 1
 router-id 1.1.1.1
 log-adjacency-changes
 network 192.168.0.0 0.0.255.255 area 0

R2 Configuration

The configuration related to OSPF on R2 is as follows: R2 Fa0/0 MTU size is kept at default.

R2

interface Loopback0
 ip address 192.168.2.2 255.255.255.0
 ip ospf network point-to-point
!
interface FastEthernet0/0
 ip address 192.168.12.2 255.255.255.0
!
router ospf 1
 router-id 2.2.2.2
 log-adjacency-changes
 network 192.168.0.0 0.0.255.255 area 0

Neighbor state

When the MTU of R1 and R2 are mismatched, use the show ip ospf neighbor command to verify the neighbor status.

R1

R1#show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           1   EXSTART/DR      00:00:37    192.168.12.2    FastEthernet0/0

R2

R2#show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
1.1.1.1           1   EXSTART/BDR     00:00:37    192.168.12.1    FastEthernet0/0

You can see that the neighbor state stays in the Exstart state and the process of LSDB synchronization does not go ahead. You can also clearly see that the MTU is mismatched with the debug ip ospf adj command.

R1

R1#debug ip ospf adj
OSPF adjacency events debugging is on
R1#
*Mar  1 14:13:52.556: OSPF: Send DBD to 2.2.2.2 on FastEthernet0/0 seq 0x1141 opt 0x52 flag 0x7 len 32
*Mar  1 14:13:52.560: OSPF: Retransmitting DBD to 2.2.2.2 on FastEthernet0/0 [22]
*Mar  1 14:13:53.304: OSPF: Rcv DBD from 2.2.2.2 on FastEthernet0/0 seq 0x520 opt 0x52 flag 0x7 len 32  mtu 1500 state EXSTART
*Mar  1 14:13:53.304: OSPF: Nbr 2.2.2.2 has larger interface MTU
R1#u all
All possible debugging has been turned off

ip ospf mtu-ignore command

In order to avoid getting stuck in the Exstart state, the basic rule is to make sure that the MTU is the same between neighbors. By default, the MTU of the neighbors should match, but when changing the MTU, make sure that the MTU is the same between the neighbors.

It can also be configured to ignore MTU mismatch in order to avoid getting stuck in Exstart state. The command to do so is as follows.

Ignore MTU mismatch(config)#interface <interface-name>
(config-if)#ip ospf mtu-ignore

<interface-name> : interface name

The ip ospf mtu-ignore command can be configured on the router with the smaller MTU, so that you can proceed from the Exstart state even if the MTU is mismatched. However, if LSU packets are large in size, it may not be possible to exchange LSU packets properly.

If you configure the ip ospf mtu-ignore command on Fa0/0 of R1 as shown in the previous example, the neighbor state will be Full and LSDB synchronization is ensured.

R1

interface FastEthernet0/0
 ip ospf mtu-ignore

Figure ip ospf mtu-ignore command
Figure ip ospf mtu-ignore command

R1

R1#show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           1   FULL/DR         00:00:39    192.168.12.2    FastEthernet0/0

Summary

Point

  • If the MTU does not match between neighbors, the state of the neighbor will be stuck in the Exstart state.
  • To ignore the MTU mismatch, enter the following command in interface configuration mode.
    • (config-if)#ip ospf mtu-ignore

How the OSPF works