1、STP&RSTP&MSTP 技术原理,Page 2,STP:Spanning Tree Protocol RSTP:Rapid Spanning Tree ProtocolSTP为解决数据网络中的环路问题在网络上修剪出一棵无环的树, 并在主链路故障后,自动启用备份链路,使网络工作正常。但是STP在网络拓扑变化之后的收敛速度非常慢。RSTP是STP的升级版本,与STP相比,最显著的特点就是通过新的机制,加快了收敛速度。最新的STP标准由1998年发布的IEEE802.1D最新的RSTP原理由2004年发布的IEEE802.1D标准,前 言,Page 3,内容介绍,第1章 环路引起的问题第2章 生
2、成树基本计算过程第3章 配置BPDU第4章 RSTP原理第5章 MSTP简介,Page 4,L2 package转发流程回顾,E0/2,E0/3,E0/5,E0/6,00-0D-56-BF-88-10,00-0D-56-BF-88-20,PCA,SWA,SWB,PCB,Page 5,环路引起的问题之一 广播风暴,PCA,SWA,SWB,广播,如果交换机从一个端口上接收到的是一个广播数据帧,则向所有其它端口转发,而且交换机在转发数据帧的时候,对数据帧不做任何修改,因此,如果交换网络中有环路,则广播帧会被无限期的转发,形成广播风暴。,Page 6,环路引起的问题之二 MAC地址表不稳定,E0/3,
3、E0/4,E0/5,E0/6,PCA,SWA,SWB,00-0D-56-BF-88-10,E0/2,00-0D-56-BF-88-10,E0/2,00-0D-56-BF-88-10,E0/4,错误目的端口,Page 7,为什么引入生成树协议,通过阻断冗余链路来消除桥接网络中可能存在的路径回环当前活动路径发生故障时激活冗余备份链路恢复网络连通性,ROOT,LAN A,LAN B,LAN C,LAN D,LAN E,Page 8,第1章 环路引起的问题第2章 生成树基本计算过程第3章 配置BPDU第4章 RSTP原理第5章 MSTP简介,内容介绍,Page 9,生成树协议的基本原理,基本思想:在网
4、桥之间传递特殊的消息(配置消息),包含足够的信息做以下工作:从网络中的所有网桥中,选出一个作为根网桥(Root)计算本网桥到根网桥的最短路径对每个LAN,选出离根桥最近的那个网桥作为指定网桥,负责所在LAN上的数据转发非根网桥选择一个根端口,该端口给出的路径是此网桥到根桥的最佳路径选择除根端口之外的包含于生成树上的端口(指定端口),Page 10,LANE,生成树基本计算过程(1)选举根网桥,SWA,LANA,LANB,LANC,SWB,SWC,LAND,32768.00e0-fc16-ee43,32768.00e0-fc41-4259,32768.00e0-fc41-43b9,Root Br
5、idge,1.生成树计算的第一步是选举根网桥,根网桥的选举基于交换机标识(Bridge ID)。 交换机标识由两部分组成:两字节长度的交换机优先级和六字节长度的MAC地址。交换机优先级是可以配置的,取值范围是065535,默认值为32768。 网络中交换机标识最小的成为根交换机,首先比较优先级,如果优先级相同则比较MAC地址,值越小越优先。,Page 11,生成树基本计算过程(2)选举非根网桥的根端口,LANE,SWA,LANA,LANB,LANC,SWB,SWC,LAND,32768.00e0-fc16-ee43,32768.00e0-fc41-4259,32768.00e0-fc41-43
6、b9,Root Bridge,Root Port,Root Port,Page 12,生成树基本计算过程(2)选举非根网桥的根端口,2.STP协议为每个非根网桥选举根端口(Root Port)。(2.1)交换机的每个端口都有一个端口开销(Port Cost)的参数,端口的开销和端口的带宽有关,带宽越高,开销越小,比如百兆端口的开销值为200。从一个非根网桥到达根网桥的路径可能有多条,每一条路径都有一个总的开销值,此开销值是该路径上所有出端口的端口开销总和。(2)根端口是指从一个非根网桥到根网桥总开销最小的路径所占的本地端口。这个最小的总开销值称为交换机的根路径开销(Root Path Cost
7、)。如果这样的端口有多个,则比较端口上所连接的上行交换机的BridgeID,越小越优先,如果端口上所连接的上行交换机的BridgeID相同,则比较端口上所连接的上行端口的端口标识(Port Identifier),越小越优先。(3)端口标识由两部分组成:一字节长度的端口优先级和一字节长度的端口号。一字节长度的端口优先级是可配置的,默认为128。,Page 13,生成树基本计算过程(3)选举网段的指定端口,LANE,SWA,LANA,LANB,LANC,SWB,SWC,LAND,32768.00e0-fc16-ee43,32768.00e0-fc41-4259,32768.00e0-fc41-4
8、3b9,LANA的指定端口,LANB的指定端口,Root,LAND的指定端口,LANE的指定端口,LANC的指定端口,Alternate Port,Page 14,STP为每个网段选出一个指定端口(Designated Port),指定端口为每个网段转发发往根交换机方向的数据,并且转发由根交换机方向发往该网段的数据。指定端口所在的交换机称为该网段的指定交换机。为每个网段选举指定端口和指定交换机的时候,首先比较该网段所连接的端口所属交换机的根路径开销,越小越优先;如果根路径开销相同,则比较所连接的端口所属交换机的交换机标识(bridge ID:8bytes),越小越优先;如果根路径开销相同,交换
9、机标识也相同,则比较所连接的端口的端口标识,越小越优先。对于根交换机来说,所有端口都是所连网段的指定端口。因此LANA和LANB的指定端口都在SWA上。LAND和LANE都只连接了一个交换机端口,此端口即为指定端口。对于LANC来说,同时连接到两个交换机端口,并且两个交换机的根路径开销相同,因此需要比较两个端口所在交换机的交换机标识,由于SWB的交换机标识比SWC小(MAC地址更小),因此LANC的指定端口在SWB上。既不是根端口也不是指定端口的交换机端口称为Alternate Port(预备端口),预备端口不转发数据,处于阻塞状态。,生成树基本计算过程(3)选举网段的指定端口,Page 15
10、,交换机端口角色,稳定时处于转发状态的有根端口和指定端口。,Page 16,新预备端口暂未停止转发,可能的临时环路:在端口角色以及状态的变化过程中,可能会出现临时环路问题。,SWA,LANA,LANB,LANC,SWB,SWC,LAND,Root,E0/1,预备端口,根端口,E0/1,E0/2,SWD,新Root,指定端口,E0/2,新指定端口,新根端口,Page 17,Forwarding,端口状态转换图,Disabled,Learning,端口开启,端口禁用,端口禁用,端口禁用,端口禁用,Listening,Blocking,端口被禁用之后进入Disable状态。当一个端口从不转发状态进入
11、转发状态之前需要等待两次Forward Delay间隔,以解决前文所述可能的临时环路问题。,1:端口被选为指定端口(Designated Port)或根端口(Root Port);2:端口被选为预备端口(Alternate Port);3:经过Forward Delay间隔。Forward Delay默认为15秒。,Page 18,端口状态描述,Page 19,内容介绍,第1章 环路引起的问题第2章 生成树基本计算过程第3章 配置BPDU第4章 RSTP原理第5章 MSTP简介,Page 20,配置BPDU(Configuration BPDU)的封装与内容,用于检测最优配置BPDU,Page
12、 21,配置BPDU中的重要参数,比较次序:Root Identifier Root Path Cost Bridge IdentifierPort Identifier,值越小越优先,Page 22,在向整网泛洪拓扑改变信息的过程中,共涉及三种BPDU:拓扑改变通知BPDU:Topology Change Notification BPDU。用于非根交换机在根端口上向上行交换机通告拓扑改变信息,并且每隔Hello Time(2秒)发送一次,直到收到上行交换机的拓扑改变确认配置BPDU或者拓扑改变配置BPDU。2. 拓扑改变确认配置BPDU:Topology Change Acknowledg
13、ment Configuration BPDU。配置BPDU的一种,和普通配置BPDU不同的是此配置BPDU设置了一个Flag位。用于非根交换机在接收到拓扑改变通知BPDU的指定接口上向下行交换机发送拓扑改变通知的确认信息。3. 拓扑改变配置BPDU:Topology Change Configuration BPDU。此配置BPDU设置了另外一个Flag位。用于从根交换机向整网泛洪拓扑改变信息,所有交换机都在自己所有的指定端口上泛洪此BPDU。SWA收到SWB发送的拓扑改变通知BPDU之后,每隔2秒向网络中发送拓扑改变配置BPDU,使网络中所有的交换机都把MAC地址表的生存期修改为Forwa
14、rd Delay(15秒,目的:尽快学习新转发路由),经过一段时间(Max Age加上Forward Delay,默认为35秒)之后,SWA(根交换机)在自己发送的配置BPDU中,清除Flag位,表示网络拓扑已经稳定,网络中的交换机恢复MAC地址生存期。,洪泛拓扑改变信息,Page 23,Root,泛洪拓扑改变信息,LAND,拓扑改变通知BPDU,拓扑改变确认配置BPDU,拓扑改变配置BPDU,SWA,SWB,SWC,Page 24,内容介绍,第1章 环路引起的问题第2章 生成树基本计算过程第3章 配置BPDU第4章 RSTP原理第5章 MSTP简介,Page 25,生成树协议(STP)的不足
15、,端口从阻塞状态进入转发状态必须经历两倍的Forward Delay时间,所以网络拓扑结构改变之后需要至少两倍的Forward Delay时间,才能恢复连通性。如果网络中的拓朴结构变化频繁,网络会频繁的失去连通性,这样用户就会无法忍受。,Page 26,快速生成树协议RTP,快速生成树协议是从生成树协议发展而来,实现的基本思想一致;快速生成树具备生成树的所有功能;快速生成树改进目的就是当网络拓扑结构发生变化时,尽可能快的恢复网络的连通性。,Page 27,RSTP交换机端口角色,稳定时处于转发状态的有根端口和指定端口。,Page 28,STP与RSTP端口的比较,Page 29,预备端口和备份
16、端口,SWA,SWB,SWC,LANA,32768.00e0-fc16-ee43,32768.00e0-fc41-4259,32768.00e0-fc41-43b9,Root Bridge,SWD,32768.00e0-fc22-715a,Designated Port,Designated Port,E0/1,E0/2,Alternate Port,Backup Port,Root Port,Root Port,Root Port,对于既不是根端口,也不是指定端口的交换机端口(1)如果该端口所连接的网段的指定交换机为此端口所属的交换机,则端口状态设置为备份端口(Backup Port);(2
17、)如果该端口所连接的网段的指定交换机不是此端口所属的交换机,则端口状态设置为预备端口(Alternate Port)。,无论是备份端口还是预备端口,都不处于转发状态。,Page 30,RSTP端口状态,与STP不同,RSTP只定义了三种端口状态:Discarding(丢弃)状态,Learning(学习)状态,Forwarding(转发)状态。没有listening状态预备端口(Alternate Port)和备份端口(Backup Port)处于Discarding状态;指定端口(Designated Port)和根端口(Root Port)稳定情况下处于Forwarding状态;Learni
18、ng状态是某些指定端口和根端口在进入转发状态之前的一种临时状态。,Page 31,端口状态迁移风险分析,将端口状态从Forwarding状态迁移到Discarding状态(从根端口或者指定端口变成预备端口或者备份端口)是不会出现环路风险的,可以不经过等待立即转换;将端口状态从Forwarding状态迁移到Forwarding状态(从根端口变成指定端口或者从指定端口变成根端口)也不会引起环路风险,也可以不经过等待立即转换;端口状态迁移时能引起环路风险的是从Discarding状态迁移到Forwarding状态(从预备端口或者备份端口变成根端口或者指定端口),在STP中,从不转发状态迁移到Forw
19、arding状态需要等待两次Forward Delay间隔才能迁移,以保证网络中需要进入不转发状态的端口有足够的时间完成计算。但是RSTP对此做了改进。RSTP(快速生成树)的主要设计原则是,在没有临时环路风险的情况下,使原本处于不转发状态下的端口在成为指定端口或根端口之后,尽可能快的进入Forwarding状态,加快收敛速度。因此,如何确认网络中有没有环路风险是RSTP的重要内容。,Page 32,存在环路风险,需要等待其它交换机完成计算,端口状态迁移原则,已确认无环路风险或者已等待足够长时间,可以进行状态迁移,Discarding,Discarding,Forwarding,Forward
20、ing,Page 33,RSTP的改进选举新的根端口,SWA,LANA,LANB,LANC,SWB,SWC,32768.00e0-fc16-ee43,32768.00e0-fc41-4259,32768.00e0-fc41-43b9,LANA的指定端口,LANB的指定端口,Root,LANC的指定端口,预备端口,根端口,新根端口立即转发,一个非根交换机选举出一个新的根端口之后,如果以前的根端口已经不处于Forwarding状态,则新的根端口立即进入转发状态。,SWC上与LANB相连的端口为根端口,假设此端口断开,即不再处于转发状态,则SWC需要重新选择一个根端口,与LANC相连的端口于是从预备
21、端口成为新的根端口。由于旧的根端口已经不再处于转发状态,因此网络中没有环路风险,因此新的根端口可以立即进入转发状态,Page 34,RSTP的改进(边缘端口),LANE,SWA,LANA,LANB,LANC,SWB,SWC,LAND,32768.00e0-fc16-ee43,32768.00e0-fc41-4259,32768.00e0-fc41-43b9,根交换机,边缘端口,边缘端口(Edge Port)是指不连接任何交换机的端口,当把一个交换机端口配置成为边缘端口之后,一旦端口被启用,则端口立即成为指定端口(Designated Port),并进入转发状态。,Page 35,RSTP的改进
22、选举新的指定端口(ProposalAgreement”机制),RSTP使用“ProposalAgreement”:”建议-同意”协商机制加快非边缘端口成为新的指定端口之后,从Discarding状态进入Forwarding状态的速度。本例中,假设最初网络中各交换机的优先级优先次序为SWASWB SWCSWD;因此SWA为根交换机,SWD的E0/1为Alternate Port,处于Discarding状态。假设修改SWD的交换机优先级使优先级次序为SWDSWASWBSWC;协商机制的工作过程如下:1. SWD立即成为根交换机,E0/1和E0/2立即成为指定端口,E0/2保持转发状态不变,在E0
23、/1向外发送一个Proposal BPDU(建议BPDU),Proposal是设置了一个标志位的RSTP BPDU,此BPDU中同时包含计算生成树的参数;2. SWC收到Proposal之后,计算生成树,设置E0/1为根端口,保持转发状态,E0/2为指定端口。如果SWC收到Proposal的端口是新的根端口(不是SWC以前的根端口),则设置所有非边缘指定端口为Discarding状态,并向外发送新的Proposal;如果所有的非根端口都是边缘端口(即网络边缘交换机),则直接在接收到Proposal的端口上向外发送Agreement;本例中,SWC设置E0/2为Discarding状态并向外发送
24、新的Proposal;3. SWA收到Proposal之后,计算生成树,设置E0/1为预备端口,设置E0/2为根端口,如果收到Proposal的端口需要进入Discarding状态,则在该端口进入Discarding之后,向外发送一个Agreement(同意);本例中,SWA设置E0/1为Discarding状态并向外发送Agreement(同意);4. SWC的E0/2收到Agreement之后,立即进入转发状态,在所有非边缘指定端口收到Agreement之后,SWC在根端口上向外发送Agreement;本例中,SWC从E0/1向外发送Agreement(同意);5. SWD在指定端口上收到
25、Agreement之后,立即进入转发状态。本例中,SWC从E0/1收到Agreement(同意)把E0/1设为Forwarding;,Page 36,RSTP的改进选举新的指定端口(ProposalAgreement”机制),SWA,SWB,SWC,Root,D,E0/1,SWD,D,R,R,D,D,R,A,New Root,D,D,保持转发状态,Proposal,R,D,Proposal,R,A,Agreement,Agreement,进入转发状态,E0/2,E0/1,E0/2,E0/2,E0/1,保持转发状态,Discarding,进入转发状态,Page 37,ProposalAgreem
26、ent”机制的前提点到点链路,LAN,SWA,SWB,SWC,D,R,D,R,Proposal,Proposal,Agreement,过早进入转发状态,SWD,SWE,Page 38,ProposalAgreement”机制的前提点到点链路,使用“ProposalAgreement”的前提是泛洪Proposal BPDU和Agreement BPDU这两种消息的链路均为点到点链路,点到点链路是指两个交换机直接相连的链路。之所以必须使用点到点链路是因为点到多点链路有环路风险。如图所示,SWA向外发出一个Proposal之后,由于SWC是网络边缘,因此迅速返回一个Agreement,使SWA的新指
27、定端口进入转发状态,但是此时SWB、SWD和SWE等尚未完成ProposalAgreement的泛洪过程,因此,网络中存在环路风险。所以使用此“ProposalAgreement”要求交换机间链路必须为点到点链路。实质上,“ProposalAgreement”机制是一种在点到点链路上的“触发计算确认”机制,这种“触发计算确认”过程在点到点链路上泛洪,一直到达网络末端(边缘交换机,即非根端口均为边缘端口)或者预备端口(Alternate Port,处于Discarding状态,表示环路已被打断)。,Page 39,STP和RSTP互操作:,根据收到BPDU包的VER字节判断收到是STP还是RST
28、P包STP MODE的网桥节点收到RSTP的BPDU报文:丢弃RSTP MODE的网桥节点从某PORT收到STP的BPDU报文:经过2个Hello time时间后把该PORT设置为STP MODE,Page 40,内容介绍,第1章 环路引起的问题第2章 生成树基本计算过程第3章 配置BPDU第4章 RSTP原理与配置第5章 MSTP简介,Page 41,MSTP:多生成树协议(Multiple Spanning Tree Protocol),STP/RSTP无法实现load sharing, MSTP解决了这个问题: 实现了基于VLAN的load sharingSTP/RSTP端口状态是VLA
29、N无关的,因此也叫MST(Mono单生成树)MSTP:一个交换机可以跑多个生成树,为了区分,每一个生成树叫做一个MSTI(多生成树实例)。MSTP:一个或若干个VLAN可以映射到同一MSTI ,但是每个VLAN只能在一个MSTI中 。802.1s d9:“MSTI的状态机和RSTP一致”,Page 42,MSTP:多生成树协议(Multiple Spanning Tree Protocol),VLAN与MSTI的映射关系需要配置,没有配置VLAN与实例的映射关系时,所有VLAN映射到MSTI 0(实例0) MST Region:多生成树域域,是MSTP比较独特的概念。是一组划分了相同VLAN-
30、MSTI实例对应关系的相互连接的交换机的集合。对外可以看作一个STP节点。基于这个概念,MSTP成功的组织起了一种“大树套小树”的嵌套结构。每个交换机会配置一个MCID:多生成树配置ID, MST Configuration ID使用相同MCID的MST交换机会自动划分为一个域桥接网络中可以有多个域,每个域内各实例独立计算拓扑,不同域的实例互不干扰。,Page 43,MSTP协议基本原则, 每个实例上分别计算各自的生成树,互不干扰 每个实例的生成树的算法与RSTP基本相同 每个实例的生成树可以有不同的根,不同的拓扑 每个实例各自发自己的BPDU 每个端口在不同实例上的生成树参数可以不同 每个端口在不同实例上的角色、状态可能不同快速收敛的机制略有差异:MSTP网桥上游发起协商机制proposal,下游回应agreement,然后上游还要再发个agreement,要三次握手。然后两个端口才能进入转发状态。,