ZhanglinSTP&RSTP&MSTP技术原理Page2STP:SpanningTreeProtocolRSTP:RapidSpanningTreeProtocolSTP为解决数据网络中的环路问题在网络上修剪出一棵无环的树,并在主链路故障后,自动启用备份链路,使网络工作正常。但是STP在网络拓扑变化之后的收敛速度非常慢。RSTP是STP的升级版本,与STP相比,最显著的特点就是通过新的机制,加快了收敛速度。最新的STP标准由1998年发布的IEEE802.1D最新的RSTP原理由2004年发布的IEEE802.1D标准Page3第1章环路引起的问题第2章生成树基本计算过程第3章配置BPDU第4章RSTP原理第5章MSTP简介Page4L2package转发流程回顾E0/2E0/3E0/5E0/600-0D-56-BF-88-1000-0D-56-BF-88-20目的MAC地址目的端口00-0D-56-BF-88-1000-0D-56-BF-88-20..........E0/2E0/3..........目的MAC地址目的端口00-0D-56-BF-88-1000-0D-56-BF-88-20..........E0/5E0/6..........PCASWASWBPCB123Page5环路引起的问题之一——广播风暴PCASWASWB广播12344如果交换机从一个端口上接收到的是一个广播数据帧,则向所有其它端口转发,而且交换机在转发数据帧的时候,对数据帧不做任何修改,因此,如果交换网络中有环路,则广播帧会被无限期的转发,形成广播风暴。Page6环路引起的问题之二——MAC地址表不稳定E0/3E0/4E0/5E0/6PCASWASWB00-0D-56-BF-88-10目的MAC地址目的端口E0/200-0D-56-BF-88-10E0/200-0D-56-BF-88-10E0/4错误目的端口Page7为什么引入生成树协议通过阻断冗余链路来消除桥接网络中可能存在的路径回环当前活动路径发生故障时激活冗余备份链路恢复网络连通性ROOTLANALANBLANCLANDLANEPage8第1章环路引起的问题第2章生成树基本计算过程第3章配置BPDU第4章RSTP原理第5章MSTP简介Page9生成树协议的基本原理基本思想:在网桥之间传递特殊的消息(配置消息),包含足够的信息做以下工作:从网络中的所有网桥中,选出一个作为根网桥(Root)计算本网桥到根网桥的最短路径对每个LAN,选出离根桥最近的那个网桥作为指定网桥,负责所在LAN上的数据转发非根网桥选择一个根端口,该端口给出的路径是此网桥到根桥的最佳路径选择除根端口之外的包含于生成树上的端口(指定端口)Page10LANE生成树基本计算过程-(1)选举根网桥SWALANALANBLANCSWBSWCLAND32768.00e0-fc16-ee4332768.00e0-fc41-425932768.00e0-fc41-43b9RootBridge1.生成树计算的第一步是选举根网桥,根网桥的选举基于交换机标识(BridgeID)。交换机标识由两部分组成:两字节长度的交换机优先级和六字节长度的MAC地址。交换机优先级是可以配置的,取值范围是0~65535,默认值为32768。网络中交换机标识最小的成为根交换机,首先比较优先级,如果优先级相同则比较MAC地址,值越小越优先。Page11生成树基本计算过程-(2)选举非根网桥的根端口LANESWALANALANBLANCSWBSWCLAND32768.00e0-fc16-ee4332768.00e0-fc41-425932768.00e0-fc41-43b9RootBridgeRootPortRootPortPage12生成树基本计算过程-(2)选举非根网桥的根端口2.STP协议为每个非根网桥选举根端口(RootPort)。(2.1)交换机的每个端口都有一个端口开销(PortCost)的参数,端口的开销和端口的带宽有关,带宽越高,开销越小,比如百兆端口的开销值为200。从一个非根网桥到达根网桥的路径可能有多条,每一条路径都有一个总的开销值,此开销值是该路径上所有出端口的端口开销总和。(2)根端口是指从一个非根网桥到根网桥总开销最小的路径所占的本地端口。这个最小的总开销值称为交换机的根路径开销(RootPathCost)。如果这样的端口有多个,则比较端口上所连接的上行交换机的BridgeID,越小越优先,如果端口上所连接的上行交换机的BridgeID相同,则比较端口上所连接的上行端口的端口标识(PortIdentifier),越小越优先。(3)端口标识由两部分组成:一字节长度的端口优先级和一字节长度的端口号。一字节长度的端口优先级是可配置的,默认为128。Page13生成树基本计算过程-(3)选举网段的指定端口LANESWALANALANBLANCSWBSWCLAND32768.00e0-fc16-ee4332768.00e0-fc41-425932768.00e0-fc41-43b9LANA的指定端口LANB的指定端口RootLAND的指定端口LANE的指定端口LANC的指定端口AlternatePortPage14STP为每个网段选出一个指定端口(DesignatedPort),指定端口为每个网段转发发往根交换机方向的数据,并且转发由根交换机方向发往该网段的数据。指定端口所在的交换机称为该网段的指定交换机。为每个网段选举指定端口和指定交换机的时候,首先比较该网段所连接的端口所属交换机的根路径开销,越小越优先;如果根路径开销相同,则比较所连接的端口所属交换机的交换机标识(bridgeID:8bytes),越小越优先;如果根路径开销相同,交换机标识也相同,则比较所连接的端口的端口标识,越小越优先。对于根交换机来说,所有端口都是所连网段的指定端口。因此LANA和LANB的指定端口都在SWA上。LAND和LANE都只连接了一个交换机端口,此端口即为指定端口。对于LANC来说,同时连接到两个交换机端口,并且两个交换机的根路径开销相同,因此需要比较两个端口所在交换机的交换机标识,由于SWB的交换机标识比SWC小(MAC地址更小),因此LANC的指定端口在SWB上。既不是根端口也不是指定端口的交换机端口称为AlternatePort(预备端口),预备端口不转发数据,处于阻塞状态。生成树基本计算过程-(3)选举网段的指定端口Page15交换机端口角色端口角色描述RootPort根端口,是所在交换机上离根交换机最近的端口,处于转发状态。DesignatedPort指定端口,转发所连接的网段发往根交换机方向的数据和从交换机方向发往所连接的网段的数据。AlternatePort预备端口,不向所连网段转发任何数据。稳定时处于转发状态的有根端口和指定端口。Page16新预备端口暂未停止转发可能的临时环路:在端口角色以及状态的变化过程中,可能会出现临时环路问题。SWALANALANBLANCSWBSWCLANDRootE0/1预备端口根端口E0/1E0/2SWD新Root指定端口E0/2新指定端口新根端口Page17Forwarding端口状态转换图DisabledLearning端口开启端口禁用123322端口禁用端口禁用端口禁用ListeningBlocking端口被禁用之后进入Disable状态。当一个端口从不转发状态进入转发状态之前需要等待两次ForwardDelay间隔,以解决前文所述可能的临时环路问题。1:端口被选为指定端口(DesignatedPort)或根端口(RootPort);2:端口被选为预备端口(AlternatePort);3:经过ForwardDelay间隔。ForwardDelay默认为15秒。Page18端口状态描述端口状态端口行为描述Disabled端口没有启用此状态下端口不转发数据帧,不学习MAC地址表,不参与生成树计算。Listening侦听状态此状态下端口不转发数据帧,不学习MAC地址表,只参与生成树计算,接收并发送BPDU。Blocking阻塞状态此状态下端口不转发数据帧,不学习MAC地址表,此状态下端口接收并处理BPDU,但是不向外发送BPDU。Learning学习状态此状态下端口不转发数据帧,但是学习MAC地址表,参与计算生成树,接收并发送BPDU。Forwarding转发状态此状态下端口正常转发数据帧,学习MAC地址表,参与计算生成树,接收并发送BPDU。Page19第1章环路引起的问题第2章生成树基本计算过程第3章配置BPDU第4章RSTP原理第5章MSTP简介Page20配置BPDU(ConfigurationBPDU)的封装与内容LLCBPDUBridgeIDProtocolIdentifierProtocolVersionIdentifierBPDUTypeFlagsRootIdentifierRootPathCostBridgeIdentifierPortIdentifierMessageAgeMaxAgeHelloTimeForwardDelayDMACSMACLengthDataFCS用于检测最优配置BPDU0x00000x000x000x0001-80-C2-00-00-00Page21配置BPDU中的重要参数参数描述RootIdentifier发送此配置BPDU的交换机所认为的根交换机的交换机标识RootPathCost从发送此配置BPDU的交换机到达根交换机的最短路径总开销,含交换机根端口的开销,不含发送此配置BPDU的端口的开销BridgeIdentifier发送此配置BPDU的交换机的交换机标识PortIdentifier发送此配置BPDU的交换机端口的端口标识比较次序:RootIdentifierRootPathCostBridgeIdentifierPortIdentifier值越小越优先Page22在向整网泛洪拓扑改变信息的过程中,共涉及三种BPDU:1.拓扑改变通知BPDU:TopologyChangeNotificationBPDU。用于非根交换机在根端口上向上行交换机通告拓扑改变信息,并且每隔HelloTime(2秒)发送一次,直到收到上行交换机的拓扑改变确认配置BPDU或者拓扑改变配置BPDU。2.拓扑改变确认配置BPDU:TopologyChangeAcknowledgmentConfigurationBPDU。配置BPDU的一种,和普通配置BPDU不同的是此配置BPDU设置了一个Flag位。用于非根交换机在接收到拓扑改变通知BPDU的指定接口上向下行交换机发送拓扑改变通知的确认信息。3.拓扑改变配置BPDU:TopologyChangeConfigurationBPDU。此配置BPDU设置了另外一个Flag位。用于从根交换机向整网泛洪拓扑改变信息,所有交换机都在自己所有的指定端口上泛洪此BPDU。SWA收到SWB发送的拓扑改变通知BPDU之后,每隔2秒向网络中发送拓扑改变配置BPDU,使网络中所有的交换机都把MAC地址表的生存期修改为ForwardDelay(15秒,目的:尽快学习新转发路由),经过一段时间(MaxAge加上ForwardDelay,默认为35秒)之后,SWA(根交换机)在自己发送的配置BPDU中,清除Flag位,表示网络拓扑已经稳定,网络中的交换机恢复MAC地址生存期。洪泛拓扑改变信息Page23Root泛洪拓扑改变信息LAND拓扑改变通知BPDU拓扑改变确认配置BPDU拓扑改变配置BPDUSWASWBSWCPage24第1章环路引起的问题第2章生成树基本计算过程第3章配置BPDU第4章RSTP原理第5章MSTP简介Page25生成树协议(STP)的不足端口从阻塞状态进入转发状态必须经历两倍的ForwardDelay时间,所以网络拓扑结构改变之后需要至少两倍的ForwardDelay时间,才能恢复连通性。如果网络中的拓朴结