科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道不能上网 网络环路的分析及对策

不能上网 网络环路的分析及对策

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

还有一种方法打开端口的环回测试或广播风暴抑制功能(是否有这项功能可参阅交换机的说明),虽然不能像STP那样做到"百毒不侵",但也可以把环路限定在小范围内。

作者:chinaitlab 来源:chinaitlab 2009年4月9日

关键字: 网络管理软件 网络管理 网络环路

  • 评论
  • 分享微博
  • 分享邮件

    我校的校园网络在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那样做到"百毒不侵",但也可以把环路限定在小范围内。当测试到有环路或是广播风暴,交换机就会将端口关闭,这样环路就可以限定在某个端口内,而不至于影响到整个网络。

    以上是我对环路的一点的认识,有不足之处,还请各位批评指正,共同提高。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章