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

)?

评论

您能否澄清一下您所担心的确切情况,这将为您提供不匹配OSPF或EIGRP MTU的原因?

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

#1 楼

皮特说:


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


简短回答

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

路由协议必须从路由器的转发路径中删除任何潜在的不匹配的MTU。 br />
我可以想到三种可能的情况,其中您会发现IGP MTU不匹配...



第2层的意外MTU不匹配(例如,如果有人意外地使串行线路上的MTU不匹配,或者不同的供应商在同一介质上具有不同的默认MTU)。
匹配第2层MTU,但是路由器实现中的错误会错误地计算所需的接口IP MTU

故意的MTU不匹配

IP MTU与第二层MTU直接相关(至少对于上述情况1)。不管我们做什么,我们总是要忍受缓解意外的第2层MTU不匹配所带来的问题,因为没有第2层MTU发现机制(不像IP,它具有ICMP错误消息)。这意味着我们必须尽一切可能避免Layer2 MTU不匹配,即使上述案例2和3是缓解案例1的问题的受害者。也就是说,仅仅因为我们允许不匹配的MTU来封堵所有流量。

我们始终仅限于链路上最小公分母。大于接口接收MTU的帧将被静默丢弃,并且路由器无法知道MTU是故意不匹配还是偶然发生。

因此,EIGRP和OSPF需要有效的第2层邻接关系注1(包括MTU)。 />在RFC 2329中引用John Moy(OSPF的作者)第4页:


所有IP转发的问题
也引用他的话OSPF邮件列表:




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

路由协议最重要的功能之一是构建有效的FIB / CEF /转发表。该表将通过路由协议获得的信息映射到第二层重写信息。在同一物理链路上的那些第2层关系就是思科所说的邻接关系。

评论


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

– Pete
15年3月17日在15:01

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

–迈克·彭宁顿
15年3月17日在15:08



#2 楼

根据OSPF RFC 2328(10.6):


如果“数据库描述”数据包中的“接口MTU”字段
表示IP数据报的大小大于路由器的大小/>在接收接口上接受接收而没有碎片,则数据库
Description数据包被拒绝。而不是分散他们。碎片化的流量增加了设备的CPU负担,并降低了性能,因为碎片化的需要需要额外的流量。考虑到动态路由协议的目标是它是稳定且快速收敛的协议,应消除与那些目标相反的任何东西。设置MTU匹配的要求有助于实施此性能要求。

更多来自OSPF RFC:

评论


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

–迈克·彭宁顿
15年3月16日在18:31

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

–罗伯特
15年3月16日在18:34

从RFC本身开始:OSPF协议使用IP协议89直接在IP上运行。

–罗伯特
15年3月16日在18:37

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

–迈克·彭宁顿
2015年3月16日18:39



那么,如何支持不匹配L2分段的OSPF MTU?撇开所有RFC,答案很简单...不匹配的MTU在layer2处被破坏

–迈克·彭宁顿
2015年3月16日18:45