您好,欢迎访问三七文档
SpanningTreeprotocolSpanningTree1.什么是SpanningTree?为什么需要它?2.STP(802.1D)3.SpanningTree怎样工作?4.RSTP(802.1W)桥接网络环路问题为什么需要STP桥接网络环路问题由于交换机不能过滤广播帧,在交换网络出现了物理环路,那么广播帧就会在全网内不断转发和复制,导致广播风暴的产生,致使整个网络瘫痪BroadcastpacketswitchbswitchaLAN1LAN2环路的产生•当SwitchA的LAN内PC1发出一个广播帧,LAN1内所有节点都能收到它,SwitchA也不例外,由于是广播帧,SwitchA要将它向所有端口转发,因此,这个广播帧会出现在LAN2中。SwitchB收到这个广播帧也要转发该帧,它又会再发送到SwitchA上,出现在LAN1中,SwitchA收到该帧后又会转发到LAN1和SwitchB,如此反复,广播帧会在环路中无休止的传播,形成广播风暴。生成树协议原理BroadcastpacketBroadcastpacketSpanningTreeProtocolBroadcastpacket阻塞端口打破环路Breaktheloop生成树协议原理•STP的基本思想就是生成“一棵树”,树的根是一个称为根桥的交换机,根据设置不同,不同的交换机会被选为根桥,但任意时刻只能有一个根桥。由根桥开始,逐级形成一棵树,根桥定时发送配置报文,非根桥接收配置报文(BPDU)并转发,如果某台交换机能够从两个以上的端口接收到配置报文,则说明从该交换机到根有不止一条路径,便构成了环路,此时交换机根据端口的配置选出一个端口并把其他的端口阻塞,消除循环。当某个端口长时间不能接收到配置报文的时候,交换机认为端口的配置超时,网络拓扑可能已经改变,此时重新计算网络拓扑,重新生成一棵树。这样既提供了冗余备份用于又避免了环路。生成树协议原理BroadcastpacketSpanningTreeProtocolBroadcastpacketX被阻塞的端口转变为转发状态BPDU帧结构•对于运行STP的交换机,它能够使用BPDU来完成下列任务:•选举根桥•确定冗余路径的位置•通过阻塞特定端口来避免环路•通告网络的拓扑变更•监控生成树的状态BPDU帧结构•BPDU有两种类型。•配置BPDU:这种BPDU是根网桥以周期间隔(hellotime)发出,BPDU包括STP相关参数。配置BPDU只能由根桥产生。•TCNBPTU:这种BPDU是当交换机检测到拓扑变化时产生的。BPDU帧结构BPDU主要包括根BID、根路径开销、发送者BID和端口ID信息。BPDU•网桥为每个端口存储一个其收到的最佳BPDU,当有其他的BPDU到达交换机的端口时,交换机会判断此BPDU是否比该端口原来存储的BPDU更好,如果新收到的BPDU(或者本地生成的BPDU)更好,则替换原有值。•当一个网桥第一次被激活时,其上所有端口每隔一个HELLO时间(默认2秒)发送一次BPDU;如果一个端口发现从其他网桥收到的BPDU比自己发送的好,则本地端口就停止发送BPDU;如果在MAXAGE(最大生存时间,默认20秒)内没有从邻居网桥收到更好的BPDU,本地端口则重新开始发送BPDU,即最大生存时间是最佳BPDU的超时时间。Stp的工作过程•STP需要根据BPDU识别根网桥、根端口和指定端口,在指定决策中,交换机需要依次使用下面的规则:•最低的到达根网桥的路径开销•最低的发送方网桥ID•最低的端口优先级•最低的端口IDStp的工作过程(2)RootPorts(3)DesignatedPorts(3)DesignatedPorts(1)RootBridge(4)BlockNon-Rootandnon-DesignatedportStp的工作过程•生成树协议的工作过程分为三个阶段(1)在同一个网络内选举一台交换机为根桥网络中启动生成树协议的交换机通过比较BridgeID的大小来选举根桥。协议规定,BridgeID值最小的交换机成为根桥,根桥只有一个。Stp的工作过程•(1)启动生成树协议后,交换机通过传递BPDU数据帧来互相识别对方并交换一些必要的信息。BPDU携带BridgeID,它由交换机的优先级和MAC地址构成。先比较优先级,如果相同再比较MAC地址,优先级越高的越有可能成为根桥,因此,网络管理员可以通过控制网桥优先级的大小来指定哪台交换机是根桥。•交换机通过传递BPDU来发现谁是最小的BID,从而将具有最小BID的网桥做为根交换机。最初时,交换机总将自己认为是根网桥,当它发现有比自己小的BID时,就将收到的具有最小BID的交换机作为根网桥。Stp的工作过程•(2)在每个非根桥上选择根端口在选出根桥后,其余的所有交换机都成为非根桥。选择根端口的原则是比较从各端口到达根桥的路径开销值(PathCost),代价最小的为根端口。BPDU中携带路径花费参数,表示BPDU从根桥到达接收它的端口所花费的路径代价值。该值是数据所走路径中经由的所有路径开销之和。当非根桥从多个不同端口收到根桥的BPDU时,读取该值就可以得出从哪一个端口到达根桥开销最小。Stp的工作过程•如果出现多个端口的路径开销值相同的情况,此时比较转发根桥BPDU的交换机的ID号(BPDU中携带),与有较低ID号交换机相连的端口为根端口;如果ID号相同,则比较转发根桥BPDU的端口优先级(BPDU中携带),优先级高的被选中为根端口。如果优先级也相同的话,则比较转发根桥BPDU的端口ID,有最小ID值的端口被选为根端口(BPDU中携带该值)。PortID是端口的MAC地址派生出来的,因为MAC地址是唯一的,所以能够保证选出一个唯一的根端口。Stp的工作过程•如果两条链路Cost值相同的情况下,交换机SwitchY选择根端口的过程是这样的:Stp的工作过程•首先比较路径开销,因为路径开销相等则比较转发BPDU的交换机ID,因为它的两个端口都从SwitchX接收根桥的BPDU,所以交换机ID也相同。接着比较SwitchX的两个转发BPDU的端口的端口优先级(此例是根桥自己转发的)。端口优先级相同比较SwitchX的两个向SwitchY转发根桥BPDU的端口的端口ID,最终,与SwitchX的较小端口ID相连的SwitchY的端口成为根端口。Stp的工作过程(3)在每个网段上选举指定端口选择的原则是比较网段中各端口到达根桥的路径开销,具有最小代价的端口为指定端口,如上图,交换机连接上下2个网段,在上面的网段中显然是根桥上的端口到根桥所花费的代价最小(代价为0);同理下面的网段也是根桥上的端口到根桥所花费的代价最小(代价是0),因此这SwitchX2个端口被选定为指定端口。Stp的工作过程在多个端口的路径开销相同的情况下,比较转发根桥BPDU的交换机的BridgeID,有较小的ID的被选中;如果BridgeID相同,比较转发根桥BPDU的端口优先级,优先级高的被选中;如果优先级相同,比较转发根桥BPDU的PortID,有较小ID的被选为指定端口。下图这个例子来说明在多个端口的开销路径相同的情况下,选择指定端口。Stp的工作过程Switchb上的port4和switchc上的port4到根路径开销相同,比较他们各自的转发bpdu的bridgeID,将会选择switchc上的port4为指定端口。Stp的工作过程这三个阶段完成后,网络中有唯一的一个交换机作为根桥,每个非根桥唯一的一个根端口;在每个网段上有唯一的一个指定端口。这是交换机上的端口分为3种类型,它们是根端口,指定端口和未被选举上的端口。根端口和指定端口进入转发状态,落选的端口进入阻塞状态,这样就打破了环路。Stp的工作过程处于阻塞的端口虽然不转发用户数据,但是它们还是要处理BPDU数据包的。另外在默认情况下根桥没2秒发送一次BPDU,因此非根桥与其每2秒应该收到一个BPDU数据,交换机的根端口在一定的时间间隔(默认maxage=20s)内收不到BPDU数据,就会认为该链路已经失去与根桥的连接,则会请求重新进行生成树计算,启动阻塞端口替代中断的链路。拓扑改变消息的传播Root拓扑改变通知消息拓扑改变应答消息拓扑改变消息12344566802.1W概述•(1)定义的端口状态•802.1定义5种端口状态:disabled,blocking,listening,learning,andforwarding.802.1dBlockingListeningLearningForwarding•802.1w定义3种端口状态:discarding,learning,andforwarding.802.1wDiscardingLearningForwarding802.1W概述(1)定义的端口状态802.1D端口状态802.1W端口状态在活动拓扑吗?学习MAC地址吗?DisabledDiscardingNoNoBlockingDiscardingNoNoListeningDiscardingNoNoLearningLearningNoYesForwardingForwardingYesYes•阻塞状态(Blocking)不参与帧转发,监听流入的BPDU。•侦听状态(Listening)如果一个网桥在启动或者在一定时间没有收到BPDU后立即认为自己是根交换机,端口进入侦听状态,侦听状态是一种不传用户数据的STP状态,仅在端口发送和接收BPDU报文。努力确定一个活动的拓扑选举根桥,根端口和指定端口发生在侦听状态期间。在指定端口选举中失败的端口成为非指定端口,并回到阻塞状态,剩下的指定端口或者根端口在15s后进入学习状态。选举根桥,根端口和指定端口发生在侦听状态期间。在指定端口选举中失败的端口成为非指定端口,并回到阻塞状态,剩下的指定端口或者根端口则进入学习状态。•学习状态(Learning)学习状态是网桥不传递用户数据帧但构建桥接表并收集信息的一种STP状态。当网桥收到一个帧,他将源MAC地址和端口对应写在交换列表中,但不转发帧。•转发状态(Forwarding)能够转发数据帧,端口学一接收帧的源MAC地址,而将他们进行恰当转发。标准生成树的收敛当拓扑发生变化时生成树再次计算,原来被阻塞的端口转变为转发端口替代原来发生故障的链路。一个阻塞端口从阻塞状态转变到转发状态需要经由以下几个过渡过程:a:从阻塞状态到倾听状态,需要20Sb:从倾听状态到学习状态,需要15Sc:从学习状态到转发状态,需要15S从倾听状态到转发状态所需的时间成为转发时延,用来强迫端口等待以从其他交换机上获得BPDU。由于从阻塞状态转变为转发状态需要一段时间,所以用户数据通信在生成树重新计算时会中断。为弥补802.1Q转发延迟大的缺陷,又推出了快速生成树标准(RSTP)802.1W802.1W概述(2)802.1W定义的端口角色RSTP为了快速收敛,在拓扑变化中一旦端口被选举为新的根端口,该端口就立即进入转发状态,不再经由倾听、学习阶段802.1D中定义的blocking觉得在802.1W中被分为两种角色,分别是替代端口角色(alternateportrole)和备份端口角色(backupportrole).802.1W概述替代端口角色是指能够接收到其他交换机BPDU的一个discarding端口,一旦该交换机的根端口失效,该端口就立即进入转发状态而替代失效的根端口与根桥连接,不需要等待30秒的转发延迟。802.1W概述交换机A下面的端口可以收到交换机B转发的BPDU,且当前为discarding状态,所以成为替代端口角色。一旦A的根端口失效,它将立即转变为转发状态。RootBridgeABBPDUBPDUAlternatePort802.1W概述备份端口不同于替代端口的是,备份端口不负责根端口的失效,并和被备份的端口处在同一台交换机上,为不同网段的指定端口做备份。备份端口是能收到同一台交换机BPDU的discarding端口ABBPDUBPDUBack
本文标题:生成树协议stp
链接地址:https://www.777doc.com/doc-3323776 .html