查看: 4290|回复: 18

网络环路的分析及对策

[复制链接]
发表于 2009-4-6 15:44:38 | 显示全部楼层 |阅读模式
在这里发,没有插图,请下载附件,欢迎各位批评指正!

网络环路的分析及对策
我校的校园网络在2003进行了布线,办公室的布线成了一个难题,由于工作的变动,各办公室的教师每学期都会发生变化,多则六七人,少则一两人,每间办公室究竟要布多少网线?如按最多人设计,则造成了极大的浪费,布少了又满足不了需求,于是便采取了每间办公室只布一条网线,外加8口交换机的解决方案,这样既降低了成本,又满足了需求。但隐患也由此产生,全校分布了近50台从5口到24口不同类型、不同品牌的交换机,加之教师工作时均使用笔记本电脑,晚上要带回家使用,有时又要带到班级授课,这样网线就会被拔来插去,一不小心就容易产生环路。有一天,突然不能上网,上级文件不能接收,老师文件不能上传,各部门要求上网的电话不断。由于刚接触网络,网络知识匮乏,经验不足,花了两天多时间,采取断网的方式进行排查,终于找到了断网的原因来自环路。环路的次数多了,经验也丰富了,一般根据交换机的闪烁方式就可以判断出环路的大体位置,但这还是一种经验上做法,在接触了科来软件后,在论坛上看到关于查找环路的文章:
(图1 科来网络分析系统5.0捕获到的数据包)
从图1可知,当前网络中出现了大量相同的数据包,详细查看这些数据包,发现这些数据包的大小都是64字节、IP标识都是1872、序列号和确认号是都是完全相同的,据此,我们推断,当前网络中可能存在网络环路的现象。查看数据包的源地址是192.168.2.100,找到连接192.168.2.100的网络交换设备,发现是一个8口简易交换机,上面竟然有两个端口直接用一根网线进行了连接(可能是管理人员不小心所致),两个端口直接连接后,通过它们的数据包直接在端口之间发送,形成了网络环路。将网线拔掉,网络速度立即恢复正常,再次使用科来网络分析系统5.0抓包,无类似上面的数据包出现,问题解决。
读完此文后,顿觉眼前一亮,原来环路也可以用网络分析的方法解决, 心想以后再也不会为环路苦恼。但在一次处理环路的时候,却并不顺利。一天下午,网络变的特慢,内部用于文件传输的RTX无法发送和接收文件,由于新更换了核心交换机,指示灯的闪烁方式还不熟悉,没有及时发现是环路所致。用科来进行抓包,如图二所示,可以发现有几台机器发包/收包过大,达到了443067,于是问题原因曾经被误导向发包/收包过大的主机,怀疑其由于病毒/蠕虫所为,于是首先停掉了发包/收包比过大的机器,结果故障依旧,又停掉了流量较大的台机器,故障还是没有排除。由于流量过大,数据包分析中的数据被冲掉,没有提供分析的数据,因此没有对数据包进行分析。最终还是凭以往的经验,大致判断可能是环路。事后我很是疑惑,论坛上的文章中指出找到了与环路交换机相连的机器也就找到了环路的交换机,与发生环路交换机相连的机器地址为192.168.54.33,为什么这台机器没有被发现?为什么环路发生在一幢楼,而发包/收包比例过大、流量过大的机器却发生在另一幢楼?带着这些疑问,于是又做了一次环路实验,实验拓扑图如图三所示,核心交换机为神码6804,用于环路实验的普通8口交换机直接接在核心交换机上,安装科来分析系统的机器直接接在镜像端口,。

图二 发生环路时端点视图

图三 环路实验网络拓扑图


图四 环路端点视图
从图四中,我们发现,数据流量最大的是192.168.54.85,这是一台教师用机,而与环路交换机相连的192.168.54.200流量却很少,这说明发生环路时,大量的数据包被转发,使网络流量大增,但流量大的机器并不一定是与发生环路相连的机器。

图五 数据包视图

我又对数据包进行解码如图五所示,发现有大量IP标志重复的广播包存在。我们知道在IP包头包含了IP Identification信息(缩写IPID),一般每台主机在主动发送一个数据包时,会对IPID这个值进行递增。例如第一个包IPID为10000,第二个发送包就可能是10001,第三是10002,依次类推,不同的主动发送的报文的IPID应当是不同的。但是在解码中IPID是在大量简单重复。这些大量的广播报文,通常不应当是某台主机主动引起,而是被交换机反复转发造成。再进一步分析这些IPID相同的广播包的来源,发现均是来自192.168.54.85。而其它机器IPID则正常(图六),甚至与环路交换机相连的192.168.54.200通讯也正常(图七)。


图六 通讯量第二大的数据包视图


图七 与环路交换机相连的测试机数据包视图
无论是在实际环路还是在实验中,我们可以发现都有一些机器没有被扫描到,这可能是环路产生的广播风暴所致。
通过以上分析,我们可以得出这样的结论:①当网络中有大量IPID相同的广播包,可以判定网络发生了环路。②并不是所有的机器都发IPID重复的数据包,环路交换机与发IPID重复数据包的机器并不存在对应关系,也就是说环路的位置并不能确定。
既然我们不能分析出环路所在,如何才能找出环路位置,从而排除它?我们可以有采取折半的分析方法,首先让一半的客户端在线,另一半与网络断开,进行抓包,如有相同的IPID广播包,说明环路在这一半中,如没有,说明环路发生在另一半,依此类推,逐渐缩小范围,最终查出环路交换机为止。
另外一种有效的方法还要依靠经验,一般来说,当网络中有环路存在,大量的数据包被转发,交换机指示灯闪烁的与正常时有明显的不同,可以用“狂闪”来形容,有经验的网络管理者,可以根据交换机指示灯闪烁的方式层层缩小范围,直到找出环路的交换机。
最有效的方法是开启生成树协议(Spanning Tree)。如果不启用STP(Spanning Tree Protocol ),当发生环路时,交换机无法自我侦测,其结果是把广播包反复转发。 如果启用STP,各个交换机会发送优先度很高的BPDU数据封包,进行线路检测,当发现发送的BPDU包被不恰当的转发回来时候,交换机可以相互协商,关闭某一条环路路径。但是如果启用镜像端口,则STP将关闭。这是一对矛盾,使用科来分析系统就需要对端口进行镜像,而镜像了又不能启用STP,究竟是要镜像还是要STP,这就由您决定了。
还有一种方法打开端口的环回测试或广播风暴抑制功能(是否有这项功能可参阅交换机的说明),虽然不能像STP那样做到“百毒不侵”,但也可以把环路限定在小范围内。当测试到有环路或是广播风暴,交换机就会将端口关闭,这样环路就可以限定在某个端口内,而不至于影响到整个网络。
以上是我对环路的一点的认识,有不足之处,还请各位批评指正,共同提高。

[ 本帖最后由 hongbo2008 于 2009-4-6 15:57 编辑 ]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?CSNA会员注册

×

评分

2

查看全部评分

回复

使用道具 举报

发表于 2009-4-6 17:44:17 | 显示全部楼层
按理说楼主试验的环路是网络线路引起,形成广播环路只是环路的表现,不一定非得是有环路的交换机上的PC机表现出来,请问楼主在模拟环路时192.168.54.85、192.168.54.200、192.168.54.66原来就一直在线吗?还是在环境搭建好后再开的192.168.54.85?或者是 192.168.54.85有什么应用需要先发一个广播包时发生的现象?如果试验的PC机主动发一个广播包我想也可能出现应该54.85的现象,可否请楼主一试?窃以为用科来分析环路可能对多台路由器之间组网需进行静态路由配置形成的环路可能有效。盼复!
回复

使用道具 举报

 楼主| 发表于 2009-4-6 21:27:57 | 显示全部楼层

回复 2# 的帖子

如果只有环路交换机上的pc表现出来,不就可以定位环路所在了?我引用了论坛上的文章就是环路上的pc表现出来的,如果真的只有环路的交换机才表现出来,找出环路就很轻松,但实验的结果并非如此,所以我们才有必要探讨一下如何才能找出环路所在及如何避免环路带来的断网现象。本实验是所有这些机器一直都在线的情况下进行的环路实验,我觉得您的想法有道理,在发生环路时,也许在发生环路时任何一台pc都有可能发包,引用的文章是与环路相连的pc在发包,本实验是另一台机器。“多台路由器之间组网需进行静态路由配置形成的环路”由于网络不是很复杂,这个就不清楚了,希望论坛上的高手们能给予解答。
回复

使用道具 举报

发表于 2009-4-6 21:38:01 | 显示全部楼层

回复 3# 的帖子

好像目前也只有如您所讲的方法那样查找了。
回复

使用道具 举报

 楼主| 发表于 2009-4-6 21:58:01 | 显示全部楼层
听过科来工程师的课,工程师们的观点也是找到发IPID重复的数据包的PC,环路就发生在与之相连的交换机上,但为什么本实验却不能印证呢?期盼着科来工程师能给以指点迷津。
回复

使用道具 举报

发表于 2009-4-7 08:45:39 | 显示全部楼层
学习中!!! :lol
回复

使用道具 举报

发表于 2009-4-7 10:38:19 | 显示全部楼层
如何发图文相间的帖子,参考http://www.csna.cn/forum.php?mod ... amp;page=1#pid52293
回复

使用道具 举报

发表于 2009-4-16 10:08:24 | 显示全部楼层
up up up up
回复

使用道具 举报

发表于 2009-4-16 16:55:28 | 显示全部楼层
科莱专家怎么还不来给分析下呢?
回复

使用道具 举报

发表于 2009-4-16 21:25:44 | 显示全部楼层
欢迎科来专家出面赐教
回复

使用道具 举报

 楼主| 发表于 2009-4-21 21:25:33 | 显示全部楼层

发现了点问题,请各位一起来探讨

写这篇文章时,详细查看了神码6804交换机的说明,又电话咨询了神码工程师,工程师解释说打开端口的环回测试或广播风暴抑制功能也可防止环路,当时由于不在单位,没有实验验证,今天有时间了,把交换机环回测试功能打开,可一会儿就有打来电话:不能上网了。将环回测试功能去掉,网络恢复正常。看来电话得来终觉浅,绝知此事要躬行啊!下班后,又做了实验了广播风暴抑制功能,也不能有效的消除环路对网络的影响。所以这部分
还有一种方法打开端口的环回测试或广播风暴抑制功能(是否有这项功能可参阅交换机的说明),虽然不能像STP那样做到“百毒不侵”,但也可以把环路限定在小范围内。当测试到有环路或是广播风暴,交换机就会将端口关闭,这样环路就可以限定在某个端口内,而不至于影响到整个网络。
可能不是很准确。下面是在网上找到的资料,以供参考http://itbbs.pconline.com.cn/network/10015409.html
 巧妙监测 让交换机发现环路
  在组网规模稍微大一点的局域网中,或者局域网使用备用线缆的情况下,网络管理员稍微操作不慎,就容易造成局域网发生网络环路故障现象;此外,网络病毒袭击、网络流量异常冲突等因素,也会引起局域网发生网络环路现象。一旦发生了网络环路现象后,轻则出现上网传输速度缓慢的现象,严重的时候能导致网络发生瘫痪现象,所以想办法及时发现局域网中的网络环路现象,可以有效避免网络传输通道被严重堵塞、上网访问速度极度缓慢的故障现象发生。但由于引起网络环路现象的原因比较多,如果单纯使用手工方法来判断局域网中是否存在网络环路现象,显然比较麻烦,而且也不利于提高网络管理效率;其实,我们可以利用交换机系统自带的环回测试功能,就能快速、智能地判断出网络中究竟哪个位置发生了网络环路故障,找到了具体的故障位置后,那么我们就能迅速采取针对性措施来快速解决网络环路故障了。
  现在局域网中使用的交换机几乎都有环回测试功能,我们只要将交换机某个端口的环回测试功能启用起来,那么该功能就能自动对通过该端口的所有虚拟工作子网进行网络环路自动检测了,一旦检测到对应端口中存在网络环路故障时,就能自动把检测的结果保存到交换机的日志文件中,网络管理员只要定期查看对应日志文件,就能快速判断出局域网中究竟是否发生了环路故障,并且还能查找出究竟是哪个位置发生了该故障现象。为了让网络环路故障现象不对局域网的稳定运行造成冲击,我们还可以启用交换端口的网络环路受控功能,要是同时启用了该功能后,交换机系统只要一发现指定交换端口存在网络环路故障时,就会立即自动将该交换端口的工作状态关闭掉,以便防止网络环路现象对整个局域网造成强烈的冲击。
  在默认状态下,交换机的环回测试功能、网络环路受控功能都没有被启用,此时我们需要采用手工方法将指定交换端口的对应功能启用起来。在启用环回测试功能、网络环路受控功能时,我们可以先远程登录进目标交换机的后台管理界面,之后切换到特权管理状态下,执行一下字符串命令“sys”,进入交换机的系统视图状态,在该状态的命令行下输入字符串命令“display loopback-detection”,单击回车键后,如果能从其后的结果界面中看到“loopback-detection is running”提示信息时,那就说明该交换机的网络环回测试功能已经被成功启用了。
  如果发现目标交换机还没有启用网络环回测试功能时,我们可以先进入到交换机的某个指定端口视图状态,例如要进入交换机的以太网21端口视图状态时,我们可以在系统视图状态下输入字符串命令“inter e0/21”,单击回车键后交换机的命令行提示符就变成了“XXX-Ethernet0/21”,其中“XXX”为交换机的主机名称;接着,在以太网21端口视图状态下,执行字符串命令“loopback-detection enable”,这样一来指定交换端口的网络环回测试功能就被成功启用了,如图3所示。如果还想开通这个交换端口的环回受控功能时,我们还可以执行字符串命令“loopback-detection control enable”,那样一来交换机系统日后一旦发现以太网21端口下出现网络环路故障现象时,就会自动关闭该端口的运行状态,以避免网络环路故障现象通过该交换端口影响到其他交换机的工作状态。
回复

使用道具 举报

发表于 2009-4-22 21:47:26 | 显示全部楼层

回复 11# 的帖子

楼上的试验好像否定了参考文章的分析了?
回复

使用道具 举报

 楼主| 发表于 2009-4-23 23:48:47 | 显示全部楼层
原帖由 osx1969 于 2009-4-22 21:47 发表
楼上的试验好像否定了参考文章的分析了?

没有,分析现在还没有发现问题,只是环回测试和广播风暴抑制功能可能对环路并不起作用,至少实验的结果是这样。
回复

使用道具 举报

发表于 2009-4-26 22:10:27 | 显示全部楼层
期待进一步的实验结果
回复

使用道具 举报

发表于 2009-5-9 11:08:19 | 显示全部楼层

回贴 是一种美德!

一个好的论坛更要有文笔好的楼主,写出好的帖子让我们都没有白逛论坛,我们的论坛做到了,为楼主顶一顶!
------------------------
老虎機遥控器http://www.ynydkj.cn,老虎機遥控器http://www.zjhldz.cn,
回复

使用道具 举报

发表于 2009-5-9 21:19:44 | 显示全部楼层
欢迎科来专家出面赐教,好好的学习一下。
回复

使用道具 举报

发表于 2009-5-15 13:04:51 | 显示全部楼层
好东西啊,顶一下。不断学习!
回复

使用道具 举报

发表于 2009-5-22 22:08:10 | 显示全部楼层
有些环路会影响整个网络,有些只是小部分.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | CSNA会员注册

本版积分规则

快速回复 返回顶部 返回列表