网络环路STP生成树协议广播风暴概述及风暴原因对策经验总结查找实例.docx
《网络环路STP生成树协议广播风暴概述及风暴原因对策经验总结查找实例.docx》由会员分享,可在线阅读,更多相关《网络环路STP生成树协议广播风暴概述及风暴原因对策经验总结查找实例.docx(16页珍藏版)》请在冰豆网上搜索。
网络环路STP生成树协议广播风暴概述及风暴原因对策经验总结查找实例
网络环路
网络环路也分为第二层环路和第三层环路,所有环路的形成都是由于目的路径不明确导致混乱而造成的,例如第二层,一个广播信息经过两个交换机的时候会不断恶性循环的产生广播,造成环路,而第三层环路则是原路由意外不能工作,造成路由通告错误,形成一个恶性循环
例子:
网络192.168.0.0/24--路由1--路由2正常192.168.0.0/24网络被路由1通告到路由2,当网络出问题不能达到的时候,路由1把192.168.0.0/24路由信息删除,但是路由2通告给了路由1,让路由1误以为路由2的那边能达到192.168.0.0/24网络,结果造成恶性循环(例子建立在RIP,IGRP等路由协议下,只有这两个协议会造成第三层环路)
网络的二层环路通常在发生办公区域移动或者网络节点比较密集的环境中,因为网络跳线的两端的水晶头为一致的,并没有区分是接Hub/switch或者PC的,导致接入的随意性比较大,从而给使用者造成可以随意将网络跳线同时接入到端口中,一旦发生这种问题就形成了环路,网络环路的危害非常大,重则导致一个公司的所有网络中断,轻则至少一片区域的网络中心,给公司生产和运作带来巨大的损失.
传统的二层预防技术主要有STP(Spanningtree)来预防,STP在不断的修改和更新中,产生了诸如STP/RSTP/MSTP等多个版本,大家可根据各自的组网规划来选择应用,但是STP的配置复杂度,以及协议本身的开销通常都是网络管理人员比较头痛的事情。
虽然二层的物理环路在普通的办公室或网络节点并不密集的场景中并不多见,但是在诸如IT制造业或者学校实验室等网络节点密集型的企业,因为人员的流动性,网络节点的密集性,跳线两头RJ45的一致性,所以二层网络环路并不少见,STP在这种环境下多数不生效,无法很好的启用,因为STP与生产的控制程序或者实现程序存在有一定的问题,所以导致二层的网络环路在这类企业中成了一个隐患,定时炸弹一样,指不好什么时候爆发。
网络环路查找实例1
在嘉定信息中心发现10.112.2.0/24段通过三段的网关10.112.3.254也能上网。
网络结构如图:
为了排除故障在华为3000交换机上接了一台笔记本将笔记本的地址配成10.112.2..0/24段的地址,网关为10.112.2.254.在笔记本上ping10.112.2.254。
通过displaymacinterfacegi11/1/14显示该接口的转发表
0016-3619-9ccd201LearnedGigabitEthernet11/1/14
这说明笔记本的数据是通过gi11/1/14这个接口上来的。
将笔记本的地址配成10.112.3.0/24段,网关为10.112.3.254.ping10.112.2.254.通过displaymacinterfacegi11/1/14没有发现笔记本的MAC地址,通过displaymacinterfacegi11/1/15发现了笔记本的mac地址。
如下:
0016-3619-9ccd202LearnedGigabitEthernet11/1/15
这说明在华为3000和思科1900之间有一条路径造成了回路。
如图;
为了找到这个回路用如下办法:
在笔记本的地址和网关为三段的情况下,将gi11/1/14接口拔掉。
Ping10.112.2.254
能够持续ping通强迫数据从gi11/1/15到达gi11/1/14后,用排除法将思科1900的网线依次拔掉判断是哪个接口造成回路。
将这个回路排除后网络恢复正常。
网络环路查找实例2
我校的校园网络在2003进行了布线,办公室的布线成了一个难题,由于工作的变动,各办公室的教师每学期都会发生变化,多则六七人,少则一两人,每间办公室究竟要布多少网线?
如按最多人设计,则造成了极大的浪费,布少了又满足不了需求,于是便采取了每间办公室只布一条网线,外加8口交换机的解决方案,这样既降低了成本,又满足了需求。
但隐患也由此产生,全校分布了近50台从5口到24口不同类型、不同品牌的交换机,加之教师工作时均使用笔记本电脑,晚上要带回家使用,有时又要带到班级授课,这样网线就会被拔来插去,一不小心就容易产生环路。
有一天,突然不能上网,上级文件不能接收,老师文件不能上传,各部门要求上网的电话不断。
由于刚接触网络,网络知识匮乏,经验不足,花了两天多时间,采取断网的方式进行排查,终于找到了断网的原因来自环路。
环路的次数多了,经验也丰富了,一般根据交换机的闪烁方式就可以判断出环路的大体位置,但这还是一种经验上做法,在接触了科来软件后,在论坛上看到关于查找环路的文章:
图二发生环路时端点视图
图三环路实验网络拓扑图
图四环路端点视图
从图四中,我们发现,数据流量最大的是192.168.54.85,这是一台教师用机,而与环路交换机相连的192.168.54.200流量却很少,这说明发生环路时,大量的数据包被转发,使网络流量大增,但流量大的机器并不一定是与发生环路相连的机器。
图五数据包视图
我又对数据包进行解码如图五所示,发现有大量IP标志重复的广播包存在。
我们知道在IP包头包含了IPIdentification信息(缩写IPID),一般每台主机在主动发送一个数据包时,会对IPID这个值进行递增。
例如第一个包IPID为10000,第二个发送包就可能是10001,第三是10002,依次类推,不同的主动发送的报文的IPID应当是不同的。
但是在解码中IPID是在大量简单重复。
这些大量的广播报文,通常不应当是某台主机主动引起,而是被交换机反复转发造成。
再进一步分析这些IPID相同的广播包的来源,发现均是来自192.168.54.85。
而其它机器IPID则正常(图六),甚至与环路交换机相连的192.168.54.200通讯也正常(图七)。
图六通讯量第二大的数据包视图
图七与环路交换机相连的测试机数据包视图
无论是在实际环路还是在实验中,我们可以发现都有一些机器没有被扫描到,这可能是环路产生的广播风暴所致。
通过以上分析,我们可以得出这样的结论:
①当网络中有大量IPID相同的广播包,可以判定网络发生了环路。
②并不是所有的机器都发IPID重复的数据包,环路交换机与发IPID重复数据包的机器并不存在对应关系,也就是说环路的位置并不能确定。
既然我们不能分析出环路所在,如何才能找出环路位置,从而排除它?
我们可以有采取折半的分析方法,首先让一半的客户端在线,另一半与网络断开,进行抓包,如有相同的IPID广播包,说明环路在这一半中,如没有,说明环路发生在另一半,依此类推,逐渐缩小范围,最终查出环路交换机为止。
另外一种有效的方法还要依靠经验,一般来说,当网络中有环路存在,大量的数据包被转发,交换机指示灯闪烁的与正常时有明显的不同,可以用"狂闪"来形容,有经验的网络管理者,可以根据交换机指示灯闪烁的方式层层缩小范围,直到找出环路的交换机。
最有效的方法是开启生成树协议(SpanningTree)。
如果不启用STP(SpanningTreeProtocol),当发生环路时,交换机无法自我侦测,其结果是把广播包反复转发。
如果启用STP,各个交换机会发送优先度很高的BPDU数据封包,进行线路检测,当发现发送的BPDU包被不恰当的转发回来时候,交换机可以相互协商,关闭某一条环路路径。
但是如果启用镜像端口,则STP将关闭。
这是一对矛盾,使用科来分析系统就需要对端口进行镜像,而镜像了又不能启用STP,究竟是要镜像还是要STP,这就由您决定了。
还有一种方法打开端口的环回测试或广播风暴抑制功能(是否有这项功能可参阅交换机的说明),虽然不能像STP那样做到"百毒不侵",但也可以把环路限定在小范围内。
当测试到有环路或是广播风暴,交换机就会将端口关闭,这样环路就可以限定在某个端口内,而不至于影响到整个网络
STP生成树协议
STP(SpanningTreeProtocol)是生成树协议的英文缩写。
该协议可应用于环路网络,通过一定的算法实现路径冗余,同时将环路网络修剪成无环路的树型网络,从而避免报文在环路网络中的增生和无限循环。
生成树协议适合所有厂商的网络设备,在配置上和体现功能强度上有所差别,但是在原理和应用效果是一致的。
技术原理
STP的基本原理是,通过在交换机之间传递一种特殊的协议报文(在IEEE802.1D中这种协议报文被称为“配置消息”)来确定网络的拓扑结构。
配置消息中包含了足够的信息来保证交换机完成生成树计算。
SpanningTreeProtocol(STP)是一种二层链路协议,又称生成树协议,该协议在IEEE802.1D文档中定义。
该协议的原理是按照树的结构来构造网络拓扑,消除网络中的环路,避免由于环路的存在而造成广播风暴问题。
该协议使用BPDU报文传递生成树信息。
SpanningTreeProtocol(STP)的基本思想就是按照"树"的结构构造网络的拓扑结构,树的根是一个称为根桥的桥设备,根据设置不同,不同的交换机会被选为根桥,但任意时刻只能有一个根桥。
由根桥开始,逐级形成一棵树,根桥定时发送配置报文,非根桥接收配置报文,并重新计算配置信息并转发,如果某台交换机能够从两个以上的端口接收到配置报文,则说明从该交换机到根有不止一条路径,便构成了循环回路,此时交换机根据端口的配置选出一个端口并把其他的端口阻塞,消除循环。
当某个端口长时间不能接收到配置报文的时候,交换机认为端口的配置超时,网络拓扑可能已经改变,此时重新计算网络拓扑,重新生成一棵树。
功能介绍
生成树协议最主要的应用是为了避免局域网中的单点故障、网络环回,解决成环以太网网络的“广播风暴”问题,从某种意义上说是一种网络保护技术,可以消除由于失误或者意外带来的循环连接。
STP也提供了为网络提供备份连接的可能,可与SDH保护配合构成以太环网的双重保护。
新型以太单板支持符合IEEE802.1d标准的生成树协议STP及IEEE802.1w规定的快速生成树协议RSTP,收敛速度可达到1s。
但是,由于协议机制本身的局限,STP保护速度慢(即使是1s的收敛速度也无法满足电信级的要求),如果在城域网内部运用STP技术,用户网络的动荡会引起运营商网络的动荡。
目前在MSTP组成环网中,由于SDH保护倒换时间比STP协议收敛时间快的多,系统采用依然是SDHMS-SPRING或SNCP,一般倒换时间在50ms以内。
但测试时部分以太网业务的倒换时间为0或小于几个毫秒,原因是内部具有较大缓存。
SDH保护倒换动作对MAC层是不可见的。
这两个层次的保护可以协调工作,设置一定的“拖延时间”(hold-off),一般不会出现多次倒换问题。
VLAN对生成树的影响
L3,L4交换已经非常成熟。
Internet中也越来越广泛地应用了交换技术,全交换网络已经非常普遍。
在这些网络中,VLAN的使用是必不可少的。
VLAN是一个根据作用、计划组、应用等进行逻辑划分的交换式网络。
与用户的物理位置没有关系。
举个例子来说,几个终端可能被组成一个部分,可能包括工程师或财务人员。
当终端的实际物理位置比较相近,可以组成一个局域网(LAN)。
如果他们在不同的建筑物中,就可以通过VLAN将他们聚合在一起。
同一个VLAN中的端口可以接受VLAN中的广播包。
但别的VLAN中的端口却接受不到。
1、网络容错能力不强;
2、报文在环路网络中容易增生和无限循环;
3、不利在VLAN中实现流量负载均衡
生成树协议运行生成树算法(STA).生成树算法很复杂,但是其过程可以归纳为以下3个步骤:
(1)选择根网桥
(2)选择根端口
(3)选择指定端口
关于选择根网桥:
选择根网桥的依据是网桥ID,网桥ID由网桥优先级和网桥MAC地址组成。
网桥的默认优先级是32768.使用showmac-address-table时,显示在最前面的MAC地址就是计算时所使用的MAC地址。
网桥ID值小的为根网桥,当优先级相同时,MAC地址小的为根网桥。
关于选择根端口:
每个非根交换机选择一个根端口。
选择顺序为:
到根网桥最低的根路径成本→直连的(对端的)网桥ID最小→对端的端口ID最小。
端口ID由端口优先级与端口编号组成。
默认的端口优先级为128。
关于选择指定端口:
每个网段上选择一个指定端口。
选择顺序为:
根路径成本较低→所在交换机的网桥ID值较小→本端口的ID值较小。
另外,根网桥的接口皆为指定端口,因为根网桥上端口的根路径成本为0。
生成树协议的不足
1、拓扑收敛慢,当网络拓扑发生改变的时候,生成树协议需要50秒的时间才能完成拓扑收敛。
2、不能提供负载均衡的功能。
当网络中出现环路的时候,生成树协议简单的将环路进行Block,这样改链路就不能进行数据包的转发,浪费网络资源。
过程
生成树协议运行生成树算法(STA)。
生成树算法很复杂,但是其过程可以归纳为以下三个部分。
(1)选择根网桥
(2)选择根端口
(3)选择指定端口(也有书籍称为转发端口)
选择根网桥的依据是交换机的网桥优先级,网桥优先级是用来衡量网桥在生成树算法中优先级的十进制数,取值范围是0~65535.默认值是32768,网桥ID=网桥优先级+网桥MAC地址组成的,共有8个字节。
由于交换机的网桥优先级都是默认,所以在根网桥的选举中比较的一般是网卡MAC地址的大小,选取MAC地址小的为根网桥。
选择根端口的依据
(1)到根网桥路径开销最低。
根路径开销是两个网桥间的路径上所有链路的开销之和,也就是某个桥网到达根网桥的中间所有链路的路径开销之和。
附IEEE标准路径开销表:
链路速度
开销(最新修订)
开销(以前)
10Gbps
1
1
1Gbps
4
1
100Mbps
19
10
10Mbps
100
100
(2)最低的发送方网桥ID。
(3)最低的端口ID。
由于端口的ID是由优先级和端口号组成,保证了根端口的唯一性。
选择指定端口的依据
(1)根路径开销较低
(2)所在的交换机网桥ID值最小
(3)端口号最小
广播风暴
所谓广播风暴,简单的讲,当广播数据充斥网络无法处理,并占用大量网络带宽,导致正常业务不能运行,甚至彻底瘫痪,这就发生了“广播风暴”。
一个数据帧或包被传输到本地网段(由广播域定义)上的每个节点就是广播;由于网络拓扑的设计和连接问题,或其他原因导致广播在网段内大量复制,传播数据帧,导致网络性能下降,甚至网络瘫痪,这就是广播风暴。
广播风暴-网络通信技术
要理解什么是广播风暴,就必须先理解网络通信技术。
网络上的一个结点,它发送一个数据帧或包,被传输到由广播域定义的本地网段上的每个节点就是广播。
网络广播分为第2层广播和第3层广播。
第2层广播也称硬件广播,用于在局域网内向所有的结点发送数据,通常不会穿过局域网的边界(路由器),除非它变成一个单播。
广播将是一个二进制的全1或者十六进制全F的地址。
而第3层广播用于在这个网络内向所
有的结点发送数据。
第3层广播也支持平面的老式广播。
广播信息是指以某个广播域所有主机为目的的信息。
这些被称为网络广播,它们所有的主机位均为ON。
硬件组播(multicasting)是一种多点投递的形式,它使用硬件技术,通过使用大量组播地址来通信。
当某一组机器需要通信时,选择一个组播地址,并配置好相应的网络接口硬件,识别组播地址,从而收到该组播地址上分组的拷贝。
广播(broadcasting)是多点投递的最普遍的形式,它向每一个目的站投递一个分组的拷贝。
它可以通过多个单次分组的投递完成,也可以通过单独的连接传递分组的拷贝,直到每个接收方均收到一个拷贝为止。
在多数网络中,用户是通过把分组分送给一个特殊保留的地址即广播地址(broadcastaddress)来进行广播投递,它的主要缺点是会耗费大量的主机资源和网络资源。
单播(unicasting)是指只有一个目的地的数据报传递。
从投递目的地的数量而言,单播和广播均可看作是组播的一个子集。
单播可以看作仅包括一台机器群组的组播;广播可以看作包含了所有机器群组的组播。
但从数据报的投递方式而言,单播、广播和组播还是有较大的区别。
广播风暴-硬件基础知识
要想正确理解广播风暴的具体含义,必须了解一下工作在网路中的网路设备的工作原理。
目前,工作在网路中的网路设备,基本上都是交换机了。
交换机基本常识
交换机的定义:
交换机是一种基于MAC(网卡的硬体地址)识别,能完成封装转发数据包功能的网路设备。
交换机可以“学习”MAC地址,并把其存放在内部地址表中,透过在数据帧的始发者和目标接收者之间建立临时的交换路径,使数据帧直接由源地址到达目的地址。
现在,交换机已经替代了原来比较熟悉的网路设备集线器,又称Hub。
但是这并不意味着,我们不需要了解Hub的基本知识。
集线器的定义:
集线器(HUB)属于数据通信系统中的基础设备,它和双绞线等传输介质一样,是一种不需任何软体支援或只需很少管理软体管理的硬体设备。
它被广泛应用到各种场合。
集线器工作在区域网路(LAN)环境,像网卡一样,应用于OSI参考模型第一层,因此又被称为物理层设备。
集线器内部采用了电器互联,当维护LAN的环境是逻辑总线或环型结构时,完全可以用集线器建立一个物理上的星型或树型网路结构。
在这方面,集线器所起的作用相当于多连接埠的中继器。
其实,集线器实际上就是中继器的一种,其区别仅在于集线器能够提供更多的连接埠服务,所以集线器又叫多口中继器。
交换机与集线器的区别
现在,经常会存在这样一个技术误区,网络中使用的是交换机,数据全部是点对点转发的,为什么还会产生广播风暴呢?
在充分了解了交换机与集线器的功能区别后,人们就会明白,使用交换机作为网路设备的网路,为什么会出现广播风暴。
交换机与集线器的本质区别
用集线器组成的网路称为共享式网路,而用交换机组成的网路称为交换式网路。
共享式以太网存在的主要问题是所有用户共享带宽,每个用户的实际可用带宽随网路用户数的增加而递减。
这是因为当资讯繁忙时,多个用户可能同时“争用”一个信道,而一个信道在某一时刻只允许一个用户占用,所以大量的用户经常处于监测等待状态,致使信号传输时产生抖动、停滞或失真,严重影响了网路的性能。
在交换式以太网中,交换机提供给每个用户专用的资讯通道,除非两个源连接埠企图同时将资讯发往同一个目的连接埠,否则多个源连接埠与目的连接埠之间可同时进行通信而不会发生冲突。
透过实验测得,在多伺服器组成的LAN中,处于半双工通信模式下的交换式以太网的实际最大传输速度是共享式网路的1.7倍,而工作在全双工状态下的交换式以太网的实际最大传输速度可达到共享式网路的3.8倍。
交换机只是在工作方式上与集线器不同,其他的如连接方式、速度选择等与集线器基本相同,目前的交换机同样从速度上分为10M、100M和1000M几种,所提供的连接埠数多为8口、16口和24口几种。
交换机在区域网路中主要用于连接工作站、Hub、伺服器或用于分散式主干网。
广播风暴-原因和对决策略
广播风暴的产生有多种原因,如蠕虫病毒、交换机端口故障、网卡故障、链路冗余没有启用生成树协议、网线线序错误或受到干扰等。
从目前来看,蠕虫病毒和ARP攻击是造成网络广播风暴最主要的原因。
虽说如今网络广播风暴已经很少见了,但在一些使用集线器的网络中仍然非常常见。
解决网络广播风暴最快捷的方法是给集线器断电然后上电启动即可,但这只是治标不治本的方法,要彻底解决,最好使用交换机设备,并划分VLAN、通过端口控制网络广播风暴。
否则,如果广播风暴是由于网卡损坏所致,要从上百台计算机找出故障计算机简直就是大海捞针,那将是网管员的一场噩梦。
下面就几个引发广播风暴的原因及其对策进行阐述。
1.误将智能型集线器作为交换机引发广播风暴
采购人员或者奸商将智能型集线器当作交换机使用,这样,当网络稍微繁忙时,由于集线器的天生缺陷,故引发了广播风暴。
对策:
检查所使用的网络设备是否交换机,如果不是则更换正确的交换机,切记不要使用集线器。
2.网线短路导致广播风暴
压制网线时没有做好,或者网线表面有磨损导致短路,会引起交换机的端口阻塞,因为现在交换机大多都使用存储转发技术,它的工作原理是对某一段数据包进行分析判断寻址,并进行转发,在发出前均存储在交换机的缓冲区内,当网线发生短路时,该交换机将接收到大量的不符合分装原则的包,造成交换机处理器工作繁忙,数据包来不及转发,从而导致缓冲区溢出产生丢包现象,导致广播风暴。
对策:
使用MRGT等流量查看软件可以查看出现短路的端口,如果交换机是可网管的,也可以通过逐个封闭端口来进行处理查找,进而找到有问题的网线。
找到短路的网线后,更换一根网线。
3.接入层拓扑环引发广播风暴
当网络中存在环路,就会造成每一帧都在网络中重复广播,引起广播风暴。
要消除这种网络循环连接带来的网络广播风暴可以使用STP协议(生成树协议),以网络中一台交换机为节点生成一棵转发树,这样所有的数据都只在这棵树所只是的路径上传输,就不会产生广播风暴——因为树没有环路。
但因为STP算法开销太大,交换机默认都没启用该协议。
对策:
在接入层启用树生成协议,或者在诊断故障时打开树生成协议,以便协助确定故障点。
在广播风暴发生时,应首先了解发生故障前网络的改动,建立完善的网络文档资料,包括:
网络布线图、IP地址和MAC地址对应表等,现在可以通过局域网工具软件来扫描获取这些信息。
4.傻瓜交换机拓扑环引发广播风暴
可网管的交换机由于具备树生成协议功能,可自动切断级联交换机之间的冗余端口,避免网路偶拓扑环的产生,但这个功能,傻瓜交换机并不具备。
在同一傻瓜交换机上的不同端口,或傻瓜交换机之间有冗余的连接,就导致网络拓扑环的发生,进而导致网络广播风暴,造成网络通讯失败。
对策:
用于级联交换机的跳线应当做一些特殊标记,最好选择使用不同颜色的跳线,与其他普通跳线相区别。
5.网卡损坏或者交换器端口损坏引发广播风暴
当交换机有一个端口传输速率非常缓慢,最后导致整台交换机都慢下来,如果交换机是可网管型的,可通过控制台检查交换机的状态,如发现交换机的缓冲池增长的非常快,达到90%乃至更多。
一般来说,这种原因是因为交换机与所连接的计算机之间发送大量的广播造成,通常是因为连接该计算机的网卡损坏,导致不断的发送广播包造成,也有可能是因为网卡与交换机形成了回路,广播包阻塞不能及时发出。
对策:
可将其他正常的计算机接到有问题的端口上,如果故障解决,则是原先计算机的网卡损坏或网络故障所致,更换新网卡并检测线路及网络配置即可解决。
如果故障依旧,则说明原先计算机的网卡未损坏,可能是交换机的该端口已损坏,检查该端口的指示灯,如确认是该端口损坏,应及时将交换机送修或者将计算机连接到其他端口,注意,不要擅自修理交换机,否则损坏交换机得不偿失。
6.蠕虫病毒引发广播风暴
当网络中某计算机感染蠕虫病毒时,如Funlove、震荡波、RPC等病毒,如果查看该网卡的发送包和接收包的数量时发现发包数在快速增加,则说明该计算机感染了蠕虫病毒,通过网络传播,损耗大量的网络带宽,引起网络堵塞,导致广播风暴。
对策:
为每台计算机安装杀毒软件,并配置补丁服务器(WSUS)来保证局域网内所有的计算机都能及时打上最新的补丁。