最佳答案
OSPF要求两侧邻居的MTU要一致。这么说并没有错,因为这只是一种简单的概括性的说法。但是如果细说起来,这种说法就不够严瑾。因为MTU是在DD报文中携带的,DD报文是从exstart状态开始才交互的,而且Drother之间的最高的邻居状态是Two-way。所以MTU不同,并不影响DRother之间的建立邻居,只影响DR/BDR和其它路由器建立full状态的邻接关系。
两侧邻居的MTU不同,有时候邻居状态是exstart/exstart,有时候邻居状态又是exstart/exchange,这是为什么呢?这主要是因为OSPF并不是要求对端MTU等于本端的,而是要求对端的MTU小于等于本端的。这样一来,在两侧MTU不一致时,一端可以尝试向前再走一步。之所以并非总是有exchange状态出现,是因为DD报文交互时要区分master和salve,只有master才可以发送poll DD报文。
OSPF要求两侧MTU一致的原因。其实是担心一侧发出的报文太大了,另一侧无法接收。下面从必要性、有效性和易用性三个方面来评价这一要求。
必要性:一侧发出报文,另一侧应该能够接收。这应该是链路调试时该去保证的事情。不应该让OSPF再去操心这个事情。但是像以太网,链路层没有提供MTU自动协商的机制。所以LDP也有MTU通告功能。PPP有提供MRU协商的机制,这就让上层协议省心了。实际上cisco可以通过命令关闭OSPF对MTU的检查,而华为默认就关闭了MTU的检查。
有效性:其实OSPF要求对端MTU小于等于本端MTU,是在要求对端的MTU小于等于本端的MRU。这样对端发出的报文,本端一定能够接收。这里其实隐藏着一个前提,那就是一个接口的MRU不会小于它的MTU。注释:PPP里明确有MRU的概念,以太网通常不这么说,但是以太接口也有能够接收的最大帧长度,暂且为了方便,就叫MRU吧。
易用性:目前这样易用性不好。自动协商MTU,两侧统一使用小的MTU不是更好吗?
(0)
当OSPF邻居的MTU值不一致时,会导致邻居之间的LSA信息无法同步,造成卡在exstart和exchange状态。这是因为在OSPF邻居建立过程中,会进行MTU检查,如果发现邻居的MTU值比自己小,就会设置自己的MTU值为邻居的MTU值,以确保邻居能够接收自己的LSA信息。如果邻居的MTU值比自己大,那么自己就无法发送LSA信息给邻居,导致卡在exstart和exchange状态。为了避免这种情况发生,建议在网络中设置相同的MTU值。
(0)
暂无评论
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
暂无评论