1、对生成树的理解生成树 教程 stp mstp MSTP协议简介概述协议背景 在二层交换网络中,一旦网络中存在有环路,就会造成报文在环路中不断的增生循环,产生广播风暴占用所有的有效带宽,造成网络的瘫痪。STP协议根据网络中的拓扑结构,将网络中的节点按照一定的算法生成一个树形的拓扑结构,从而避免网络中环路的存在。当网络中拓扑结构发生变化时,STP算法会根据新的网络拓扑重新计算树,生成新的树形结构,这样既提供了环路保护的功能,同时可以提供链路冗余的功能。这是STP协议最初产生时提供的功能。STP协议的发展STP协议和其他网络协议一样,是随着网络的不断发展而不断更新换代的。最初被广泛应用的是IEEE8
2、02.1D 1998版本,随后又出现了IEEE802.1W RSTP协议、IEEE802.1s MSTP协议。RSTP协议提供了端口状态的快速转换功能,使网络拓扑的收敛时间大为减少。MSTP协议在RSTP协议的基础上引入了域和实例的概念,首先将网络中不同的桥设备及其LAN划分为不同的域内,在域内设定各个VLAN到生成树实例的映射关系,这样既提供了快速收敛的能力,同时也在域内对网络冗余的网络带宽进行了有效应用。相关文档IEEE802.1D 1998版本 STP协议IEEE802.1W 2001版本 RSTP协议IEEE802.1s 2002版本 MSTP协议IEEE802.1D 2004版本 S
3、TP+RSTP协议IEEE协议于2004年将IEEE802.1D1998版本和IEEE802.1W2001版本合并为一个文档,是为IEEE802.1D2004版本。缩写词汇简写词全拼中文释义备注STPSpanning Tree Protocol生成树协议这里的生成树协议特指IEEE802.1D 1998版本中的生成树协议RSTPRapid spanning tree protocol快速生成树协议IEEE802.1w 2001MSTPMulti spanning tree protocol 多生成树协议IEEE802.1s 2002SSTSingle spanning tree单生成树协议CS
4、TCommon spanning tree公共生成树用于连接不同域之间的生成树CISTCommon and Internal Spanning Tree公共内部生成树ISTInternal spanning tree内部生成树MSTIMulti spanning tree instance多生成树实例STASpanning tree algorithm生成树算法BIDBridge Identifier桥IDBID是分配给每个bridge的唯一标识,用于确定bridge的优先等级。VLANVirtual Local Area Network虚拟局域网从逻辑上将一段在物理上属于同一个局域网的网段划
5、分为多个局域网,便于网络的管理和维护,同时可以将不同的业务进行隔离。VIDVLAN identifierVIDBPDUBridge Protocol Data Unit桥协议数据单元TCNTopology change notification拓扑更改通知TCN BPDUTCATopology change acknowledged拓扑更改回复TCA BPDUUCT无条件强制转换在RSTP状态机中有些状态在完成操作以后直接转换到下个状态,这种情况就称为UCT.STP协议介绍STP协议是一个单生成树协议,所谓单生成树协议,就是在网络中将所有的桥设备放到单个生成树拓扑中,保证网络连接的全联通性和无
6、循环链路。STP协议首先会为生成树选定一个跟,然后根据每个桥设备到根的距离来确定该桥到根的路径,这样由根、桥设备以及各个桥到根的路径组成了一个全联通且无循环的生成树。STP协议通过BPDU(桥协议数据单元)进行协议数据的交互。STP BPDU是一种二层报文,目的MAC是多播地址01-80-C2-00-00-00,所有支持STP协议的网桥都会接收并处理收到的BPDU报文,BPDU报文不会被转发。STP协议中的基本概念Bridge identifier(BID):每个桥有1个identifier,该BID由两部分组成。前两个字节表示优先级,默认为32768可取值范围在0-65535。后6个字节由b
7、ridge的MAC地址组成。确保网络中每个bridge的BID具有唯一性。Root Bridge(跟桥):网络中作为生成树树根的bridge,该bridge具有最小的BID。Root identifier(RID):跟桥具有的identifier。Path cost:数据包在网络中传输所需的路径开销。该开销根据局域网类型(带宽+双工模式)来确定数据包在网络中的路径开销。该开销是用来确定最优生成树的关键参数。Port identifier(PID):每个桥的每个端口具有一个PID,该PID由两部分组成,共16个bits。(前6个bits表示优先级,后10个bit表示端口名称,没看到官方文件说明)
8、。Root path cost:数据包到达跟桥的路径开销。Root port(根端口):非跟桥上到达跟桥路径开销最小的端口。Designated port(指定端口):连接到某局域网中的所有端口中具有最小根路径开销的端口。该端口被称为该局域网的指定端口。Designated bridge:局域网的指定端口所在的bridge被称为该局域网的指定端口。Alternate port:备份端口。STP协议中的端口状态Blocking(阻塞状态):该端口处于使能状态,但根据STP算法的计算结果,该端口不属于生成树的有效组成端口。(既有其他路径可以生成生成树结构,同时比该端口所在的路径具有更优的结构)。处
9、于阻塞状态的端口只接受STP BPDU报文,不转发STP BPDU报文;不接收和转发其他业务报文。Listening(监听状态):该端口处于使能状态,同时该端口已经被选为生成树的有效组成端口,但为了防止网络拓扑结构的动荡变化造成生成树的不稳当,在blocking和forwarding状态之间添加了listening状态,该状态监听网络中的BPDU报文判断是否有更优的路径,同时该端口开始将FDB表中的相关表项进行清除,该状态接受转发STP BPDU报文,不接受和转发普通业务报文。Learning(学习状态):该端口处于使能状态,同时该端口已经被选为生成树的有效组成端口。但为了防止网络拓扑结构的动
10、荡变化造成生成树的不稳当,在blocking和forwarding状态之间添加了learning状态,在端口保持在listening状态一定时间(forward timer)之后,若没有发现其他更优路径,则该端口有listening状态转换到learning状态。该状态监听网络中的BPDU报文判断是否有更优的路径,同时端口接受和转发STP BPDU报文,接收普通业务报文,并学习报文MAC地址,不转发普通业务报文。Forwarding(转发状态):该端口处于使能状态,同时该端口已经被选为生成树的有效组成端口。在端口处于listening状态一定时间之后(forward timer),若没有发现其
11、他更优路径,该端口有learning状态转换到forwarding状态。该状态接受和转发STP BPDU报文,同时接受和转发普通业务报文。Disable(禁用状态):该状态可以认为是物理上没有联通的端口。端口状态地址学习能力转发/接收报文能力接收BPDU报文发送BPDU报文DisabledNONONONO?BlockingNONOYESNOListeningNONOYESYESLearningYESNOYESYESForwardingYESYESYESYESSTP报文格式STP协议使用BPDU报文承载协议所需的交互信息。STP协议报文共有两种,配置报文(configuration BPDU)和
12、拓扑结构更改报文(topology change notification BPDU)。BPDU报文格式如下图。BPDU采用01-80-c2-00-00-00目标多播地址作为目标地址。Configuration BPDUProtocol identifier:占用1-2两个字节,STP协议的对应值为0000 0000 0000 0000。Protocol version identifier:占用第三个字节,STP协议的对应值是0000 0000BPDU Type:占用第四个字节,configuration BPDU对应值是0000 0000Flag:占用第五个字节,它的最高bit位(bit
13、8)标识Topology Change Acknowledgment flag。最低bit位(bit 1)标识Topology Change flag。其余bit位保留未定义。Root Identifier:树的根桥ID,每个桥发送BPDU时都会将该桥当前认为的跟桥ID放在这里。占用6-13八个字节。前两个字节是优先级,后6个字节是跟桥对应的MAC地址。Root Path Cost:发送BPDU的桥到跟桥的最短路径开销,占用14-17四个字节。Bridge Identifier:发送BPDU的桥的桥ID。占用18-25八个字节。Port Identifier:发送BPDU报文的指定端口的端口I
14、D。占用26-27两个字节。Message Age timer:消息年龄,用法还不清楚,占用28-29两个字节。Max Age timer:消息寿命。占用30-31两个字节。Hello Time:根hello时间,占用32-33两个字节,表示根发送BPDU报文的时间间隔。Forward delay:转发延迟,端口进行状态转换的延迟时间(端口有listening-learning和有learning到forwarding状态的转换都需要等待一个forward delay延迟的时间)。topology change notification BPDU如上图所示是TCN BPDU报文的格式。Prot
15、ocol identifier:占用1-2两个字节,STP协议的对应值为0000 0000 0000 0000。Protocol version identifier:占用第三个字节,STP协议的对应值是0000 0000BPDU Type:占用第四个字节,configuration BPDU对应值是1000 0000STP协议交互过程树的生成过程1、 在初始阶段,每个桥设备都会认为自己是根,然后发送自己的configuration message。2、 桥在收到其他桥发送的configuration message时,就会和自己的configuration message进行比较,如果更优收
16、到的configuration message,则替换自己的configuration message。选择根端口和指定端口,然后重新计算configuration message进行转发。3、 当网络中所有的桥设备都知道了跟桥是谁,并计算出了自己的根端口和指定端口,则生成树就生成了。拓扑改变收敛过程1、当桥设备发现有拓扑改变发生时,会通过根端口向根桥发送 TCN BPDU。2、根端口在接收到TCN BPDU时,会设置configuration message的TC Flag,通知全网络发生了拓扑改变,进行网络拓扑的重新计算。3、新的网络拓扑计算完成以后新的指定端口和根端口进入转发状态。RST
17、P协议介绍针对STP协议收敛时间太长的确定,IEEE定义了802.1w RSTP协议。该协议通过引入边缘端口,替换端口,备份端口等概念,使得端口状态的改变在某些情况下可以快速进行切换,从而实现生成树的快速收敛。RSTP协议中的基本概念Bridge identifier(BID):每个桥有1个identifier,该BID由两部分组成,共8个字节。和STP 802.1D1998中的BID定义不同。前四个bit是可配置的优先级;后12个bit是本地system ID扩展(该扩展是为了适应MSTP对每个VLAN一个生成树实例,避免设置4K个system ID),最后6个字节是bridge syste
18、m ID,一般去MAC Address。Root Bridge(跟桥):网络中作为生成树树根的bridge,该bridge具有最小的BID。Root identifier(RID):跟桥具有的identifier。Path cost:数据包在网络中传输所需的路径开销。该开销根据局域网类型(带宽+双工模式)来确定数据包在网络中的路径开销。该开销是用来确定最优生成树的关键参数。Port identifier(PID):每个桥的每个端口具有一个PID,该PID由两部分组成,共16个bits。(前6个bits表示优先级,后10个bit表示端口名称,没看到官方文件说明)。Root path cost:数
19、据包到达跟桥的路径开销。Root port(根端口):非跟桥上到达跟桥路径开销最小的端口。Designated port(指定端口):连接到某局域网中的所有端口中具有最小根路径开销的端口。该端口被称为该局域网的指定端口。Designated bridge:局域网的指定端口所在的bridge被称为该局域网的指定端口。Alternate port:备份端口,作为桥的根端口的备用端口,在根端口连接出现问题时,可以直接将备份端口设为根端口。Backup port:LAN的指定端口的备份端口。端口状态和端口角色RSTP中共有四种种端口状态,五种端口角色。端口状态Discarding,Learning,F
20、orwarding状态。端口角色Root port,Backup port,designated port,backup port,Disabled port。关于端口状态和端口角色之间的关系如下表所示:STP Port StateAdministrative port stateRSTP Port StateActive Topology(Port Role)DISABLEDDisabledDiscardingExcludedBLOCKINGEnabledDiscardingExcluded(Alternate, backup)LISTENINGEnabledDiscardingInclud
21、ed(Root, Designated)LEARNINGEnabledLearningIncluded(Root, Designated)ForwardingEnabledForwardingIncluded(Root, Designated)RSTP报文格式Protocol identifier:0000 0000 0000 0000Protocol version:0000 0010BPDU Type:0000 0010 denote a rapid spanning tree protocolFlag:octet 5Topology change flag:bit 1 of octet
22、5Proposal flag:bit 2 of octet 5Port role:bit 3-4 of octet 5,00 is unknown,01 is the alternate or backup,10 is the rote, 11 is the designated port。Learning flag:bit 5 of octet 5Forwarding flag:bit 6 of octetAgreement flag:bit 7 of octetTopology Change Acknowledgment flag:bit 8 of octet 5Root identifi
23、er:Octets 6 through 13 of the BPDU。端口状态的快速切换1、 边缘端口直接进入forwarding状态。2、 指定端口通过与对端进行握手进入forwarding状态。3、 根端口通过判断本桥是否有其他根端口处于forwarding判断是否直接进入forwarding状态(暂态)。4、 快速切换什么时候进行?只在拓扑结构发生改变,或者在生成初始树的时候也进行快速切换。握手过程1、 指定端口想对端发送proposal flag BPDU。2、 对端在收到proposal flag BPDU时,将所有其他端口设为discarding状态(同步过程)。3、 在将所有端口
24、设定为discarding状态以后,同步完成,向指定端口发送agreement flag BPDU4、 指定端口收到对端发来的agreement flag后将端口转换到forwarding状态。MSTP协议介绍MSTP协议是一个多生成树 (Multi Spanning Tree MST)协议,相对RSTP来说,主要是引入了实例和域的概念。域的概念是为了将网络中具有不同配置的网络段进行分割开,在网络段内部实行统一的配置,可以在域内进行独立的生成树构造。而域之间则使用一个单一生成树将所有的域连接起来(该生成树被称为CST,公共生成树),确保全链接和无环。在域的内部可以构造多个生成树实例,同时可以将
25、不同的VLAN映射到不同的生成树实例上。在每个域的内部都有一个实例ID为0的实例,该实例与CST共同组成了CIST(公共内部生成树)。该生成树将整个网络中的域和域内部的桥设备和网段连成一个全链接无环的树。MSTP的基本概念MST域:是由交换网络中的多台设备以及它们之间的网段所构成。这些设备具有下列特点:都启动了MSTP;具有相同的域名;具有相同的VLAN到生成树实例映射配置;具有相同的MSTP修订级别配置;这些设备之间在物理上有链路连通。MST Configuration identifier:用来标示一个bridge的 MST配置内容,以确定桥与桥之间是否能够在同一个域内。内容包括Confi
26、guration Identifier Format Selector,Configuration Name,Revision Level,Configuration Digest。CIST Root identifier:CIST跟桥的桥ID。CIST External root port cost:CIST 外部根路径开销,是指一个桥所在的域到CIST 跟桥所在的域之间的路径开销,在一个域内所有桥的CIST External root port cost都是一样的,在计算的时候CIST指计算域的跟桥的根端口所在LAN的路径开销。Regional Root Identifier:域的跟桥的桥
27、ID,域的跟桥并不是在域内的所有桥中ID最小的一个,而是域内到CIST跟桥的根路径开销最低的桥。Internal Root Port Cost:内部路径开销是指将域看做一个独立的局域网,域内的桥设备到域的跟桥的根路径开销。Master Port:Master port是指一个域中跟桥的根端口。该域通过该端口到达跟桥的路径最小。VLAN映射表:VLAN映射表是指将VLAN映射到某个具体的MSTI,在同一个域内所有桥设备的VLAN映射表必须保持一致,默认情况所有VLAN映射到实例0。CST:common spanning tree,用于联通不同域或非MSTP桥设备的生成树。MSTP的端口角色和端口
28、状态RSTP中共有四种种端口状态,六种端口角色。端口状态Discarding,Learning,Forwarding状态。端口角色Root port,Backup port,designated port,backup port,Disabled port,master port。关于端口状态和端口角色之间的关系如下表所示:STP Port StateAdministrative port stateRSTP Port StateMSTP Port StateActive Topology(Port Role)DISABLEDDisabledDiscardingDiscardingExclud
29、edBLOCKINGEnabledDiscardingDiscardingExcluded(Alternate,backup)LISTENINGEnabledDiscardingDiscardingIncluded(Root, Designated, master port)LEARNINGEnabledLearningLearningIncluded(Root, Designated, master port)ForwardingEnabledForwardingForwardingIncluded(Root, Designated, master port)MSTP报文格式MST BPDU
30、 parameters and formatProtocol identifier:0000 0000 0000 0000Protocol version:0000 0011BPDU Type:0000 0010CIST Flag: Topology change flag:bit 1 of octet 5 CIST Proposal flag:bit 2 of octet 5CIST Port Role:bit 3-4 of octet 5,00 is master,01 is the alternate or backup,10 is the rote, 11 is the designated port。CIST Learning flag:bit 5 of octet5CIST Forwarding flag:bit 6 of octet 5CIST Agreement flag:bit 7 of octet 5CIST Root Identifier:octet 6-13CIST External Root Path Cost:octet 14-17CIST Regional Root Identifier:octet 18-25CIST Port Identifi
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1