为什么MTU需要在内部链路状态路由协议(例如EIGRP和OSPF)上进行匹配?


10

如果尝试在不匹配MTU的情况下配置邻居邻接关系,则路由器将无法成为邻居。我以为这是为了保护路由协议免受自身攻击,但我不明白它从中节省了什么?如果不匹配MTU,后果将是什么?


您能否说明一下您担心的确切情况,这将使您有理由不匹配OSPF或EIGRP MTU?
Mike Pennington

我想不出需要这种情况的情况。我只是想知道什么逻辑使这成为这些路由协议中的明确检查。
皮特2015年

Answers:


12

皮特说

我想不出需要这种情况的情况。我只是想知道什么逻辑使这成为这些路由协议中的明确检查。

简短答案

路由协议是Internet上一些最基本的构建块。我们需要它们在每种可能的情况下都非常可靠。在不匹配的MTU上建立OSPF或EIGRP邻接关系并没有好处。

路由协议必须从路由器的转发路径中删除任何潜在的不匹配的MTU。

长答案

我可以想到三种可能的情况,其中您会发现IGP MTU不匹配...

  1. 第2层上的意外MTU不匹配(例如,如果某人意外地在串行线路上不匹配MTU,或者如果不同的供应商在同一介质上具有不同的默认MTU
  2. 匹配第2层MTU,但路由器实现存在错误计算所需接口IP MTU的错误
  3. 故意的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页

  • 所有IP转发的问题
  • OSPF问题

还从OSPF邮件列表中引用他:

John Moy-OSPF MTU不匹配


注意1:有些人误将邻接的含义严格理解为IP路由协议的概念。该主张错过了以下事实:所有内容(包括IP)都需要匹配的Layer2 MTU,Layer2域才能正常工作。

路由协议最重要的功能之一就是建立有效的FIB / CEF /转发表。该表将通过路由协议获知的信息映射到layer2重写info。思科也称同一物理链路上的那些第2层关系为邻接关系。


谢谢,迈克!我认为我缺少的部分是,通过MTU传输的数据包在发送路由器上被分段,而在接收路由器上被丢弃。
皮特

不太正确的是,不匹配的L2 MTU是配置错误,无法通过现有实现可靠地解决。OSPF唯一知道的是现有IP MTU不是对称的,但是没有有关如何修复它的信息。OSPF不支持分段,因为在情况1中,分段仍然会破坏L2数据平面,而OSPF甚至都不知道为什么存在不匹配
Mike Pennington

5

根据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.

5
EIGRP和OSPF构成了layer2的邻接关系,并且在layer2上没有IP /数据报的碎片。因此,即使标准允许,也不可能使用不匹配的MTU。
Mike Pennington

负。它们形成第3层邻接,协议通信使用IP多播(第3层)进行。如果它们在技术上形成了第2层邻接关系,则您不需要接口上的IP地址。
罗伯特

从RFC本身:OSPF协议直接运行在IP,使用IP协议89
罗伯特

2
罗伯特,您缺少思科使用的邻接的定义。请在任何Cisco路由器上查看“内部sh邻接”。CEF将所有第2层信息视为邻接表的一部分;每个条目的第二行和第三行是十六进制layer2标头信息。IP即使直接连接也需要一个连贯的layer2。
Mike Pennington

2
那么,如何支持不匹配L2分段的OSPF MTU?撇开所有RFC,答案很简单...不匹配的MTU在layer2上被打破
Mike Pennington
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.