APP下载

不可忽视的MTU

2015-12-03

网络安全和信息化 2015年5期
关键词:离线字节路由器

相信做过网络管理的朋友对“MTU”应该都不陌生,我们也经常在家用路由器上见过路由器WAN口的MTU设置选项。我们先来引入一下MTU的定义:最大传输单元(Maximum Transmission

Unit,MTU)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等)。一般来说,MTU只是决定数据传输过程中最大数据包的大小,并不会影响网络通断。但是对于一些特定的设备来说,MTU可能决定着数据传输的成功与否。笔者与同事们在近期的一个无线认证接入项目中就因忽视了MTU而遇到了麻烦,下面介绍一下我们处理这一MTU故障的经过。

先来介绍一下这个无线认证接入项目,后台是无线认证系统(Portal)和AP硬件控制器(AC),用户端则是路由器和AP配合使用。网络拓扑结构如图1所示。

图1 网络结构

故障现象

设备全部配置好之后,AP可以正常Ping通网关和AC,在AC本机上可以Ping通AP所在的路由器,表示网络通畅。但是在AC管理界面上始终显示AP离线;而每次重启AP后,AC上显示的AP离线时间就会重置。因此,从AP到AC之间的链路已经打通,但应是某种协议不匹配或者设备不支持导致AP无法正常上线。

故障排查

为了排查故障点,首先,我们将和路由器和AP直接挂在AC下面,通过路由器上设置静态IP与AC互联,这时AP可以正常上线。之后,我们将路由器与AP放回用户端,但仍使用同样的静态IP,通过二层VLAN与AC互联,当链路配置完毕后,AP仍能正常上线。最后,将路由器恢复至PPPoE模式后,AP离线。这样看来,离线原因应在PPPoE上。

经过对PPPoE报文抓包分析,我们发现,AP发送给AC的第一个报文中,信息是完整的,而随后的所有报文信息均有缺失。这样就导致AP上报的信息中,只有第一个数据包完整传递到AC上,所以会有一个上线提示;而随后的数据包,包括keepalive报文均不能正常送达,以致AP一直显示离线。每当AP重启后,重新发送的第一个数据包又能完整送达,导致AP离线时间重置为零。

故障分析

为什么会发生报文缺失的情况呢?这就要从链路传输的“MTU”说起了。在TCP/IP协议中,将要传输的数据分成较小的组进行传输,每个组的大小为576字节。而Windows默认的字节为1500,这是以太网的分组标准。因此,对于时下大多数使用以太网的局域网来说,最大传输单元的值是1500字节。如果在IP层要传输一个数据报比链路层的MTU还大,那么IP层就会对这个数据报进行分片。一个数据报会被分为若干片,每个分片的大小都小于或者等于链路层的MTU值。当同一网络上的主机互相进行通信时,该网络的MTU对通信双方非常重要。

但是像PPPoE这样的系统会减小这个数值,这就使得在使用最大传输单元发现方法时可能会产生这样的结果:一些处于配置不当的站点变得不可达了。比如这里AP发送给AC的报文,AP默认的MTU是1500,而PPPoE的MTU则是1420,这样数据包在经过会PPPoE系统传输时会被重新分片打包,导致从第二个数据包开始就出现数据错位,以致随后的信息丢失,出现AP不能上线的情况。

故障解决

找到问题之后,解决办法就出来了,我们请设备商的工程师给AP重做了一个软件版本,新版本可以自定义AP的MTU值,将其改为1420以下,这样数据包就可以完整传输了,而AP也可以正常上线。因此,当我们遇到类似故障,数据链路正常但某种协议不通时,可以检查一下不同协议的最大传输单元是否一致。

猜你喜欢

离线字节路由器
买千兆路由器看接口参数
维持生命
No.8 字节跳动将推出独立出口电商APP
异步电机离线参数辨识方法
路由器每天都要关
路由器每天都要关
浅谈ATC离线基础数据的准备
No.10 “字节跳动手机”要来了?
FTGS轨道电路离线测试平台开发
离线富集-HPLC法同时测定氨咖黄敏胶囊中5种合成色素