Answers:
皮特说:
我想不出需要这种情况的情况。我只是想知道什么逻辑使这成为这些路由协议中的明确检查。
路由协议是Internet上一些最基本的构建块。我们需要它们在每种可能的情况下都非常可靠。在不匹配的MTU上建立OSPF或EIGRP邻接关系并没有好处。
路由协议必须从路由器的转发路径中删除任何潜在的不匹配的MTU。
我可以想到三种可能的情况,其中您会发现IGP MTU不匹配...
IP MTU与第二层MTU直接相关(至少对于上述情况1)。不管我们做什么,我们总是要忍受缓解由于无意的第2层MTU不匹配而引起的问题,因为没有第2层MTU发现机制(与具有ICMP错误消息的IP不同)。
这意味着我们必须尽一切可能避免Layer2 MTU不匹配,即使上述案例2和3是缓解案例1的问题的受害者。除非我们解决案例1,否则案例1具有巨大的含义。也就是说,仅仅因为我们允许不匹配的MTU来阻塞所有流量。
我们总是受限于链接上的最小公分母。大于接口接收MTU的帧将被静默丢弃,并且路由器无法知道 MTU是故意不匹配还是偶然发生。
因此,EIGRP和OSPF需要有效的第2层邻接关系注1(包括MTU)。
如果不匹配MTU,后果将是什么?
在RFC 2329中引用John Moy(OSPF的作者)第4页:
还从OSPF邮件列表中引用他:
注意1:有些人误将邻接的含义严格理解为IP路由协议的概念。该主张错过了以下事实:所有内容(包括IP)都需要匹配的Layer2 MTU,Layer2域才能正常工作。
路由协议最重要的功能之一就是建立有效的FIB / CEF /转发表。该表将通过路由协议获知的信息映射到layer2重写info。思科也称同一物理链路上的那些第2层关系为邻接关系。
根据OSPF RFC 2328(10.6):
如果“数据库描述”数据包中的“接口MTU”字段指示的IP数据报大小大于路由器可以在接收接口上接受的IP数据报大小,而不会造成碎片,则拒绝“数据库描述”数据包。
简单的答案是,该标准旨在删除太大的数据报,而不是对其进行分段。碎片化的流量增加了设备的CPU负担,并降低了性能,因为碎片化的需要需要额外的流量。考虑到动态路由协议的目标是它是一种稳定且快速收敛的协议,应消除与那些目标相反的任何东西。设置MTU匹配的要求有助于实施此性能要求。
OSPF RFC的更多内容:
4.3. Routing protocol packets
The OSPF protocol runs directly over IP, using IP protocol 89.
OSPF does not provide any explicit fragmentation/reassembly
support. When fragmentation is necessary, IP
fragmentation/reassembly is used. OSPF protocol packets have
been designed so that large protocol packets can generally be
split into several smaller protocol packets. This practice is
recommended; IP fragmentation should be avoided whenever
possible.