目录

简介

DBD和MTU

DBD示例

IP OSPF MTU-Ignore命令行为

结论

简介

本文档介绍为什么最好不使用命令ip ospf mtu-ignore。

OSPF MTU和LSA打包技术说明解释了与最大传输单位(MTU)相关的一个原因，即开放最短路径优先(OSPF)邻接未达到FULL状态。

DBD和MTU

当接口MTU值较高时（例如9000），而可通过此接口转发的数据包大小的实际值为1500时，可能会发生这种情况。

如果运行OSPF的链路两端的MTU不匹配，则OSPF邻接关系将不会形成，因为MTU值在数据库描述(DBD)数据包中携带，并在另一端检查。

DBD数据包（也在RFC 2328中指定）描述了OSPF链路状态数据库的内容：

0                   1                   2                   3

0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|   Version #   |       2       |         Packet length         |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                          Router ID                            |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                           Area ID                             |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|           Checksum            |             AuType            |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                       Authentication                          |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                       Authentication                          |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|         Interface MTU         |    Options    |0|0|0|0|0|I|M|MS

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                     DD sequence number                        |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                                                               |

+-                                                             -+

|                                                               |

+-                      An LSA Header                          -+

|                                                               |

+-                                                             -+

|                                                               |

+-                                                             -+

|                                                               |

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

|                              ...                              |

RFC 2328的附录A.3.3.将接口MTU描述为：最大IP数据报的大小（以字节为单位），可从关联接口发送，而不进行分段。

当初始化OSPF邻接关系时，连接到链路的路由器会在DBD数据包中交换其接口MTU值。

RFC 2328第10.6节规定：如果Database Description数据包中的Interface MTU字段指示的IP数据报大小大于路由器在接收接口上可以接受的大小，而不进行分段，则Database Description数据包将被拒绝。

使用debug ip ospf adj命令时，您可以看到这些DBD数据包的到达。

DBD示例

在本例中，两个OSPF邻居之间的MTU值不匹配。此路由器的MTU 1600:

OSPF: Rcv DBD from 10.100.1.2 on GigabitEthernet0/1 seq 0x2124 opt 0x52 flag 0x2

len 1452 mtu 2000 state EXSTART

OSPF: Nbr 10.100.1.2 has larger interface MTU

另一台OSPF路由器的接口为MTU 2000:

OSPF: Rcv DBD from 10.100.100.1 on GigabitEthernet0/1 seq 0x89E opt 0x52 flag 0x7

len 32 mtu 1600 state EXCHANGE

OSPF: Nbr 10.100.100.1 has smaller interface MTU

DBD数据包会持续重新传输，直到OSPF邻接关系最终被破坏。

OSPF: Send DBD to 10.100.1.2 on GigabitEthernet0/1 seq 0x9E6 opt 0x52 flag 0x7

len 32

OSPF: Retransmitting DBD to 10.100.1.2 on GigabitEthernet0/1 [10]

OSPF: Send DBD to 10.100.1.2 on GigabitEthernet0/1 seq 0x9E6 opt 0x52 flag 0x7

len 32

OSPF: Retransmitting DBD to 10.100.1.2 on GigabitEthernet0/1 [11]

%OSPF-5-ADJCHG: Process 1, Nbr 10.100.1.2 on GigabitEthernet0/1 from EXSTART to

DOWN, Neighbor Down: Too many retransmissions

IP OSPF MTU-Ignore命令行为

接口命令ip ospf mtu-ignore禁用此检查OSPF DBD数据包中的MTU值。因此，使用此命令可使OSPF邻接关系达到FULL状态，即使两台OSPF路由器之间的接口MTU不匹配。

此命令是随Cisco Bug ID CSCdr20891引入的。

此命令确实会影响Cisco Bug ID CSCsk86476之后OSPF数据包的实际数据包大小。

此命令不影响传输的IP数据包的实际数据包大小，也不影响通过路由器的流量的路径MTU发现行为。使用命令可能有助于建立OSPF邻接关系，但对于大型IP数据包，通过路由器的中转流量仍然会受到影响。

在Cisco Bug ID CSCse01519之前，OSPF DBD数据包的大小限制为1500字节。这使得OSPF即使在使用OSPF mtu-ignore功能时，在MTU不匹配的情况下也能正常工作。

未使用Cisco Bug ID CSCse01519和ip ospf mtu-ignore命令后，当实际OSPF数据包大于1500字节时，OSPF邻接可能会失败。

在Cisco Bug ID CSCse01519和ip ospf mtu-ignore命令之后，在Cisco Bug ID CSCsk86476之前，可能会丢弃大（> 1500字节）的OSPF数据包。这阻止了OSPF邻接关系达到FULL状态。

在Cisco Bug ID CSCsk86476之后，如果使用ip ospf mtu-ignore命令，则路由器将回退到为OSPF数据包使用一个安全的最大MTU值。该值为1300字节。由于此值很小，这可能影响OSPF泛洪。更大的OSPF数据包对OSPF泛洪更有效。

结论

所有情况下的正确解决方案都是在接口上配置正确的MTU。该MTU值在链路两端的路由器上必须匹配。