背景介绍
问题现象
故障分析
解决方案
相关命令
参考文档
在日常维护中,我们经常会遇到MTU mismatch的问题。有时尽管两端路由器或者交换机的端口MTU是一致的,但是还是会有大包PING不通,协议建立不起来的问题出现。这个时候,需要注意到,在设备间是否存在其他中间设备(如传输,L2交换机等。。),这些中间设备的MTU是否和两端路由设备一致。 下面让我们来看一下由于MTU mismatch 对于isis 协议的影响。
如上图所示,R1 R2为两台路由设备,端口的MTU设置成为9178.中间设备的MTU最小为9160.R1 R2 端口上的配置如下:
interface GigabitEthernet0/0/4 dampening description To US-SJ-SJC-F-2.CN2 GE-1 mtu 9178 <<<<<<<<<<<<<<<<<<<<<<<<<<< ip address 59.43.248.42 255.255.255.252 no ip redirects no ip directed-broadcast no ip proxy-arp ip pim sparse-mode ip router isis cn2 ip route-cache flow sampled input load-interval 30 carrier-delay msec 60 no negotiation auto mpls label protocol ldp tag-switching ip isis circuit-type level-1 isis network point-to-point isis metric 2000 level-1 isis password 59.43.248.40 isis hello-interval 3 isis three-way-handshake ietf no isis hello padding <<<<<<<<<<<<<<<<<< service-policy output pmOutput-Eo hold-queue 1500 in hold-queue 1500 out
ISIS 协议,缺省的行为时要按照端口的MTU大小去发送hello包的。这样做的好处有两点,1 在早期就能检测出大包传输不通的问题 2 MTU mismatch的问题。
当端口配置了“no isis hello padding”的时候,意味着取消了hello包被padding乘物理端口MTU size的行为,这样做的好处是能节省带宽。在一些比较新的IOS里,这个功能是被缺省打开的。下面让我们来分析一下MTU mismatch带来的问题。
当网络一切正常,R1和R2之间的ISIS 已经UP后,客户基于业务需求,更改了R1和R2的MTU 从1500改为9178,之后发现一切正常。运行一段时间后,R1到中间设备的物理链路出现过一次flapping, 之后ISIS始终无法建立起来。客户检查配置,R1 R2两端MTU 都是9178。同时,端口上都已经enable 了“no isis hello padding”,但是邻居就是无法建立成功。客户将两端R1 和R2的MTU 重新设置回1500,ISIS 建立成功。最后,客户又将R1 R2的MTU从1500改回到9178, 发现ISIS还是UP的,业务恢复,一切正常。
从上面的现象可以看出,显然这个问题是和MTU有一定关系的,首先从问题发生时的状态入手,可以看出MTU已经match了,disable了hello padding了,为何isis 的邻居还是建立不成功呢。 “no isis hello padding”工作的前提是isis邻居已经成功建立了,之后交互的hello包不在padding乘物理端口的MTU大小了,但是在ISIS邻居建立过程的前5个hello包,还是要被padding的,所以按照上图所示,前5个包,发出去的是9178,中间过程MTU是9160,过不去,这就导致了为什么isis的邻居建立不成功。后来客户把MTU调整回1500,hello 肯定是可以通过的,这样邻居就建立成功了,成功以后的hello 包都不在padding了,这也是为什么客户重新把MTU从1500调整回9178后,邻居没有断,依然是up的原因。
Show clns neighbor Debug isis adj-packets Show interface type X/Y/Z Extend ping with specific Size (this method could help you to detect the max size which is supported by the whole path)
MTU Mismatch Problem in IS-IS
Intermediate System-to-Intermediate System Protocol
CLNS 快速查阅手册