由MTU设置值不当引起的诡异的网络错误

N天没有写日志,本来是有两篇日志可以写的,但是就是因为这个网络故障让我发表不了文章,于是积压了两篇日志。解决了这个问题之后,又冒出来了这篇文章。虽然现在问题是解决了,但是其中还有很多细节我没弄清楚到底是怎么回事,不过大体上根本原因是基本弄明白了。


基本情况描述



我在家里有一台服务器,在这里称之为YTS,用电信的上下行对等的“ADSL”,速度1Mbps。家里另外还有一台古董电脑,2000年的主流机型,因为还能用来上上小网,所以就弄了一个家用路由组了一个局域网供两台电脑上网。

既然是服务器,当然要对外提供服务,于是做了80、21、22、3389等端口的映射。处于安全,没有设置DMZ,PNP关闭,正好把路由当成一个简易防火墙。YTS操作系统是Windows 2k8。

我目前人在桂林,用的是Ubuntu 9.10,寝室四个人用一条上下行不对等的2Mbps ADSL,所以我自己的机子也是处于内网中。但是我设置了DMZ到自己的主机,这样我也可以算是外网机器。


故障出现




问题之一



这个故障出现得很不是时候,如果早出现或者晚出现一些就不会让我在错误定位上浪费那么多时间了。因为前次的/home分区灾难还有一些遗留问题,我索性重装了系统,重装以后的几天还用得好好的,但是也就几天而已,之后,就开始出现诡异的问题了。

首先发现的问题是访问位于YTS上的bbs.bbxy.net不正常了。在访问阅读帖子页面时,火狐狸会假死掉,而且死掉的只有一个网页标签,其他标签都正常,表现情况就是阅读帖子的那个标签页无视所有鼠标和键盘操作了。嗯,其实是标签页假死而不是火狐狸假死。我试图用其他浏览器访问,虽然不会假死,但是TinyMCE的编辑器却没能显示出来。TinyMCE不显示就算了,使用纯文本页可以发贴的。而现在的情况是,就是连发贴都不行,写好帖子内容以后按发布,浏览器已经显示正在等待回应了,但是N久都没有反应。这是问题之一。


问题之二



这个细节记不太清楚了,总之大概情况就是我有一个季度的新番动画,不记得是想从桂林往YTS上传还是想从YTS上下载回来了。当时的问题是,用FIleZilla通过SFTP连上去,普通的指令都能正确返回结果,目录也能列出来,但是就是无法启动数据传输。明明都已经创建了一个0字节的文件了,但就是一丁点数据都没有传输到,以至于FileZilla一直提示对于这个0字节的文件是要覆盖还是要续传……。

再到后来,发现如果传输小文件的话是能成功的,但是在传输大文件的时候就无法启动传输了。

期间还有一个现象误导了我的判断。FileZilla是使用SFTP连上去的,在FileZilla传输失败以后我用GNOME自带的gvfs连上去,随便传输了一个文件,竟然传输成功了。于是我就认为这是FileZilla的问题。而实际上,我用gvfs时传的是一个小文件,所以传输成功,这点到最后问题快要解决了我才意识到。幸好后来我又用gvfs传了一个文件,结果失败了,要不我真的就以为是FileZilla自身的问题了。


问题之三



问题之三是我最后定位错误的关键,也是导致不能发日志的关键之处。那就是,在这里写好日志以后,按下“发布”的反应和在bbs.bbxy.net上发布不了帖子的现象一样。不管是在Ubuntu还是在专门用于玩游戏的Windows下都没用。而据之前的测试,在Windows下浏览bbs.bbxy.net的阅读帖子页面是完全正常的,发布帖子页很正常。


问题之四



用3389连回YTS,刚开始时一切正常。但过了一段时间后远程桌面就不响应我的鼠标和键盘操作了,而图形还是源源不断地传给我,任务管理器中的信息一直在变化,但是却无视我的鼠标和键盘操作。无奈,我只好关掉rdesktop重新连接。


问题之其他



其他还有一些零零碎碎的小问题,现象基本上上面的一样。综合考虑这些小问题最后我才认定错误是出在YTS那边的网络上,而非我这边的Ubuntu(期间为了确定故障我还重装了几次系统)。比如说,bbs.bbxy.net的登录页面页没法登录啊,我能使用SSH往另一台位于电信机房的服务器上传输文件啊,这些小问题都说明了问题的出现必然于YTS有关。


问题定位和解决



首先我认为是Ubuntu的问题,因为刚刚重装了不久就出现了这个问题,于是我就用LiveCD进去。杯具的是,因为我贪快求急,没有完整地在LiveCD上测试,导致测试结果表现得在LiveCD上像是很正常的样子。后来我不得不又反复进了几次LiveCD。

“认定”这些问题在LiveCD上都不会出现以后,我就判断问题出在我现在的Ubuntu上,这是在叉路上选择了歧途。于是我重装Ubuntu,当然用户配置文件是保留的。重装完毕之后问题依旧,我奇怪之后就又认定问题出在程序配置文件上。出现问题的程序有火狐狸,FileZilla(下称为文件嗞啦好了)以及gvfs。首先我就把火狐狸的配置文件给移动到另外的目录去,然后启动火狐狸,哎呀竟然能正常访问阅读帖子页面了。杯具在这里再次出现,因为我没有做发贴测试,所以认为火狐狸已经完全表现正常了,最后就认定这些问题都是出在用户配置文件上。这样判断以后,我又把文件嗞啦的配置文件给删掉了。本以为表现正常的文件嗞啦,却没有能像我预期的那样正常工作。这下我哔——了,到底是什么问题啊。这时我已经开始盲头虫了,差点就想把所有的用户配置文件删掉,实际上后来页确实这么做了,不过没有删掉,而是创建一个新的用户来测试,但是问题依旧。

最后到晚上了,我也没心思去弄了,于是跑去不知道做什么了,但是就是在做什么的时候,我重新回顾了一次所有遇到的问题,最后发现这些问题都是和YTS相关的,也就是说问题很有可能是出在YTS那边而不是我这边。这样,我又跑回YTS去看路由设置,看了所有设置都觉得不会有什么设置能影响到网络。最后看到了一个可疑的东西,MTU。好像我当初把这个MTU改成了1492,会不会是这个问题?其实我心里也没底,于是谷歌一下,竟然运气很好地发现了一篇文章《MTU设置引起的网络故障》。对照上面的方法,说是因为MTU太大了,所以哔——嗞——以后就会导致大文件传输失败,而小文件传输正常。哎呀这和我的现象很像嘛。于是按照那篇文章上的方法,SSH回去到YTS,ping YTS路由,确定了最小MTU以后,修改Windows的MTU大小,重启服务器。最后再用火狐狸去访问帖子浏览页面,完全正常了,TinyMCE也能显示出来了。

刚刚解决这个问题我就来发文了,其实就是刚刚才解决的,看来这篇文很长,上千字了吧。发现有时打字也是很无聊的啊,更不用说手写字了。


查返(Trackback)http://blog.chinaunix.net/u2/82268/showart_2037421.html
查返页备份请看第二页



This entry was posted in 偶的动态 and tagged , , . Bookmark the permalink.

6 thoughts on “由MTU设置值不当引起的诡异的网络错误

  1. “最后到晚上了,我也没心思去弄了,于是跑去不知道做什么了,但是就是在做什么的时候,我重新回顾了一次所有遇到的问题……”

    去做了哔——的事~

    不过为啥会跑去更改MTU值?这东西基本上没接触过…

    • 那个是草稿的说,本来几天前就应该发布的,这是积压日志之一
      貌似可能吧,不知道协议是怎样的所以无从判断的说

发表评论

电子邮件地址不会被公开。

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>