生成树协议STP、RSTP和MSTP原理的理解

更新时间:2023-07-12 05:14:52 阅读: 评论:0

⽣成树协议STP、RSTP和MSTP原理的理解
在组⽹中,很可能会出现环路或者称冗余链路,为避免形成⼴播风暴,需要⼀种⽅法来避免形成环路,并且在主链路故障中断时候,可以将冗余链路⾃动切换为转发状态,以恢复⽹络的连通性。⽣成树协议(STP、RSTP、MSTP)就可以实现这样的功能。
STP(802.1D,Spanning Tree Protocol,⽣成树协议)
基本思想
将⽹络的拓扑修剪为树形拓扑,拓扑图形状与⼀棵树相似,这样就不会产⽣环路了。
原理(标⿊的会在后⾯做详细介绍)
1. 在每个运⾏STP协议的设备上依据⼀定的准则选举出⼀个树根节点作为⽹络中的根桥,其他节点为⾮树根节点。
2. 每⼀个⾮树根节点,会选择最优的路径和根桥相连,每个⾮树根节点上位于最优路径的端⼝,为该⾮树根节点的根端⼝。
3. 如果⾮树根节点存在冗余链路,则会对相应端⼝进⾏阻塞
基本概念介绍
根桥(Root Bridge):是整个⽣成树的根节点,所有⽹桥中优先级最⾼的桥。会计档案移交清册
指定桥(Designate Bridge):负责⼀个物理段(相对于两个⽹桥⽽⾔是⼀个物理段)上数据转发任务的桥。
根端⼝(Root Port):指⼀个⽹桥上距离跟桥最近的端⼝。根桥上没有根端⼝,只有⾮根桥上有且仅有⼀个根端⼝。
指定端⼝(Designate Port):指定桥上的端⼝,就是⽤于转发⽣成树信息报⽂的端⼝。根桥上全是指定端⼝。
候补端⼝(Alternate Port):⽤来为根端⼝或指定端⼝做备份的端⼝,即为最终需要阻塞的端⼝。
桥ID(Bridge ID):每⼀个运⾏STP协议的⽹桥都会有⼀个桥ID,⽤于在⽹络中唯⼀标识⼀个桥,由桥优先级和桥MAC地址组成,桥优先级占2字节,桥MAC地址占6个字节。桥优先级只能是4096的整数倍,最⼤为61440,默认为32768。
路径开销(Path Cost):STP中每条链路都具有开销值,默认的开销值取决于链路的带宽,带宽越⼤,
开销越⼩。例如IEEE标准的开销,链路速度为10Gbps开销为2,速度为100Mbps时开销为19,速度为10Mbps时候开销为100。
BPDU(Bridge Protocol  Data Unit,桥协议数据单元):⽤于⽹桥之间传递BPDU来交互协议信息。BPDU分为配置BPDU和
TCN BPDU。配置BPDU⽤来进⾏⽣成树的计算和维护⽣成树拓扑的报⽂。TCN BPDU是当拓扑结构改变时候,⽤来通知相关桥设备⽹络拓扑结构发⽣变化的报⽂。
BPDU报⽂分析
Protocol Identifier:固定为0x0000,表⽰是⽣成树协议
Protocol Version Identifier:协议版本号,STP版本号为0x00
BPDU Type:配置BPDU类型为0x00,TCN BPDU类型为0x80
Flags:由8位组成,最低位为TC标志位,最⾼位为TCA标志位,其他6位保留。当拓扑结构变化时候,下游⽹桥将会从根端⼝发送
TCN BPDU报⽂,TC标志位置为1,上游⽹桥收到后进⾏相应处理,回复配置BPDU报⽂,TCA标志位置为1.
Root Identifier:根桥ID,包含优先级和MAC地址,标识⽹络中的根桥。
ie浏览器升级Root Path Cost:根路径开销,指从发送该配置BPDU的⽹桥到根⽹桥的最⼩路径开销,是所有链路开销的代数和。
Bridge Identifier:发送该配置BPDU的⽹桥ID,即该指定桥的ID。
Port Identifier:发送该配置BPDU的⽹桥的发送端⼝ID。
Message Age:从根桥⽣成配置BPDU开始,到当前时间为⽌配置BPDU的存活时间。
Max Age:配置BPDU存活的最⼤时间。
Hello Time:根桥⽣成并发送配置BPDU的周期,默认为2s
Forward Delay:配置BPDU传播到全⽹的最⼤时延,默认为15s
接⼝状态
状态名称状态描述
禁⽤(Disable)不能收发BPDU,也不能收发数据帧
阻塞(Blocking)该接⼝被STP阻塞。不能发送BPDU,但是会持续侦听BPDU。不能收发数据帧
侦听(Listening)表明STP初步认定该接⼝为根接⼝或指定接⼝,但STP还在计算过程中,可以收发BPDU,但不能收发数据帧,也不能进⾏MAC地址学习
学习(Learning)会侦听业务数据帧,但不能转发数据帧,并可以学习MAC
转发(Forwarding)正常收发数据帧,也会进⾏BPDU处理,只有根端⼝或指定端⼝才能进⾏转发态
当交换机的⼀个接⼝被激活后,该接⼝会从禁⽤状态⾃动进⼊阻塞状态。阻塞状态的接⼝如果被选举为根接⼝或者指定接⼝,那么它将从阻塞状态进⼊侦听状态,并在侦听状态停留15s(转发延迟时间),为了让STP完成整个⽹络的计算。15s后如果还是根接⼝或者是指定接⼝,就会进⼊学习状态,因为此时交换机没有学习到任何MAC地址,这个状态也要停留15秒,之后才会变成转发态。
计算过程
确定跟桥
近视眼防治每⼀个交换机启动stp服务,都会认为⾃⼰是跟桥,并向外发送以⾃⼰为根桥的配置BPDU报⽂。
平凡之路歌词完整版
交换机接收到BPDU报⽂,会和⾃⼰的桥ID对⽐,桥ID由优先级和mac地址组成,先⽐较优先级,优先级相同,再⽐较mac地址,值越⼩就会认为更优。⽐如接收到BPDU报⽂的root id为8192-0000.0000.0001,⾃⼰的桥id为32768-0000.0000.0002,因为先⽐较优先级,优先级8192优于32768,则认为⾃⼰不是根桥,就不发送认为⾃⼰是根桥的BPDU了,并通过接收到的BPDU报⽂更新⾃⾝的配置BPDU。直到⽹络中所有的交换机都达成⼀致,认为某⼀个交换机为根桥,根桥的选举结束,从⽽确认唯⼀根桥。
确定端⼝⾓⾊
当确认⾃⼰本⾝不是根桥的同时就开始确认端⼝⾓⾊了。
确定根端⼝
因为我刚好遇见你当⼀个交换机多个接⼝同时接收到了根桥发来的配置BPDU报⽂,会获取Root Path Cost,也就是根路径开销,与接收端⼝的链路开销相加,得到此端⼝到根桥的根路径开销,对⽐,根路径开销值最⼩的作为根端⼝。
自动化技术与应用
如果根路径开销相同,对⽐BPDU报⽂中的Bridge Identifier,也就是发送该BPDU报⽂指定桥的ID,ID⼩的作为根端⼝。
如果指定桥ID也相同,则对⽐Port Identifier,发送⼝的端⼝ID,ID⼩的作为根端⼝
确定指定端⼝和Alternate备份端⼝
当确定根端⼝后,会将通过⾃⼰从根端⼝收到的BPDU报⽂计算⽣成的配置BPDU报⽂与⾮根端⼝接收到的配置BPDU进⾏⽐较,依次对⽐根路径开销、指定桥和端⼝id,⾃⼰计算产⽣的BPDU优于接收到的,则将此接收到的端⼝设置为指定端⼝,否则设置为Alternate端⼝(即阻塞起来)。
拓扑结构发⽣改变时
当有端⼝断开或新⽹桥加⼊时,拓扑发⽣了改变,就会使⽤到TCN BPDU报⽂,⽬的是让STP能快速的收敛。
产⽣BPDU报⽂的条件:
1. ⽹桥上有端⼝转变为Forwarding转发状态,且该⽹桥⾄少包含⼀个指定端⼝。
2. ⽹桥上有端⼝从Forwarding状态或Learning状态转变为Blocking状态。
拓扑改变时候STP处理步骤:
1. 会从该发⽣变化的交换机的根端⼝发送TCN BPDU报⽂
2. 上游交换机收到TCN BPDU报⽂,会将下⼀个配置BPDU报⽂中的TCA置为1,发送给下游交换机,来确保通往根桥的链路有效性
3. 重复1,2步骤,直到根桥交换机收到TCN BPDU报⽂,并将下⼀个配置BPDU报⽂中的TC置为1,发送给下游所有的交换机,各⽹桥
收到TC置为1的配置BPDU报⽂后,会将MAC地址⽼化时间缩短为15秒
浏览器崩溃STP的不⾜
为避免环路,每⼀个端⼝在确认为根端⼝或指定端⼝后仍需要等待30s才能进⼊转发状态。
对于⽹络中有⼤量主机时候,频繁上下线会导致频繁发送TCN BPDU报⽂,导致⽹桥MAC地址⽼化时间长期为15s。
RSTP(802.1W,Rapid Spanning Tree Protocol,快速⽣成树协议)
STP与RSTP区别概要
STP RSTP
端⼝状态禁⽤、阻塞、侦听、学习、转发丢弃、学习、转发
端⼝⾓⾊根端⼝、指定端⼝、备份端⼝(Alternate)根端⼝、指定端⼝、根备份端⼝(Alternate)、指定端⼝备份
端⼝(Backup)
民族团结主题画
BPDU协议版本号为0x00
配置BPDU类型为0x00,TCN BPDU类型为0x80协议版本号为0x02
类型为0x02
使⽤Flags字段的全部8位
最后增加了Versionl Length字段
STP与RSTP的接⼝状态对应关系
STP的接⼝状态RSTP的接⼝状态
禁⽤(Disabled)丢弃(Discarding)
阻塞(Blocking)
侦听(Listening)
学习(Learning)学习(Learning)
转发(Forwarding)转发(Forwarding)
RSTP端⼝会在Discarding状态完成⾓⾊的确定,当端⼝确定为根端⼝或指定端⼝后,经过Forward Delay时间会进⼊Learning状态,⽐STP就少⼀个Forward Delay时间,并且有P/A快速机制,可以直接从Discarding直接到Forwarding状态。不是根端⼝或指定端⼝就会维持Discarding状态。
端⼝⾓⾊
根端⼝和指定端⼝⾓⾊的定义和STP相同,就不说了。
较STP新增了两个端⼝概念,替代接⼝和备份接⼝。但同样都是阻塞起来的,只是为了指定端⼝出故障时可以快速收敛。
替代接⼝(Alternate)
可以理解为根接⼝的备份接⼝,是由于收到了其他设备发送的BPDU且优于⾃⾝所要发送的BPDU从⽽被阻塞的接⼝。当根端⼝进⼊阻塞状态时,会选择优先级最⾼的替代接⼝作为新的根端⼝。当对端端⼝是Forwarding状态,则可以⽴即进⼊转发状态。
备份接⼝(Backup)
⼀台设备上收到了⾃⼰所发送的BPDU从⽽被阻塞的接⼝。
如图,LSW2上的GE 0/0/3阻塞,因为是收到了LSW3的BPDU报⽂,形成了环路,且收到的BPDU报⽂⽐⾃⼰的优,从⽽阻塞,就变成了替代接⼝。⽽LSW2上的GE 0/0/5,因为收到的是⾃⼰发送过来的BPDU报⽂且端⼝id较⼤被阻塞,从⽽变成备份接⼝。
BPDU报⽂
与STP BPDU相⽐较
1. Protocol Version Identifier为2
2. BPDU Type为0x02,表⽰为RST BPDU
3. BPDU flags使⽤全部的8位
4. 在报⽂的最后增加了Versionl Length字段,值为0,表⽰本BPDU中不包含Versionl内容。
最⾼位和最低位TCA和TC与STP相同。Agreement(同意)及Proposal(提议)⽤于RSTP的P/A机制,会⼤⼤提⾼RSTP的收敛速度。Port Role(接⼝⾓⾊)两个bit位,01表⽰根接⼝,10表⽰替代接⼝,11表⽰指定接⼝,00保留。Forwarding(转发)和Learning(学习)⽤于表⽰该RST BPDU发送接⼝的接⼝状态。
RSTP与STP不同,在⽹络稳定后,STP的⾮根桥之会转发根桥发来的BPDU报⽂,⽽RSTP⽆论是⾮根桥还是根桥都会周期性的发送BPDU。
在STP中只有在指定端⼝收到低优先级的配置BPDU时才会⽴即回应(发送⾃⼰计算的配置BPDU报⽂),阻塞状态端⼝不会对低优先级的配置BPDU做出回应。
在RSTP中,指定端⼝或阻塞状态的端⼝收到低优先级的RST BPDU,也可以⽴即对其做出回应。
P/A快速收敛机制
当⽹络中增加新的链路或故障链路恢复时,链路两端必有⼀个端⼝的⾓⾊是指定端⼝,在STP中,该指定端⼝需要等待30s才能进⼊Forwarding状态。
P/A机制是指定端⼝可以通过与对端⽹桥进⾏⼀次握⼿,即可快速进⼊转发状态,⽆需任何定时器。
前提条件是必须是点到点的链路。
当新链路连接时候,链路两端的端⼝初始都为指定端⼝并处于阻塞的状态。
当指定端⼝处于Discarding和Learning状态时,所发送的BPDU中的Proposal位将被置为1,端⼝的⾓⾊位11,是指定端⼝。(都是指定端⼝发的哟)
收到Proposal置位的RST BPDU报⽂后,交换机会判断接收端⼝是否为根端⼝,如果是根端⼝,会进⾏同步过程,同步过程是阻塞除边缘端⼝(直接与⽤户终端相连,没有连接到其他交换机或者⽹桥,⼀般需要⼿动配置为边缘端⼝,可以忽略Forward Delay时间直接进⼊Forwarding状态,⽆时延)之外的所有端⼝,为了消除本交换机产⽣环路的可能。
完成同步过程后,根端⼝进⼊转发状态并从根端⼝回发Agreement置为1的RST BPDU报⽂,内容复制收到的Proposal置为的RST BPDU 报⽂,唯⼀不同的就是Flags字段的Agreement也置为1。
收到Agreement置1的BPDU报⽂后,该接⼝会⽴即进⼊转发状态。

本文发布于:2023-07-12 05:14:52,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1078004.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:状态   链路   根桥
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图