大家好,欢迎来到IT知识分享网。
一、STP
1、为什么要有STP?
为了解决广播风暴、mac地址漂移等问题
2、STP选举机制
a、选举根桥
- 网络初始化时,网络中所有的STP设备都认为自己是“根桥”
优先级默认是32768 都是4096的倍数
b、选举根端口RP
RID就是根桥的BID
- 网络中RID最小的设备为根桥
- 非根桥设备将接收最优配置BPDU的那个端口定为根端口DP
通过解析收到的BPDU来判断顺序如下
- 到根桥的根路径开销RPC最小的端口,即为该非根交换机的根端口
- 根路径开销相同,就比较对端交换机的BID,越小越优
- BID相同,就比较对端的PID,越小越优
- PID相同,就比较本端的PID,越小越优。
RPC:发送该报文的端口累计到根桥的开销(根桥发出的BPDU报文RPC为0)
PID:端口优先级和端口号,默认是128 都是16的倍数
c、在所有链路上选举指定端口DP
通过解析收到的BPDU来判断顺序如下
- 到达根桥的根路径开RPC销最小的端口为DP
- RPC相同,就比较两端交换机的BID,越小越优
- BID相同,就比较两端交换机的PID,越小越优
d、既不是RP又不是DP的端口阻塞(Blocking)
阻塞DP、RP以外的端口——Blocking状态接收但不发送 bpdu
此时端口处于阻塞状态,要注意STP中没有BP、AP端口,只有处于Blocking状态的端口
STP拓扑稳定后,根桥按照Hello timer规定的时间间隔发送配置BPDU,其他非根桥设备在收到上游设备发过的配置BPDU后才会触发配置BPDU的发出
3、STP端口状态
4、STP计时器
- Hello Time
发送配置消息BPDU的时间间隔 - Forward Delay
设备状态迁移的延迟时间。
Listening状态持续15秒,随后Learning状态再持续15秒。(避免临时环路,这两个状态下的端口会处于Blocking状态)
为什么需要Forwarding Delay?
为了保证新的配置消息传遍整个网络,从而防止了临时环路的产生。
- Max Age
端口的BPDU报文老化时间(能活多长时间),默认20s可在根桥上通过命令手动修改老化时间。- Message Age:bpdu报文的生存时间(已经活了多长时间)
根桥发出的bpdu默认Message Age为0,每经过一个交换机则+1
- 运行STP协议的网络中非根桥设备收到配置BPDU报文后,会将报文中的Message Age和Max Age字段会进行比较
- Message ≤ Max Age,则非根桥设备继续转发配置bpdu
- Message 大于 Max Age,则非根桥设备丢弃配置bpdu
5、BPDU类型
- 配置BPDU
等到stp收敛完成后,只有根网桥才会周期性的主动发生配置bpdu,非根桥接收到之后会产生自己的配置bpdu从指定端口发送出去 - TCN BPDU(拓扑变化通知BPDU)
- 当直连交换机感知到链路故障时,发送TCN BPDU给上行交换机
- 上行交换机收到之后会返回一个TCA 置位为1的配置bpdu同时通过根端口向自己的上行交换机发送TCN BPDU直到根网桥
- 根网桥收到TCN BPDU后会发送TC置位为1的配置bpdu告诉所有交换机网络拓扑已经发生变化
- 非根网桥收到TC置位为1的配置bpdu后,将自己的mac地址表老化时间(默认300s)缩短为15s(Forward Delay时间)加速老化
TC置位为1:Topology Change=Yes。表示拓扑改变
TCA 置位为1:Topology Change Acknowledgment=Yes。表示已经知道了拓扑变化
6、STP故障分析
a、直连链路故障
- 两台交换机间有两条链路,其中一条是主用链路,另一条为备用链路。
- 当网络稳定时,交换机SW2检测到根端口的链路发生故障,则被阻塞的端口会开始端口状态迁移,最终进入用户流量转发状态。
经过两次状态转换耗时30S(两次Forward Delay时间)
b、非直连链路故障
1、SW2可以直接感知到链路故障,SW3不能 2、SW3上被阻塞的端口(blocking状态)是可以接收bpdu的 2、SW2感知到链路故障后,认为自己成为根桥,于是便向SW3被阻塞的端口发送配置bpdu 3、SW3被阻塞的端口上缓存者SW1的配置bpdu要优于SW2的配置bpdu,所以忽略SW2的配置bpdu 4、当SW3被阻塞的端口上缓存的bpdu超时(默认20s),便依次转换为Listening、Learning、及Forwarding状态(两次Forward Delay默认30S) 5、SW3被阻塞的端口在链路发生故障50S左右转换为Forwarding状态向SW2转发SW1发送的配置bpdu 6、SW2收到这个配置bpdu后(优于自己)认定SW1为根桥,连接SW3的端口为根端口
二、RSTP
快速生成树协议RSTP(Rapid Spanning Tree Protocol),RSTP在STP的基础上进行了改进,可实现网络拓扑的快速收敛。
1、RSTP端口角色
- RP
- 同STP
- DP
- 同STP
- AP
- 学习到其他网桥发送的更优RST BPDU而阻塞的端口
- Alternate:预备端口,根端口的备份,当根端口失效时成为新的根端口
- BP
- 学习到自身发送的更优RST BPDU而阻塞的端口(自环时会出现)
- Backup:指定端口的备份
- 边缘端口
- 不再与其他交换设备RSTP计算、直接与终端设备相连的DP端口可以配置为边缘端口
- 边缘端口在收到bpdu后失效
RST BPDU:RSTP的配置bpdu
在收敛完成后RP、DP处于forwarding状态,AP、BP处于discarding状态
stp中没有ap端口
2、RSTP端口状态
RSTP将端口状态缩减为3种。根据端口是否转发用户流量和学习MAC地址
- Discarding
- 端口既不转发用户流量也不学习MAC地址
- Learning
- 端口不转发用户流量但是学习MAC地址(学mac)
- Forwarding
- 端口既转发用户流量又学习MAC地址(啥都干)
3、RSTP快速收敛机制
a、STP拓扑变化机制
在一个运行RSTP的网络中,检测拓扑是否发生变化只有一个标准:一个非边缘端口迁移到Forwarding状态。
- RSTP拓扑稳定后
- 无论非根桥设备是否接收到根桥传来的配置BPDU报文都会按照Hello timer规定的时间间隔发送配置BPDU
- 如果一个端口连续3个Hello time时间内没有收到上游设备发送过来的配置BPDU,那么认为协商失败,不需要等待Max Age
- 拓扑变化后
- 非边缘指定端口和根端口启动一个TC While Timer计时器(两倍的Hello Time),这段时间内清空所有端口上学习到的MAC地址。同时向外发送TC置位1的RST BPDU,TC While Timer时间后停止发送RST BPDU。
- 其他交换设备接收到RST BPDU后,清空所有端口学习到MAC地址,除了收到RST BPDU的端口。然后也为自己所有的非边缘指定端口和根端口启动TC While Timer,重复上述过程。
- RSTP实现快速收敛在于引入了PA机制、根端口快速切换机制、边缘端口
b、Proposal/Agreement机制
让链路在没有临时环路的情况下快速进入到转发状态,不用等待计时器超时,提高RSTP的收敛速度
- 两台交换机都认为自己是指定端口,发送RST BPDU
- SW2收到更优的RST BPDU后,经比较认为SW1才是当前根桥,此时SW2的端口将成为根端口,而不是指定端口,停止发送RST BPDU。
- SW1的端口进入Discarding状态,于是在发送的RST BPDU中把Proposal和Agreement置1。
RSTP的Discarding状态与STP的不同,可以收发bpdu
- S2收到根桥发送来的携带Proposal的RST BPDU,开始将自己的所有端口进入sync变量置位(即同步变量:临时阻塞除边缘端口外的其他端口)该过程称为同步过程。
- SW2的各端口同步后,根端口立即进入Forwarding状态并向SW1返回Agreement位置位的回应RST BPDU
- SW1收到该报文后,会让指定端口立即进入Forwarding状态。
- 下游链路的设备互联端口会进行新一轮的P/A协商
- SW2的下游端口一直收不到Agreement位置位的回应报文,等待2倍的Forward Delay后,进入转发状态。
c、根端口快速切换机制
- 如果RSTP网络中一个根端口失效,那么网络中最优的AP端口将成为根端口并直接进入Forwarding状态。因为通过这个Alternate端口连接的网段上必然有个指定端口可以通往根桥。
d、边缘端口
- 如果某一个DP位于整个网络的边缘,即不再与其他交换设备连接,而是直接与终端设备直连,这种端口叫做边缘端口。
- 边缘端口不参与生成树计算,收到bpdu后边缘端口失效
三、MSTP
多生成树协议MSTP(Multiple Spanning Tree Protocol)是IEEE 802.1s中定义的生成树协议,通过生成多个生成树,来解决以太网环路问题。
- 形成多棵无环路的树,解决广播风暴并实现冗余备份。
- 多棵生成树在VLAN间实现负载均衡,不同VLAN的流量按照不同的路径转发。
背景:由于局域网内所有的VLAN共享一棵生成树,因此无法在VLAN间实现数据流量的负载均衡,链路被阻塞后将不承载任何流量,还有可能造成部分VLAN的报文无法转发
MSTP把一个交换网络划分成多个域,每个域内形成多棵生成树,生成树之间彼此独立。 每棵生成树叫做一个多生成树实例MSTI(Multiple Spanning Tree Instance), 每个域叫做一个MST域(MST Region:Multiple Spanning Tree Region)。
生成树实例:多个VLAN的一个集合
MSTP通过设置VLAN映射表(即VLAN和MSTI的对应关系表),把VLAN和MSTI联系起来。每个VLAN只能对应一个MSTI,即同一VLAN的数据只能在一个MSTI中传输,而一个MSTI可能对应多个VLAN。
MSTP网络中包含1个或多个MST域,每个MST域中包含一个或多个MSTI。
1、相关定义
- MST域(MST Region)
MST域是多生成树域(Multiple Spanning Tree Region),由交换网络中的多台交换设备以及它们之间的网段所构成。同一个MST域的设备具有下列特点:
都启动了MSTP。 具有相同的域名。 具有相同的VLAN到生成树实例映射配置(VLAN映射表)。 具有相同的MSTP修订级别配置。
- VLAN映射表
- VLAN映射表是MST域的属性,它描述了VLAN和MSTI之间的映射关系。
- CST
- 公共生成树CST(Common Spanning Tree)是连接交换网络内所有MST域的一棵生成树。
- 如果把每个MST域看作是一个节点,CST就是这些节点通过STP或RSTP协议计算生成的一棵生成树
- IST
- 内部生成树IST(Internal Spanning Tree)是各MST域内的一棵生成树。
- SST
单生成树- 运行STP或RSTP的交换设备只能属于一个生成树。
- MST域中只有一个交换设备,这个交换设备构成单生成树。
- CIST
- 公共和内部生成树CIST(Common and Internal Spanning Tree)是通过STP或RSTP协议计算生成的,连接一个交换网络内所有交换设备的单生成树。(IST+CST)
- 域根
域根(Regional Root)分为IST域根和MSTI域根。- 在MST域中IST生成树中距离总根(CIST Root)最近的交换设备是IST域根。
- 一个MST域内可以生成多棵生成树,每棵生成树都称为一个MSTI。MSTI域根是每个多生成树实例的树根。
- 总根
- 总根是CIST(Common and Internal Spanning Tree)的根桥。
- 主桥
- 主桥(Master Bridge)也就是IST Master,它是域内距离总根最近的交换设备。
- 如果总根在MST域中,该域的主桥就是总根。
- 端口角色
- 同RSTP
2、MSTP网络
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/139756.html