STP原理——精选推荐

  • 格式:pdf
  • 大小:940.45 KB
  • 文档页数:13

STP原理

简介STP(⽣成树协议SpanningTreepProtocol)能够提供路径冗余,使⽤STP可以使两个终端中只有⼀条有效路径。在实际的⽹络环境中,物理环路可以提⾼⽹络的可靠性,当⼀条线路断掉的时候,另⼀条链路仍然可以传输数据。但是,在交换⽹络中,当交换机接收到⼀个未知⽬的地址的数据帧时,交换机的操作是将这个数据帧⼴播出去,这样,在存在物理的交换⽹络中,就会产⽣⼀个双向的⼴播环,甚⾄产⽣⼴播风暴,导致交换机死机。如何既有物理冗余链路保证⽹络的可靠性,⼜能避免冗余环路所产⽣的⼴播风暴呢?STP协议是在逻辑上断开⽹络的环路,防⽌⼴播风暴的产⽣,⽽⼀旦正在⽤的线路出现故障,逻辑上被断开的线路⼜被连通,继续传输数据。

交换⽹络环路

交换⽹络环路会带来3个问题:⼴播风暴、同⼀帧的多个拷贝和交换机CAM表不稳定。交换⽹络环路的产⽣:

PC1和PC2通过交换机相连。⽹络初始状态时,PC1与PC2通信过程如下:

1.在⽹络通信最初,PC1的ARP条⽬中没有PC2的MAC地址,PC1⾸先会向SW1发送⼀个ARP⼴播请求PC2的MAC地址;

2.当SW1收到ARP的⼴播请求后,SW1会将⼴播帧从除接收端⼝之外的所有端⼝转发出去即会从F0/1和F0/2发出;

3.SW2收到⼴播后,会将⼴播帧从F0/2和连接PC2的端⼝转发,同样SW3收到⼴播后,将其从F0/2端⼝转发;

4.SW2收到SW3的⼴播后,将其从F0/1和连接PC2的端⼝转发,SW3收到SW2的⼴播后将其从F0/1端⼝转发;

5.SW1分别从SW2、SW3收到⼴播帧,然后将从SW2收到的⼴播帧转发给SW3,⽽将

从SW3收到的⼴播帧发给SW2。SW1、SW2和SW3会将⼴播帧相互转发。这时⽹络就形成了⼀个环路,⽽交换机并不知道,这将导致⼴播帧在这个环路中永远循环下去。STP⼯作原理

STP运⾏STA(⽣成树算法Spanning Tree Algorithm)。STA算法很复杂,但是其过程可以归纳为以下三个步骤:

1.选择根⽹桥(Root Bridge);

1>⽹桥ID最⼩。

2.选择根端⼝(Root Ports);

1>到根路径成本最低;

2>最⼩的直连发送⽅⽹桥ID;

3>最⼩的发送⽅端⼝ID。

3.选择指定端⼝(Designated Ports)。1>根路径成本最低;

2>所在交换机的⽹桥ID最⼩;

3>所在交换机的端⼝ID最⼩。

特别注意:选择根端⼝:⽐较接收的BPDU;选择指定端⼝:⽐较发送的BPDU。选择根⽹桥

⽹桥ID最⼩:选择根⽹桥的依据是⽹桥ID的⼤⼩。在选择根⽹桥的时候,⽐较的⽅法是看哪台交换机的⽹桥ID的值最⼩,优先级⼩的被选择为根⽹桥;在优先级相同的情况下,MAC地址⼩的为根⽹桥。

⽹桥ID:是⼀个8Byte的字段,前⾯2Byte的⼗进制数称为⽹桥优先级,后6Byte是⽹桥的MAC地址。

⽹桥优先级:⽤于衡量⽹桥在⽣成树算法中优先级的⼗进制数,取值范围为0-65535,默认值是32768。

⽹桥的MAC地址:交换机⾃⾝的MAC地址,可以使⽤命令show version查看。⽰例:

选择根端⼝

选出了根⽹桥之后,⽹络中的每台交换机必须和根⽹桥建⽴关联,因此STP将开始选择根端⼝。每个⾮根⽹桥上存在⼀个根端⼝,因此需要在每个⾮根⽹桥上选择⼀个根端⼝。选择根端⼝的依据有三个:

到根路径成本最低的端⼝:路径成本是两个⽹桥间的路径上所有链路的成本之和,根路径成本也就是⼀个⽹桥到达根⽹桥的中间所有链路的路径成本之和,路径成本⽤来代表⼀条链路带宽的⼤⼩,⼀条链路的带宽越⼤,它的传输数据的成本也就越低。

最⼩的直连发送⽅⽹桥ID:BPDU帧是从根⽹桥发向根端⼝的,则当端⼝的根路径成本相同时,以收到发来BPDU直连的⽹桥ID最⼩(端⼝的对端端⼝,即本地端⼝)为根端⼝。最⼩的发送⽅端⼝ID:当直连发送⽅⽹桥ID⼤⼩相同时,也就是说有⼏个位于同⼀交换机上的端⼝时,⽐较最⼩的发送⽅端⼝ID。端⼝ID是⼀个⼆字节的STP参数,由⼀个字节的端⼝优先级和⼀个字节的端⼝编号组成。端⼝优先级是⼀个可配置的STP参数,在基于IOS的交换机上,端⼝优先级的⼗进制取值范围是0-255,默认值是128。端⼝编号是catalyst⽤于列举各个端⼝的数字标识符,在基于IOS的交换机上,可以⽀256个端⼝。

说明:端⼝编号不是端⼝号,但是端⼝号低的端⼝,端⼝编号值(端⼝ID)也较⼩。

端⼝ID:

⽰例:

选择指定端⼝

选择完根⽹桥和每台交换机的根端⼝后,⼀个树形结构已初步形成,但是,所有链路仍连接在⼀起,并可以都处于活动状态,最后导致形成环路。为了消除环路形成的可能,STP进⾏最后的计算,在每⼀个⽹段上选择⼀个指定端⼝。选择指定端⼝的依据有三个:

根路径成本最低;

所在交换机的⽹桥ID最⼩;

所在交换机的端⼝ID最⼩。

注意:根⽹桥上的接⼝都是指定端⼝,因为根⽹桥上端⼝的根路径成本为0。

⽰例:

说明:如果端⼝既不是根端⼝,也不是指定端⼝,那么这个端⼝被阻塞(BLOCK)称为阻塞端⼝。被阻塞的端⼝不能传输数据,即该链路成为备份链路。BPDU(Bridge Protocol Data Unit 桥协议数据单元)

STP在交换机互相通信时进⾏操作,数据报⽂以桥协议数据单元(BPDU)的形式进⾏交换。每隔2秒,BPDU报⽂便向所有的交换机端⼝发送⼀次,以便交换机(或⽹桥)能交换当前最新的拓扑信息,并迅速识别和检测其中的环路。BPDU的两种类型

正常情况下,交换机只会从它的Root Port上接收configuration BPDU包,但不会主动发送configuration BPDU包给RootBridge。第⼆种类型的BPDU包是

Topology Change Notification(TCN) BPDU,当⼀台交换机检测到拓扑变化后,它就可以发送TCN给Root Bridge,注意TCN是通过Root Port向Root Bridge⽅向发出的。当交换机从它的designate port接收到TCN类BPDU时,它必须为其做转发,从它⾃已的root port上发送出去TCN类型的BPDU包,这样⼀级⼀级地传到root bridge后,TCN的任务才算完成。

BPDU报⽂主要字段

协议ID:该值总为0。

版本号:STP的版本(为IEEE 802.1d时值为0)。

报⽂类型:BPDU类型(配置BPDU=0,TCN BPDU=80)。

标记域:LSB(最低有效位)=TCN标志;MSB(最⾼有效位)=TCA标志。

根⽹桥ID:根信息由2字节优先级和6字节ID组成。这个信息组合标明已经被选定为根⽹桥的设备标识。

根路径成本:路径成本为到达根⽹桥交换机的STP开销。表明这个BPDU从根⽹桥传输了多远,成本是多少。这个

字段的值⽤来决定哪些端⼝将进⾏转发,哪些端⼝将被阻断。

发送⽹络桥ID:发送该BPDU的⽹桥信息。由⽹桥的优先级和⽹桥ID组成。

端⼝ID:发送该BPDU的⽹桥端⼝ID。

计时器:计时器⽤于说明⽣成树⽤多长时间完成它的每项功能。这些功能包括报⽂⽼化时间、最⼤⽼化时间、

访问时间和转发延迟。

最⼤⽼化时间:根⽹桥发送BPDU后的秒数,每经过⼀个⽹桥都会递减1,所以它的本质是到达根⽹桥的跳计数。

访问时间:根⽹桥连续发送BPDU的时间间隔。

转发延迟:⽹桥在监听学习状态所停留的时间。STP利⽤BPDU选择根⽹桥的过程

1.当⼀台交换机第⼀次启动时,假定⾃⼰是根⽹桥在BPDU报⽂中的根⽹桥字段填⼊⾃⼰的⽹桥ID,向外发送。

2.交换机⽐较接收到的BPDU报⽂中根⽹桥ID与⾃⼰的⽹桥ID的值哪个更⼩,如果接收到的BPDU中的根⽹桥ID值⼩

于⾃⼰的⽹桥ID,则⽤接收到的根⽹桥ID替换现有的根⽹桥ID,并向外转发。如此不断反复,最终能够选择出

全⽹公认的唯⼀⼀个根⽹桥。3.收敛以后,如果⼜⼀台新的交换机加⼊进来,则继续⽐较更⽹桥ID,选出新的根⽹桥。

STP利⽤BPDU确定端⼝的跟路径成本

1.根⽹桥发送⼀个根路径成本为0的BPDU报⽂。

2.当离根⽹桥最近的下⼀级交换机收到BPDU报⽂时,就把BPDU所到达的那个端⼝的路径成本值与根⽹桥的根路径

成本值相加。3.邻接交换机再以这个新的累加值作为根路径成本,然后发送出包含此值的BPDU报⽂。

4.当邻接交换机下的每⼀台交换机都收到这个BPDU报⽂时,再把随后的交换机端⼝路径成本与这个值相加,依次

类推。⽣成树端⼝的状态

禁⽤:强制关闭(实际并不属于端⼝正常的STP状态的⼀部分)。

转发:可以发送和接收数据帧,也可以收集MAC地址加⼊到它的地址表,还可以发送BPDU报⽂。

学习:延迟时间15s,转发BPDU报⽂的同时,学习新的MAC地址,并添加到交换机的地址列表中。

侦听:延迟时间15s,为了使该端⼝加⼊⽣成树的拓扑过程,允许接收或发送BPDU报⽂。

阻塞:⽼化时间20s,以便能侦听到其他邻接交换机的信息。

⽣成树协议的发展历程IEEE⽣成树发展史:STP/802.1D ——>RSTP/802.1W ——> MISTP/MSTP/802.1S:

STP/802.1D:STP(⽣成树协议/单⽣成树协议Spanning Tree Protocol)在IEEE 802.1D中定义。该协议的的原

理是按照树的结构来构造⽹络拓扑,消除⽹络中的环路,避免由于环路的存在⽽造成⼴播风暴问题。

缺点:1.拓扑收敛慢,当⽹络拓扑发⽣改变的时候,⽣成树协议需要50秒的时间才能完成拓扑收敛;

2.不能提供负载均衡的功能,当⽹络中出现环路的时候,⽣成树协议简单的将环路进⾏Block,这样改链路

就不能进⾏数据包的转发,浪费⽹络资源。CST:CST(公共⽣成树Common Spanning Tree)在IEEE 802.1Q中定义的?是IEEE 802.1D 对于VLAN和STP的

解决⽅案。CST在⽣成树收敛的时候,不考虑⽹络中VLAN的存在,只在⽹络中⽣成和维护单个⽣成

树;所有CST的BPDU作为不带标记的帧通过本地VLAN进⾏传输。

特点:1.交换机CPU负载较低,只需要计算⼀个⽣成树实例;

2.⽹络中的STP⽆法按照VLAN的需求,为VLAN创建最优的STP路径,可能导致某些VLAN存在次优路径;

3.冗余的端⼝被阻塞掉之后,在每个VLAN中就⽆法转发数据,会导致⽆法实现⽹络流量的负载均衡。

RSTP/802.1W:RSTP(快速⽣成树协议Rapid Spaning Tree Protocol)在IEEE 802.1W中定义,由802.1D发展⽽

来。这种协议进⼀步处理了⽹络临时失去连通性的问题,在⽹络结构发⽣变化时能更快的收敛⽹络。实际

上它是把减少STP收敛时间的⼀些措施融合在802.1D中形成新的协。它⽐802.1D多了两种端⼝类型:预备端

⼝类型(Alternate Port)和备份端⼝类型(Backup Port),将PortFast、UplinkFast、BackboneFast等问题