西西河

主题:【原创】寻找小强 -- 数据传输故障调查实例 一 -- 萨苏

共:💬99 🌺346
全看分页树展 · 主题 跟帖
家园 【原创】寻找小强 -- 数据传输故障调查实例 三

看着这排锯齿,老萨一声冷笑,这东西看着眼熟阿。

锯齿的含义就是数据传输不能稳定保持在某个速率,忽快忽慢。这种问题的起因往往是数据传输中丢包造成的线路不稳定。

对啊,想想如果运军火的列车一路上老丢东西,货运单永远对不上号,那整个运输计划能不乱么?这就是铁道游击队厉害的地方。

前面处理这个问题的工程师表示他也有同样的看法,但是日本到对端的国际线路上,数据包的传送丢失率很低。

巴嘎,你的,军人的不是,战术的不懂,土八路不在铁路上下手,难道他不会在车站里头截么?

一句话惊醒梦中人。这网络上呢,讲究的是铁路警察各管一段 – 比如这位工程师所属的部门,只管国际之间的线路 – WAN,这相当于铁道线;另有部门负责公司内部的网络连接 – LAN,这相当于车站;还有部门专门负责服务器,这相当于军火仓库。这样的分工协作,可以各自发挥专长,但也容易造成缺乏换位思考的现象,

点看全图
外链图片需谨慎,可能会被源头改

彩云追月:听说鬼子已经盯上车站这块儿。。。 忘情:你是说走私臭豆腐那事儿咱先不干了?

虽然数据传递实际上既要跨越国际线路也要通过内部网,任何一段都可能出现丢包,但一般来说,国与国之间的线路出问题,大家想的多半还是国际线路上有没有故障,因为那毕竟好几千里地呢,从距离上看,公司楼里头的网络基本可以忽略不计。可是如果吃过几次苦头,就会考虑问题是否可能出在公司内部网上。因为虽然国际线路很漫长,但光缆埋在地底下很少有人会去动它,而公司内部,经常有些多动症的家伙冲着各种设备一直在改,造成种种事端。

点看全图
外链图片需谨慎,可能会被源头改

和平阿姨:小伙子,这影射城主的话儿可不能乱说

甚至,我都能猜测出问题可能出在什么地方。

于是萨一个电话把负责内部网的同事也从被窝里拎出来,让他测试相邻设备之间的连结有无问题。这是个大连来的小伙子,刚毕业,处理故障经验不太多,但挺肯干的,几分钟就把结果拿出来了。

这种测试的方法很简单,上一部分说过,公司内部的连结是服务器 –〉Switch -> 防火墙-〉Switch ->路由器。这个测试就是要求他从每个设备对邻居作Ping,来看结果。

在路有器和Switch之间的Ping结果有些值得注意的地方,有兴趣的朋友可以看看 – 不是这一行的看不懂也不要紧,注意最后一段就可以了。(我把真正的地址用xxx代替了)

>ping

Protocol [ip]:

Target IP address: xxx.xxx.xxx.xxx

Repeat count [5]: 123

Datagram size [100]:

Timeout in seconds [2]:

Extended commands [n]:

Sweep range of sizes [n]:

Type escape sequence to abort.

Sending 123, 100-byte ICMP Echos to xxx.xxx.xxx.xxx, timeout is 2 seconds:

!!!.!!!!!.!!!!!!.!!!!!.!!!!!.!!!!!.!!!!!!!!.!!!!!!.!!!!!.!!!!!.!!!!!!!

!.!!!!!!!!!!!!.!!!!!.!!!!!!!!.!!!!!!.!!!!!.!!!!!.!!!!

Success rate is 86 percent (106/123), round-trip min/avg/max = 1/3/31 ms

问题,就出在加重的部分。网络Ping测试结果中,“!”表示通,“.”表示不通,这个结果说明了什么呢?可以看到123个测试包中只有86%(106个)回应,其他的都被丢弃!据此我判断路由器与Switch之间通信存在问题。

如果是这样,那这条线路上的故障就迎刃而解了 – 远端的数据跋涉千里到达本地的时候并无问题,但通过路由器传递向服务器的时候,在通过Swtich数据交换机时丢包,所以降低了传输质量,引起速度锐减。

点看全图
外链图片需谨慎,可能会被源头改

说,皇军饭盒里的臭豆腐,是不是你放的?!

这个结果在我意料之中。路由器和Switch数据交换机都有高速以太网端口,是用网线直接连结的。这种构造的连结上,经常会出现一种错误,结果正是造成丢包。(stam69兄弟提到了这种可能,行家阿)

什么问题呢?这就是Cisco两台设备之间连结时,端口Duplex参数的设定不匹配错误。

Duplex参数是干什么的呢?它是用来决定网络端口怎样工作的,可以设成三种 – Full(全双工), Half(半双工)和Auto(自动设定)。

Full全双工的意思是这个口收数据的时候同时也能发数据,是复线铁路,进出互不影响。Half半双工的意思是这个口收数据的时候只能收,发数据的时候只能发,是个单线铁路,效率低一点。

点看全图
外链图片需谨慎,可能会被源头改

网络端口的全双工和半双工工作方式说明示意图,上面是半双工,下面是全双工

今天大多数网络端口都是全双工的,也有少数只能半双工工作。

两个端口相连的时候,双方的工作方式必须一致,你是Full,我也得是Full,你是Half,我也得是Half。

否则双方之间的数据通讯就会大量出现丢包。

做IT的里头,象老萨这种棒槌不是很多,大多数干这行的家伙都属于浑身是消息儿,一按就会动,眼睛毛都是空的。假如端口的配置只有Full和Half两种,多半不会有人弄错。那是,跟男浴池女浴池一样,那也能走错么?

问题是Cisco公司比老萨还棒槌,它规定,Duplex的设定呢,除了Full,Half以外,还有一种叫做 – Auto。

按照Cisco公司的说法,这Auto(自动设定)可是个好功能。比如你不熟悉端口的技术,弄不清该设Full还是Half的时候,两边就设成Auto,两端的机器会自动将双方之间数据传递的工作方式调整成都是Full或都是Half,于是,双方就可以流畅通信了。

好功能吧?

嘿嘿,问题就出在这个“好功能”上。

Auto(自动设定)的这种功能,会让人想当然地认为,既然两端都设成Auto可以,那一端设成Auto,对端设成Full,Auto一端就应该也能把自己的工作方式调整成Full吧,如果一端设成Auto,对端设成Half,Auto一端也应该能把自己的工作方式调整成Half吧?

错!

也不知道Cisco公司怎么想的,按他们的设计,如果对端是Full,自己是Auto的时候,会把工作方式设成Half,如果对端是Half,自己是Auto的时候,会把工作方式设成Full,刚好弄得双方不匹配。

怎么拧劲儿怎么来,难道这样设计的老板是吃剑麻长大的?

于是,路由器和Switch连结的时候,往往换个口就会出现大量丢包现象,因为Switch上各个口的工作方式,出厂设置都是Auto,假如路由器设的不是Auto,随便换个口双方会不匹配。

这种事情我们排故障的时候遇到很多次了。

点看全图
外链图片需谨慎,可能会被源头改

好你个小强,穿上马甲就以为咱找不着你了?

看着测试结果我把自己的设想和工程师说了,大家都说太阳底下无新事,八成是这问题。

萨对此也颇为自信,让负责内部网的工程师查查设置。

五分钟以后,人家说 – 老大,不对阿,两边设的都是Full…

80%的支持率一下子摔到了零。。。

嗯?如果不是工作方式设错了。。。那肯定是网线有问题!

这句话也不全是为了面子,确实有网线使用不当,被重物压坏等事情发生过的,网线受损造成的丢包也会出现同样后果。

然而,这样说着,我的眼睛扫过刚刚取下来的网络端口信息,心里往下一沉。

sh int gi0/0 | in err

0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored

107527195 packets output, 1536956913 bytes, 0 underruns

0 output errors, 0 collisions, 0 interface resets

0 babbles, 0 late collision, 0 deferred

如果网线出了问题,根据我的经验,网络端口上应该出现CRC错误报警,而这里CRC错误数居然是0!

点看全图
外链图片需谨慎,可能会被源头改

上当了,小强不在这儿!

这就说明网线应该是好的。

可要是都没错,怎么Ping会有那么多丢包呢?

这时候,有个工程师在说 – “要不,把网线换一根试一下?”

“不行啊,上面还有很多数据在跑,现在可不能换。。。”

听到这句话,我忽然若有所悟,拿过Switch的工作情况细看。

这一看看出了个沮丧的结论 – 嘿,从一开始我就判断错了!

点看全图
外链图片需谨慎,可能会被源头改

这回可栽啦!

[待续]

元宝推荐:爱莲,
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河