STP.RSTP协议理解
- 格式:doc
- 大小:871.50 KB
- 文档页数:29
STPRSTPMSTP对比与分析STP(Spanning Tree Protocol),RSTP(Rapid Spanning Tree Protocol)和MSTP(Multiple Spanning Tree Protocol)都是用于管理和构建冗余链路的网络协议,以提高网络的可靠性和冗余容错能力。
下面将对它们进行详细的比较与分析。
1.网络拓扑计算方式:- STP:通过计算距离(路径开销)来选择根桥和最佳路径,根据BPDU(Bridge Protocol Data Unit)的交换来构建最佳路径,存在较慢的收敛时间。
-RSTP:通过计算端口状态变化的时间,使用端口状态变化的计时器来加速收敛时间,以改进STP的收敛效率。
-MSTP:将网络划分为多个实例,并使用VLAN作为实例的依据,每个实例建立独立的树,在不同实例之间共享一些信息,达到提高收敛速度和优化网络利用率的目的。
2.收敛时间:-STP:在网络拓扑发生变化时,需要等待一段时间才能重新计算生成树,收敛时间较长,通常需要几秒到几十秒。
-RSTP:通过端口状态变化计时器的计时,可以快速检测到网络更改并重新计算最短路径,从而实现快速收敛。
通常可以在数秒内完成收敛,比STP收敛速度快。
-MSTP:与RSTP相比,MSTP可以更有效地利用多树实例进行并行计算,从而进一步缩短收敛时间。
3.网络利用率:-STP:生成树只使用一条路径,其他冗余链路处于阻塞状态,无法充分利用网络资源。
-RSTP:通过快速收敛和端口状态的变化,可以更快地利用冗余链路,提高网络的利用率。
-MSTP:通过将网络划分为多个实例,可根据不同实例的需要,更好地利用冗余链路,提高网络利用率。
4.配置复杂性:-STP:配置相对简单,只需配置根桥和端口优先级。
-RSTP:相对于STP更复杂一些,需要进行一些新的配置和调整。
-MSTP:相对于RSTP更复杂一些,需要进行实例的配置和管理。
综上所述,虽然STP是最基本的冗余链路协议,但收敛时间较长且无法充分利用冗余链路。
STP(生成树协议)、RSTP(快速生成树协议)、MSTP(多生成树协议),这三个协议都是二层交换网络中为了防止环路和实现链路冗余而设计的,他们之间有什么区别与联系呢?本文为您详细介绍。
STP、RSTP、MSTP基本概念1、STP(802.1d)STP协议生来就是为了冗余而存在的,单纯树型的网络无法提供足够的可靠性,由此我们引入了额外的链路,这才出现了环路这样的问题。
但单纯是标准的802.1D STP协议并不能实现真正的冗余与负载分担。
STP为IEEE 802.1D标准,它内部只有一棵STP tree,因此必然有一条链路要被blocking,不会转发数据,只有另外一条链路出现问题时,这条被blocking的链路才会接替之前链路所承担的职责,做数据的转发。
无论怎样,总会有一条链路处于不被使用的状态,冗余是有了,但是负载分担是不可想象的。
cisco对STP做了改进,它使得每个VLAN都运行一棵stp tree,这样第一条链路可以为vlan 1 2 3服务,对vlan 4 5 6 blocking,第二条链路可以为vlan 4 5 6 forwarding,对vlan 1 2 3关闭,无形中实现了链路的冗余,负载分担。
这种技术被称之为PVST+随着网络的发展,人们发现传统的STP协议无法满足主备快速切换的需求,因为STP协议将端口定义了5种状态,分别为:blocking listening learning forwarding disabling,想要从blocking切换至forwarding状态,必需要经过50秒的周期,这50秒我们只能被动地去等待。
20秒的blocking状态下,如果没有检测到邻居发来的BPDU包,则进入listening,这时要做的是选举Root Bridge、Designate Port、Root Port,15秒后,进入learning,learning状态下可以学习MAC地址,为最后的forwarding做准备,同样是15秒,最后到达转发状态。
stprstpmstp详解⼀ stp⽹络的冗余性设计主要包括两个⽅⾯:关键设备冗余,以及关键链路冗余。
如何在保证⽹络的冗余性情况下,消除⼆层环路,是本章的重点。
Stp(⽣成树协议)在802.1D中定义,RSTP(快速⽣成树协议)在802.1w中定义,MSTP(多⽣成树协议)在802.1s中定义。
1 STP基本概念(1)桥ID:每⼀台运⾏STP的交换机都拥有⼀个唯⼀的桥ID,该值⼀共8byte,包含16bit的优先级(⾼16bit)和48bit的桥MAC地址。
(2)根桥:STP的主要作⽤就是在整个交换⽹络中计算出⼀颗⽆环的STP树,其中树根即根桥很重要,STP的⼀系列计算均已根桥为参考点。
⼀个交换⽹络中只有⼀个根桥。
⽹络中最⼩桥ID的交换机将成为根桥,其次⽐较的是MAC地址,MAC地址最⼩的交换机将成为根桥。
(3)开销(Cost)与跟路径开销(Root Path Cost,RPC):每⼀个激活了Stp的接⼝都会维护⼀个Cost值,⽤来计算RPC。
接⼝的缺省Cost除了与其速率,⼯作模式有关,还与交换机使⽤STP Cost计算⽅法有关。
华为交换机⽀持3种STP cost计算⽅法,分别为IEEE802.1D-1998标准,IEEE802.1t标准,以及华为的私有计算⽅法。
⽹络中所有STP设备使⽤的Cost计算⽅法要⼀致。
2 STP的基本操作过程STP通过4个步骤来保证⽹络中不存在⼆层环路(1)在交换⽹络中选出⼀个根桥(Root Bridge,RB)对于⼀个交换⽹络⽽⾔,正常情况下只会存在⼀个根桥,根桥的地位具有可抢占性。
(2)在每个⾮根桥上选取⼀个根接⼝(Root Port,RP)在⼀个交换⽹络中除了根桥,其他交换机都是⾮根桥,STP将为每个⾮根桥选举⼀个根接⼝,所谓根接⼝,实际上就是⾮根桥上所有接⼝中收到最优BPDU的接⼝,可以理解为交换机在STP树上朝向根桥的接⼝。
⾮根桥可能会有⼀个或者多个接⼝接⼊同⼀个交换⽹络,STP将在这些接⼝中选举出⼀个根接⼝。
RSTP协议深入了解快速生成树协议的快速收敛与恢复Rapid Spanning Tree Protocol (RSTP) 是一种用于局域网中的快速生成树协议。
它的主要目标是在网络拓扑发生变化时,实现快速的收敛和恢复,以确保数据的正常传输。
本文将深入探讨RSTP协议,包括其原理、特点以及快速收敛和恢复的机制。
一、RSTP协议原理与特点RSTP是基于Spanning Tree Protocol (STP) 的改进版,它在STP的基础上进行了优化,以提高网络的收敛速度和性能。
RSTP协议的主要原理是通过在网络中选择一条主干路径(Root Path)和多个备选路径(Alternate Path),以实现冗余和负载均衡。
它引入了新的端口状态,包括Discarding、Learning、Forwarding三个状态,以提高网络的收敛性能。
RSTP协议的特点包括:1. 快速收敛:RSTP协议通过链路状态变化的感知和决策机制,可以更快地收敛网络拓扑。
当网络中的链路发生变化时,RSTP能够快速重新计算生成树,并调整端口状态,以确保数据的正常传输。
2. 支持快速下线检测:RSTP协议引入了BPDU Guard机制,用于快速检测并禁用非法的下线连接。
当RSTP交换机接收到非法的BPDU 帧时,它会立即将相应的端口置为锁定状态,以防止环路的产生。
3. 多实例支持:RSTP协议支持多实例的特性,可以同时运行多个生成树实例。
这使得RSTP可以应对复杂的网络环境,并提供更灵活和可靠的拓扑改变和收敛机制。
二、RSTP的快速收敛机制RSTP协议的快速收敛机制主要包括以下几个方面:1. 快速端口切换:当网络中的某个端口出现链路故障时,RSTP能够快速检测到变化,并将其切换到备选路径上。
这样,数据包可以立即沿新的路径传输,无需等待生成树重新计算。
2. Proposal/Agreement机制:RSTP使用Proposal/Agreement机制来加快收敛速度。
stp rstp白皮书
STP(Spanning Tree Protocol,生成树协议)和RSTP(Rapid Spanning Tree Protocol,快速生成树协议)都是网络中用于防止环路并确保冗余路径不导致数据包洪泛的协议。
1.STP(生成树协议):
-STP是一种用于生成树拓扑的协议,最早定义在IEEE802.1D标准中。
-STP通过选择一条树状路径,将网络中的冗余路径阻塞,以防止环路的发生。
在拓扑变化时,STP需要一段时间来重新计算生成树,因此收敛速度相对较慢。
2.RSTP(快速生成树协议):
-RSTP是对STP的改进,旨在提高网络收敛速度。
-RSTP引入了诸多优化机制,包括端口角色的转变、不同类型的BPDU(Bridge Protocol Data Unit)的使用、更快的端口收敛等。
这些改进使得RSTP能够更快地适应网络拓扑的变化,减少了网络在故障恢复时的收敛时间。
总体而言,RSTP是STP的一个改进版本,通过减少冗余计算和引入一些优化来提高网络收敛速度。
网络管理员可以选择使用STP或RSTP,具体取决于网络的需求和设备的支持。
更多详细信息可以查阅相关的IEEE802.1D和802.1w标准文档,这些文档包含了STP和RSTP的技术细节。
请简述stp协议工作的过程。
并说明rstp和mstp的区别。
摘要:一、STP协议工作过程概述二、RSTP协议与STP协议的区别1.收敛速度2.报文类型3.端口状态4.选举根桥和指定端口三、MSTP协议与STP协议的区别1. multiple instance2.端口状态3.根桥选举正文:一、STP协议工作过程概述STP(Spanning Tree Protocol)协议,即生成树协议,其工作过程主要分为以下几个阶段:1.交换机初始化:交换机启动后,所有端口处于listening状态,交换机之间互相发送BPDU(Bridge Protocol Data Units)报文。
2.选举根桥:交换机通过比较收到的BPDU报文中的序列号和时间戳来选举根桥,序列号越大,优先级越高;如果序列号相同,则比较时间戳,时间戳越小,优先级越高。
3.选举指定端口:非根桥交换机通过比较收到的BPDU报文中的路径成本来选举指定端口,路径成本越小,优先级越高。
4.端口状态转换:根据选举结果,交换机的端口状态发生转换,分为三种状态:forwarding(转发状态)、learning(学习状态)、blocking(阻塞状态)。
5.生成树建立:所有交换机根据选举结果,构建生成树,阻塞不必要的端口,以防止环路的产生。
二、RSTP协议与STP协议的区别1.收敛速度:RSTP(Rapid Spanning Tree Protocol)协议的收敛速度比STP协议快,因为它引入了端口状态机制,使得端口状态转换更加迅速。
2.报文类型:RSTP协议使用了与STP协议不同的报文类型,包括RSTP BPDU、MSTP BPDU和ERP BPDU。
3.端口状态:RSTP协议引入了端口状态的概念,将端口分为三种状态:forwarding(转发状态)、learning(学习状态)、blocking(阻塞状态),以实现快速收敛。
4.选举根桥:RSTP协议的根桥选举过程与STP协议类似,但RSTP协议在选举过程中会优先考虑端口状态,从而提高收敛速度。
STP⽣成树协议的理解⼀ STP简介1、单词:rstp快速⽣成树协议filter过滤protection保护2、作⽤:通过阻塞特定接⼝来防⽌⼆层交换环路,从⽽做到既可以提⾼⽹络可靠性的同时⼜能避免环路带来的问题3、和TTL的区别:TTL是经过三层设备减⼀,⼆层设备是不减的。
如果为了避免⼆层交换机环路需要使⽤STP技术,来阻塞特定接⼝防⽌环路。
4、交换机环路带来的问题1、⼴播风暴——导致资源⼤量转发⼴播包,降低了转发⽤户数据的效率2、mac地址表不稳定——影响⽹络稳定性5、注意1、在华为的智能交换机,开机默认⾃动运⾏stp,运⾏stp的升级版mstp技术,默认就开启了2、undo stp enable禁⽤stp。
⽬的实验观察⼴播风暴3、ping 192.168.1.255就是发送⼴播包4、如果环路,只有通过断开链路才能停⽌arp⼀直发送⼴播5、mac地址表震荡。
交换机会对源mac地址进⾏映射,当⼆层产⽣环路时,携带mac地址的便会映射到其他接⼝,⼀直循环,所有mac地址的映射表⼀直在变。
⼆、stp种类介绍STP :传统STPRSTP :快速⽣成树协议 rapid stpMSTP : 多⽣成树协议 multi stp(真对多vlan)注意:rstp向下兼容stp。
如果交换机中有stp和rstp,那么将使⽤stp。
三、STP的⼯作原理1、整体思路先选出哪些接⼝不被阻塞,然后剩下的接⼝全部被阻塞。
2、规则2.1、⾸先整个⽹络(⼴播域)选举根桥(根交换机),桥ID较⼩的交换机当选为根桥。
桥ID=桥优先级 + 桥mac注意:桥优先级默认是32768,mac地址是16进制的a相当于10,根桥上的接⼝都是DP(designated ports指定端⼝)2.2、⾮根桥上选择根端⼝,到达根桥最近的端⼝选为根端⼝RP(root port)2.3、每条链路,有且只有⼀个指定端⼝,桥ID较⼩的交换机端⼝当选为指定端⼝,例如下图有三条链路,那么每条链路得有⼀个指定端⼝,⽽且只能有⼀条。
STP详解-STP、RSTP、MSTPSTP详解01冗余链路中存在的问题如图所⽰LSW1和LSW2之间有两条线路相连,它们之间任何⼀条链路出现故障另外⼀条线路可以马上顶替出现故障的那条链路,这样可以很好的解决单链路故障引起的⽹络中断,但在此之前有下⾯三个问题需要考虑。
⼴播风暴以太⽹交换机传送的第⼆层数据帧不像路由器传送的第三层数据包有TTL(Time To Live),如果有环路存在第⼆层帧不能被适当的终⽌,他们将在交换机之间永⽆⽌境的传递下去。
结合交换机的⼯作原理,来看⼀下上⾯这张拓扑中⼴播风暴是如何形成的:1. PC1发出⼀个⼴播帧(可能是⼀个ARP查询),LSW1收到这个⼴播帧,LSW1将这个⼴播帧从除接收端⼝的其他端⼝转发出去(即发往G0/0/2、G0/0/3、G0/0/4)。
2. LSW2从⾃⼰的G0/0/1和G0/0/2都会收到SW1发过来的相同的⼴播帧,LSW2再将这个⼴播帧从除接收端⼝外的所有其他接⼝发送出去(LSW2将从G0/0/2接收的⼴播帧发往其他三个端⼝G0/0/1、G0/0/3、G0/0/4,从fa0/24接收到的也会发往其他三个端⼝G0/0/1、G0/0/3、G0/0/4)。
3. 这样这个⼴播帧⼜从G0/0/1以及G0/0/2传回了LSW1,LSW1再⽤相同的⽅法传回LSW2,除⾮物理线路被破坏,否则PC1-4将不停的接收到⼴播帧,最终造成⽹络的拥塞甚⾄瘫痪。
MAC地址表不稳定⼴播风暴除了会产⽣⼤量的流量外,还会造成MAC地址表的不稳定,在⼴播风暴形成过程中:1. PC1发出的⼴播帧到达LSW1,LSW1将根据源MAC进⾏学习,LSW1将PC1的MAC和对应端⼝G0/0/1写⼊MAC缓存表中。
2. LSW1将这个⼴播帧从除接收端⼝之外的其他端⼝转发出去,LSW2接收到两个来⾃LSW1的⼴播(从G0/0/1和G0/0/2),假设G0/0/2⾸先收到这个⼴播帧,LSW2根据源MAC 进⾏学习,将PC1的MAC和接收端⼝G0/0/2存⼊⾃⼰的MAC缓存表,但是这时候⼜从G0/0/1收到了这个⼴播帧,LSW1将PC1的MAC和对应的G0/0/1接⼝存⼊⾃⼰的MAC缓存表。
快速stp的工作原理快速生成树协议(Rapid Spanning Tree Protocol,RSTP)是一种基于快速交换的网络通信协议,用于在计算机网络中自动构建冗余链接并建立冗余路径,以确保数据传输的可靠性和高效性。
RSTP工作原理如下:1. 状态机: RSTP使用状态机来实现冗余路径的建立和维护。
每个端口拥有一个状态机,通过发送和接收控制帧来改变端口状态。
状态机有以下几种状态:- Disabled:端口完全关闭,不发送或接收数据帧。
- Blocking:端口接收配置信息并发送BPDU帧以及其他控制帧。
- Listening:端口准备接收数据帧,并发送BPDU帧以及其他控制帧。
- Learning:端口学习网络拓扑并更新端口的转发数据库。
- Forwarding:端口开始转发数据帧。
2. 快速收敛:RSTP通过减少网络链路从一个状态到另一个状态的切换时间,实现快速收敛。
当网络链路发生故障时,RSTP通过BPDU(Bridge Protocol Data Unit)帧的发送和接收来通知网络中其他设备进行相应的调整。
在RSTP中,BPDU帧包含以下信息:- 优先级:用于确定根桥和端口的优先级。
- 根路径成本:从根桥到当前桥的路径成本。
- 桥优先级:用于比较不同桥之间的优先级。
- 桥ID:用于唯一标识桥。
- 端口优先级:用于比较不同端口之间的优先级。
- 端口状态:用于确定端口的状态。
当网络链路发生变化时,RSTP通过计算根桥和端口的优先级,选择最佳路径,并重新计算转发数据库。
3. 快速端口转发:RSTP以快速速度确定最佳路径,并将端口从阻塞状态切换到转发状态。
RSTP使用以下机制来确保快速端口转发:- Port Cost:每个端口根据链路带宽设置一个成本值,选择成本最低的端口作为转发端口。
- Port Priority:每个端口都有一个优先级,优先级越高的端口越可能成为转发端口。
- Hello Time:通过减少发送Hello消息的时间间隔,来更快地检测端口状态的改变。
常用的生成树协议:STP(Spanning Tree Protocol)由IEEE802.1D定义,RSTP(Rapidly Spanning Tree Protocol)由IEEE802.1W定义,MSTP(Multiple Spanning Tree Protocol)由IEEE802.1S定义。
生成树严格意义上来讲属于应用层的东西,但是是为了解决二层的广播风暴问题,所以也可以看成是二层的东西。
STPSTP生成树计算原则:1.确定环路中的根桥。
根桥由BID(bridge ID)来确定(BID=2字节的网桥优先级+网桥的MAC地址构成,优先级默认为32768),具备最小的BID的交换机成为根桥。
2.确定根端口。
根端口选举原则是确定非根桥到根桥最小开销的端口。
(Root path cost).一般情况下,接口带宽越大则开销值越小。
选举原则:a.比较Root Path Cost(根路径开销),越小越优先,一样则b.端口上行交换机的Bridge ID(桥ID),越小越优先,一样则c.端口上行端口的Port Identifier,越小越优先(端口标识,端口标识号由1字节优先级+1字节端口号构成)3.确定指定端口。
为每个网段选出一个指定端口(Designated Port),指定端口为每个网段转发发往根交换机方向的数据,且转发由根交换机方向发往该网段的数据。
选举原则:a.比较Root Path Cost(根路径开销),越小越优先,相同则b.端口所属Bridge ID,越小越优先,相同则c.端口的Port ID。
4.确定阻塞端口。
环路中剩下的端口成为阻塞端口(Alternate Port),当指定端口有问题,就启用阻塞端口。
数据的转发路径:由下级非根交换机的指定端口到上级非根交换机的根端口,一直到根交换机的指定端口。
(这样就可以避免环路)STP端口状态描述状态数据帧MAC 生成树计算BPDU收发Disable No No No No NoBlocking No No No Yes No Listening No No Yes Yes YesSTP 有关的时间:Hello 2S,Max Age 20S,Forward Delay 15 S.从Listening 到Learning 要经过一个Forward Delay ,从Learning 到Forwarding 要经过一个Forward Delay 。
详解生成树协议STP/RSTP生成树协议是一种二层管理协议,它通过有选择性地阻塞网络冗余链路来达到消除网络二层环路的目的,同时具备链路的备份功能。
生成树协议和其他协议一样,是随着网络的不断发展而不断更新换代的。
“生成树协议”是一个广义的概念,并不是特指IEEE 802.1D中定义的STP协议,而是包括STP以及各种在STP基础上经过改进了的生成树协议。
STP/RSTP在网络发展初期,透明网桥的运用。
它比只会放大和广播信号的集线器聪明得多。
它的学习能力是把发向它的数据帧的源MAC地址和端口号记录下来,下次碰到这个目的MAC 地址的报文就只从记录中的端口号发送出去,除非目的MAC地址没有记录在案或者目的MAC地址本身就是多播地址才会向所有端口发送。
通过透明网桥,不同的局域网之间可以实现互通,网络可操作的范围得以扩大,而且由于透明网桥具备MAC地址学习功能而不会像Hub那样造成网络报文冲撞泛滥。
透明网桥也有它的缺陷,它的缺陷就在于它的透明传输。
透明网桥并不能像路由器那样知道报文可以经过多少次转发,一旦网络存在环路就会造成报文在环路内不断循环和增生,出现广播风暴。
为了解决这一问题,后来提出了生成树协议。
STP协议中定义了根桥(RootBridge)、根端口(RootPort)、指定端口(DesignatedPort)、路径开销(PathCost)等概念,目的就在于通过构造一棵自然树的方法达到裁剪冗余环路的目的,同时实现链路备份和路径最优化。
用于构造这棵树的算法称为生成树算法SPA (Spanning TreeAlgorithm)。
要实现这些功能,网桥之间必须要进行一些信息的交流,这些信息交流单元就称为配置消息BPDU(BridgeProtocol Data Unit)。
STP BPDU是一种二层报文,目的MAC是多播地址01-80-C2-00-00-00,所有支持STP协议的网桥都会接收并处理收到的BPDU报文。
如图所示:(1)在STP中:SW0为根网桥,SW0-F0/1、F0/2为指定端口。
SW1为非根网桥,SW1-F0/1为根端口,F0/3、F0/4为指定端口。
SW2为非根网桥,SW2-F0/2为根端口,F0/3为阻塞端口,F0/5为指定端口。
SW3为非根网桥,SW3-F0/4为根端口,F0/5为阻塞端口。
(2)RSTPSW0为根网桥,SW0-F0/1、F0/2为指定端口。
SW1为非根网桥,SW1-F0/1为根端口,F0/3、F0/4为指定端口。
SW2为非根网桥,SW2-F0/2为根端口,F0/3为替换端口,F0/5为指定端口。
SW3为非根网桥,SW3-F0/4为根端口,F0/5为替换端口。
运行STP时:在交换机刚开机时,所有交换机都发送BPDU,并认为自己是跟交换机,并且所有交换机的接口状态为【listening(监听)状态,当端口处在该状态时,它发送并接受BPDU】,当交换机收到别的交换机发过来的BPDU时,会与自己端口中的BPDU进行比较,如果比自己端口中的更好则对这个BPDU进行转发自己的BPDU就不会转发了(当然对BPDU里面的一些值会进行修改如Cost值等)。
等所有交换机都发送同一个BPDU时这时根网桥也就确定了,这时只有根网桥会发送BPDU,其它交换机只是转发根网桥的BPDU,同时其它交换机会依据根网桥选举出根端口和指定端口,并阻塞不是根端口和指定端口的端口。
根端口和指定端口会接收并转发BPDU,而阻塞端口只会接收BPDU不会转发,等所有选举都完成后大约是15秒,其根端口和指定端口会变为Learning(学习)状态,开始学习MAC 地址,但并不转发数据帧,只转发BPDU,大约在停留15秒后,根端口和指定端口变为Forwarding(转发)状态,端口可以转发数据帧。
也就是说在交换机刚开机时,交换机先经历listening(监听)状态,在经历Learning(学习)状态,整个过程需要30秒的时间,交换机才能收敛。
STP、RSTP、MSTP关系STP简介STP(Spanning Tree Protocol )是⽣成树协议的英⽂缩写。
该协议可应⽤于环路⽹络,通过⼀定的算法实现路径冗余,同时将环路⽹络修剪成⽆环路的树型⽹络,从⽽避免报⽂在环路⽹络中的增⽣和⽆限循环。
RSTP简介RSTP:快速⽣成树协议(rapid spanning Tree Protocol ):802.1w由802.1d发展⽽成,这种协议在⽹络结构发⽣变化时,能更快的收敛⽹络。
它⽐802.1d多了⼀种端⼝类型:备份端⼝(backup port)类型,⽤来做指定端⼝的备份。
MSTP简介多⽣成树协议MSTP(Multiple Spanning Tree Protocol)是IEEE802.1s中定义的⽣成树协议,通过⽣成多个⽣成树,来解决以太⽹环路问题。
⽬的:在以太⽹中部署MSTP协议后可实现如下功能:形成多棵⽆环路的树,解决⼴播风暴并实现冗余备份。
多棵⽣成树在VLAN间实现负载均衡,不同VLAN的流量按照不同的路径转发。
STP/RSTP的缺陷:RSTP在STP基础上进⾏了改进,实现了⽹络拓扑快速收敛。
但RSTP和STP还存在同⼀个缺陷:由于局域⽹内所有的VLAN 共享⼀棵⽣成树,因此⽆法在VLAN间实现数据流量的负载均衡,链路被阻塞后将不承载任何流量,还有可能造成部分VLAN 的报⽂⽆法转发。
MSTP对STP和RSTP的改进:为了弥补STP和RSTP的缺陷,IEEE于2002年发布的802.1S标准定义了MSTP。
MSTP兼容STP和RSTP,既可以快速收敛,⼜提供了数据转发的多个冗余路径,在数据转发过程中实现VLAN数据的负载均衡。
MSTP把⼀个交换⽹络划分成多个域,每个域内形成多棵⽣成树,⽣成树之间彼此独⽴。
每棵⽣成树叫做⼀个多⽣成树实例MSTI(Multiple Spanning Tree Instance),每个域叫做⼀个MST域(MST Region:Multiple Spanning Tree Region)。
华为三康技术有限公司Huawei-3Com Technologies Co.,Ltd.文档编号Document ID 密级Confidentiality level秘密文档状态Document Status共29页Total 29 pages Draft 1.00STP/RSTP 协议理解拟制Prepared by 沈岭Date日期2004-11-03评审人Reviewed by Date日期yyyy-mm-dd批准Approved byDate日期yyyy-mm-dd 华为三康技术有限公司Huawei-3Com Technologies Co., Ltd.版权所有侵权必究All rights reserved修订记录Revision Record日期Date修订版本RevisionVersion修改章节SecNo.修改描述Change Description作者Author2004-11-031.00 x.x.x; initial 初稿完成沈岭2005-11-0 8 1.1 x.x.x;y.y.y修改算法的部分描述,删除问题1,添加图6,添加判断复杂拓扑的方法,更新部分问题的描述,添加STP和RSTP对inferior BPDU的处理,添加STP TC-Protection特性沈岭目录1 S TP 生成树协议 (7)1.1STP的主要作用 (7)1.2STP的基本原理: (7)1.3STP端口的角色和状态 (8)1.4端口状态: (9)1.5STP算法 (9)1.5.1问题1 (12)1.5.2问题2 (13)1.6STP的计时器: (13)1.7STP拓扑结构改变 (14)1.8问题讨论 (16)1.8.1问题3的答案: (16)1.8.2附加题: (16)2 RSTP 快速生成树协议 (19)2.1RSTP的改进 (19)2.2P/A协商 (22)2.3拓扑结构变化 (23)2.3.1问题1: (24)2.3.2问题2: (25)2.3.3问题3 (25)2.3.4问题4: (25)2.3.5附加题 (26)2.4RSTP新增特性 (26)2.4.1BPDU Guard (26)2.4.2Root Guard (27)2.4.3Root Primary/Secondary (27)2.4.4Loop Guard (27)2.4.5STP Mcheck (28)2.4.6STP TC-protection (28)推荐资料: (29)参考资料: (29)图表目录图1 BPDU的报文格式 (7)图2 STP算法拓扑图 (10)图3 另一种可能的拓扑图...................................................................................... 错误!未定义书签。
图4 更复杂的一种情况.. (13)图5 Flag字段 (14)图6 TCN的发送和BPDU的泛洪 (15)图7 RSTP各端口角色 (19)图8 RSTP/STP BPDU的区别 (21)图9 RSTP的Flags字段 (21)图10 P/A协商机制 (23)图11 RSTP的TC泛洪 (24)图12 RSTP的拓扑变化 (24)前言众所周知,生成树协议是Lanswitching中最复杂的协议,协议的复杂度不仅表现在有STP/RSTP/MSTP等各种类型的生成树,以及各种参数和优化方案,更体现在算法、配置信息的交互比较和拓扑结构的变化上。
根据学习过程中所做的一些实验,本文提供了对算法较详细的描述以及关于各种拓扑结构变化的讨论,相信会让大家STP/RSTP模块的理解能提供较大的帮助。
STP/RSTP 协议理解1 STP 生成树协议1.1 STP 的主要作用消除环路:通过阻断冗余链路来消除网络中可能存在的路径回环。
链路备份:当前活动路径发生故障时,激活冗余备份链路,恢复网络连通性。
1.2 STP 的基本原理:通过在交换机之间传递一种特殊的协议报文——BPDU (在IEEE 802.1D 中这种协议报文被称为“配置消息”)来确定网络的拓扑结构。
配置消息中包含了足够的信息来保证交换机完成生成树计算。
(注:此BPDU 被称为配置BPDU ,另外STP 还有TCN BPDU 。
)DMALLC Headerpayload 2目的源配置消息固定域值SMAL/T 0x0180c20000000x424203BPDU 数据报文字节协议版本11标志位184822Max Age 222MAC 地址是一个固定的组播地址MAC 地址是发送配置消息的桥的MAC 地址。
的链路头帧长协议ID BPDU 类型根桥ID最短路径开销指定桥ID 指定端口ID Hello Time Forward DelayMessage Age图1 BPDU 的报文格式注意看BPDU 数据报文的最后8个字段,分别是:根桥ID :由树根的优先级(0-65535,默认32768)和MAC 地址组合而成;到树根的最短路径开销(实际由PortPathCost叠加而成),有两个标准——dot1d-1998,默认值为100和dot1t,默认值为200000;指定桥的ID:由指定交换机的优先级和MAC地址组合而成;指定端口的ID:由指定端口的优先级(0-256,默认128)和端口编号组成;配置消息的生存期:MessageAge;配置消息的最大生存期:MaxAge;配置消息发送的周期:HelloTime;端口状态迁移的延时:ForwardDelay。
启动了STP的交换机互相之间通过发送配置BPDU来完成根桥,指定桥的选举,各端口状态的选择和整个网络拓扑结构的确定。
比较的关键部分在于这八个字段中的前四个字段,即:根桥ID、路径开销、指定桥ID和指定端口的ID。
其实还有一个接收端口的ID,用于本地比较(当交换机的2个端口都收到相同的BPDU时——比如上连一个stp disable的交换机或hub)。
比较的原则:从上到下、从左到右数值小者优先。
STP协议使用的所有BPDU都是组播报文,目的MAC是01-80-c2-00-00-00。
1.3 STP端口的角色和状态STP拓扑结构的建立微观上说是一个全网交换机互相交互的过程,各台交换机相互之间不停的发送配置BPDU,发送和接受BPDU的是各switch的Ports,BPDU不单在不同交换机的端口之间比较,也在交换机的内部作比较,如果发现比自己“优”的BPDU,就进行报文的更新,如果发现对方传来的BPDU不如自己的,则丢弃报文,直到再收不到比自己更优的BPDU为止。
当网络中所有的交换机都处于这种状态的时候我们可以认为拓扑结构已经建立,但根端口和指定端口还得经过2个Forward Delay Time才能进入转发状态。
所以STP拓扑结构的建立实际上可以理解为端口角色的建立,所有端口都为指定端口的交换机被选为根桥,其余的为指定桥。
这里要提到5个概念:根桥,指定桥,根端口,指定端口,Block端口。
根桥就是“网桥ID”最优的桥,当STP的拓扑结构稳定之后由根桥负责每2秒(Hello Time)向树中所有的网桥发送配置BPDU报文,其他网桥接收并转发。
根端口即去往根桥路径最近的端口,这个最近的衡量是靠Root Path Cost来判定的。
有关Path Cost的计算,是每当一个端口收到一个BPDU后,会在该BPDU所指示的Path Cost上加上该端口的PortPath Cost (这是可以人为配置的)。
比较累计Root Path Cost 最小的端口就是根端口,如果有两条开销相同的路径,那么就选择桥BID 较小的。
指定桥就是对下游来说向它转发BPDU 报文的桥,一个LAN 上除了根桥以外的所有网桥都是指定桥。
为什么这么说呢?根据定义而来,指定桥上必定有指定端口(即使是网络边缘的网桥也有——连接到主机的端口),而指定端口就是用来转发BPDU 报文的。
这里要注意的是拓扑稳定后Root Port 是不发送BPDU 报文的,虽然它的状态是Forwarding ,它只接收BPDU 。
指定端口:即在一个LAN 里面负责转发BPDU 的端口,根桥和指定桥上都有它,但根端口只在指定桥上有,同样block 端口也只存在于指定桥上。
Block 端口:即被对方的指定端口抑制的端口,Block 端口不转发任何报文,但他接收BPDU ,监听网络变化。
根端口、指定端口、Block 端口即为STP 网桥端口的三个角色。
1.4 端口状态:如图所示,一共有5种端口状态:表1 STP 的五种端口状态前三个状态之间的转换各需要经过一个Forwarding Delay Time (15s ),这也是可以人为配置的。
关于几个计时器将在后面的内容加以介绍。
1.5 STP 算法现在重点讲一下STP 算法的实现,纯理论的讲算法过于枯燥,这儿以三台全互连的交换机为例描述一下实现过程。
(注:关于状态机的标准实现可以参考IEEE.802.1D ,这里只用容易理解的语言描述整个过程,可能有细节说法上不太规范,但更方便理解。
)Forwarding 转发用户流量的状态,只有根端口或指定端口才有这种状态。
Learning 构建MAC 地址表,这时接收到用户帧,网桥会填充自己MAC地址表。
所以是学习“状态”。
Listening 根桥、根端口、指定端口的选择就是在该状态内完成。
Blocking 仅仅接收Configuration BPDU 。
Disabled或Down ,认为阻断或物理上断掉。
AP2AP1BP1BP2CP1CP2ABC236图2 STP 算法拓扑图为了描述方便,这里指比较BPDU 的前四项:根桥ID (以以太网交换机的优先级表示),根路径开销,指定交换机ID (以以太网交换机的优先级表示),指定端口ID (以端口号表示)。
假设SWA,SWB,SWC 的桥优先级分别为0,1,2。
各链路开销为2,3,6。
这里要特别说明一点:Root Path Cost 不是一个可配置项,即它是由交换机根据Port Path Cost 比较而累积得出的,Port Path Cost 才是一个可配置的选项。
图中的链路开销可理解为2端端口的Port Path Cost ,只不过它们恰好相同而已。
(1)初始状态各台交换机的各个端口在初始时会生成以自己为根的配置消息,根路径开销为0,指定交换机ID 为自身交换机ID ,指定端口为本端口。
Switch A :端口AP1配置消息:{0,0,0,AP1} 端口AP2配置消息:{0,0,0,AP2} Switch B :端口BP1配置消息:{1,0,1,BP1} 端口BP2配置消息:{1,0,1,BP2} Switch C :端口CP2配置消息:{2,0,2,CP2} 端口CP1配置消息:{2,0,2,CP1} (2)选出最优配置消息各台交换机都向外发送自己的配置消息。