This blog post will introduce in detail the problem of the adjacent relationship caused by inconsistent MTU and the solution.
1. MTU inconsistency
(1) When to pay attention to MTU
Starting from the Exstart status, the OSPF process follows the Interface MTU field in the DD message from the neighbor.
(2) When to ignore DD
If the value of the Interface MTU in the received DD message is greater than that of the local Interface MTU, the DD message is ignored.
(3) MTU inconsistent results
When the Interface MTU in the received DD is inconsistent with the local Interface MTU, the adjacent relationship is stuck in the Exstart/Exstart or Exstart/Exchange status.
General Master judgment steps
(1) We are not Slave -- Compare Rouer-ID
(2) We are the Master -- receive DD and send Seq Number locally for implicit confirmation
General Slave judgment steps
(1) We are the Slave -- compare the Router-ID
It is precisely because of the difference in the above judgment steps that the MTU is inconsistent, there are two situations
2. Exstart/Exstart
Statement:
The Master/Slave described below are the results of general election under Macro conditions. A more correct description should be the device where the Master or Slave was originally elected
(1) When
For DD messages sent by the Master, the MTU value of the Interface is greater.
(2) Description
① Slave sends a DD message to the neighbor after determining the interface role
② The Master receives the DD message from Slave (which has not been implicitly confirmed). The Interface MTU value in the DD is smaller than that of the local Interface MTU. The console prompts the following:
Nbr 1.1.1.1 has smaller interface MTU
First DBD and we are not SLAVE
Although the console prompts, but still read the message content, try to determine Master/Slave
In this case, the adjacent relationship between the Master and Slave is Exstart.
③ At the same time, the Master will also send the DD message to Slave, but because the Interface MTU value of the DD message is greater than the local Interface value of Slave, Slave ignores this message
The console prompts:
Nbr 2.2.2.2 has larger interface MTU
Because the DD content is not read, in fact, Slave cannot even determine itself as Slave locally, and will not reply to the DD Seq Number sent by the Master.
In this case, the adjacent relationship with the Master is Exstart.
④ Because Slave keeps ignoring the DD sent by the Master, it is equivalent to failing to receive a reply to the DD sent to the Master. The local server will re-transmit the First DD.
⑤ The Master has never received the DD message with implicit confirmation. If the message sent to Slave is not replied, the Master will re-transmit the DD message.
6. The two devices are stuck in the Exstart/Exstart status.
3. Exstart/Exchange
(1) When
The Interface MTU value of the DD message sent by Slave is greater.
(2) Description
① The Master receives the DD message from the Slave. Because the MTU value is greater, the DD message is ignored locally.
Because this DD message is always ignored, the local data will be retransmitted.
In this case, the Slave status is Exstart.
② Slave receives the DD message from the Master, and its MTU value is smaller, so the message is valid
③ Compare the Router-ID to locally confirm that the Server Load balancer is a server Load balancer instance, and send the DD message with the LSA header to the Master instance, including implicit confirmation.
The console prompts:
Nbr 2.2.2.2 has smaller interface MTU
Send DBD to 2.2.2.2 on FastEthernet0/0 seq 0x103B opt 0x52 flag 0x0 len 32
NBR Negotiation Done. We are the SLAVE
On the Slave side, set the Master to Exchange
④ In the end, the two devices are stuck in the Exstart/Exchange status.
Note:
The default retransmission time of a DD message is 5 s.
4. Solution
(1) modify the MTU value of the interface
Router (config-if) # ip mtu
Value Unit: Byte
Value Range: 68 ~ 1500
1500 is the interface Default Value
(2) Ignore MTU value inconsistencies through Configuration
Router (config-if) # ip ospf mtu-ignore
Ignore the DD message when receiving a MTU with a larger value. Therefore, you can use this command on a side with a smaller MTU value on the interface.