【计算机网络】最全生成树STP详解

发布时间:2024年01月04日

生成树又叫CST ? spanning tree protocol

目录

交换机原理:

生成树存在的原因:

STP中交换机的角色:

STP中端口的角色:

STP的接口状态:

根网桥选举原则:

根端口的选举原则:

指定端口的选举原则:

STP重收敛过程慢:

根网桥发生故障:(故障恢复过程)

直连链路故障:

拓扑改变导致MAC地址表错误:

STP生成树的过程

STP端口状态迁移:


HUB工作原理:复制和放大

交换机原理:

基于源MAC地址学习;基于目的MAC地址转发;收到的是一个广播帧或者未知的单播帧除源端口以外所有端口转发;一个MAC地址被多个接口学习到选择最新的。

生成树存在的原因:

冗余解决了单点故障,但是引入冗余性的同时也引入了二层环路(有闭环存在)---->有顺时针环路+逆时针环路,也叫广播风暴,有的交换机性能差会直接死机(好一点的可能是指示灯爆闪),还会出现多帧复制,以及MAC地址表不稳定(三层环路起码有ttl);

解决二层环路:手动解决闭环问题(拔掉网线)、生成树

STP中交换机的角色:

根网桥、非根网桥(交换机的前身是网桥,交换机是硬件转发,网桥是软件转发,网桥端口密度小,交换机端口密度大)

STP中端口的角色:

根端口-RP(每台非根桥上有且仅有一个根端口);

指定端口-DP(在每条链路上有且仅有一个指定端口,有几根线就有几个DP,作用是发送配置的BPDU,指定端口是在每一条链路上面进行选举的);

阻塞端口-blocking;

STP的接口状态:

1、禁用(disable):该接口不能收发BPDU,也不能收发业务数据帧,例如接口为DOWN

2、阻塞(blocking):该接口被STP阻塞,处于阻塞状态的接口也不能发送BPDU,但是会持续侦听BPDU,而且不能收发业务数据帧,也不会进行MAC地址学习

3、侦听(listening):STP初步认定该接口为根端口或指定端口,但接口依然会处于STP计算的过程中,此时接口可以收发BPDU,但是不能收发业务数据帧,也不会进行MAC地址学习

4、学习(learning):会侦听业务数据帧(但是不能转发业务数据帧),并且在收到业务数据帧后进行MAC地址学习。

5、转发(forwarding):处于该状态的接口可以正常收发业务数据帧,也会进行BPDU处理,接口的角色需要是根接口或指定接口才能进入转发状态。

根网桥选举原则

1、比较桥优先级,越小越优,默认为32768;桥优先级相同,比较MAC地址,越小越优;

2、Bridge id = priority (32768) + MAC

根端口的选举原则:

1、到根网桥的开销最小

2、直连网桥的bridge-id最小

3、对方的port-id(端口优先级默认128+端口编号)最小

指定端口的选举原则:

1、到根网桥的开销最小

2、所在网桥的bridge-id=priority(32768)+MAC最小

3、自己的port-id最小

注意:一般根网桥上的接口都是DP,但不是一定(一台交换机,自己连自己,就有一个端口是阻塞)

TCN BPDU拓扑变更提示+TCA拓扑变更确认+TC拓扑变更+message age消息寿命

STP重收敛过程慢:

1、直连故障:被阻塞的端口会从blocking状态,依次切换到listening及learning状态,最终进入forwarding状态;直连链路故障,端口状态切换,延时30s后进入forwarding状态。

2、非直连故障:由于被阻塞端口上不再收到更优的BPDU,因此20s后端口开始从blocking状态依次切换到listening、learning及forwarding状态;非直连故障会导致50s左右的恢复时间,等于max age加上2倍的forward delay时间

根网桥发生故障:(故障恢复过程)

1、当根桥发生故障时,会停止发送BPDU报文

2、非根网桥等待MAX Age计时器(20s)超时,从而导致以及收到的BPDU报文失效,又接收不到根桥发送的新的BPDU报文,从而得知上游出现故障

3、非根桥会互相发送配置BPDU,重新选举新的根桥

4、经过重新选举后,非根桥的A端口经过两个转发延迟之后恢复转发状态(非根桥会在BPDU老化之后开始根桥的重新选举,根桥故障会导致50s左右的恢复时间)

直连链路故障

当交换机网络稳定时检测到根端口的链路发生故障,则其备用端口会经过两倍的Forward Delay(15s)时间进入用户流量转发状态

非根桥交换机检测到直连链路物理故障后,会将预备端口转换为根端口;直连链路故障,备用端口会经过30s后恢复转发状态。

拓扑改变导致MAC地址表错误:

非根桥的根端口发生故障,导致生成树拓扑重新收敛,在生成树拓扑完成收敛后,从一个主机到另一个主机的帧仍然不能到达目的地,因为交换机依赖MAC地址表转发数据帧,缺省情况下,MAC地址表项的老化时间是300秒,如何快速恢复转发?

TCN BPDU在网络拓扑发生变化的时候产生;报文格式:协议标识、版本号、类型;拓扑变化:会使用到BPDU中Flags的TCA和TC位

收到TC后,300s会变成15s

命令区别:

确定根网桥后,只有根网桥会发送配置BPDU,非根网桥转发配置BPDU,配置BPDU的报文格式:

PID(协议ID,对于STP而言,该字段的值总为0)+ PVI(协议版本ID,对于STP而言,该字段的值总为0)

BPDU type(指示本BPDU类型,0x00表示本报文为配置BPDU;0x80表示为TCN BPDU--当网络故障时,交换机向上发送拓扑变更提示)

Flags(STP只使用该字段的最高及最低两个比特位,最低位是TC标志(根网桥发送)--拓扑变更,最高位是TCA标志--拓扑变更确认)

ROOT ID(根网桥的桥ID)+ Bridge ID + Port ID

RPC(根路径开销,到达根桥的STP cost)

Message age(消息寿命,从根网桥发出BPDU之后的秒数,每经过一个网桥都加1,本质上就是到达根桥的跳数)+运行STP协议的网络中非根桥设备收到配置BPDU报文后,报文中的Message Age和Max Age会进行比较:1、如果message age 小于等于max age,则该非根桥设备继续转发配置BPDU报文 2、如果大于,则该配置BPDU报文将被老化,该非根桥设备直接丢弃该配置BPDU,可认为网络直径过大,导致根桥连接失败。

Max Age(最大寿命,当一段时间未收到任何BPDU,生存期到达最大寿命时,网桥认为该接口连接的链路发生故障,默认是20s)

Hello Time(根网桥连续发送的BPDU之间的时间间隔,默认2s)

Forwarding Delay(转发延迟,在侦听和学习状态所停留的时间间隔,默认是15s) + 链路故障会引发网络重新进行生成树的计算,生成树的结构将发生相应的变化,不过重新计算得到的新配置消息无法立刻传遍整个网络,如果新选出的根端口和指定端口立刻就开始数据转发的话,可能会造成临时环路;为此,STP采用了一种状态迁移机制,新选出的根端口和指定端口需要经过2倍的转发延迟后才能进入转发状态,这个延时保证了新的配置消息传遍整个网络,从而防止了临时环路的产生)

STP生成树的过程

(主要比较4个参数进行角色选举:根桥ID、根路径开销、网桥ID、端口ID)

1、选举根桥

2、选举根端口

3、选举指定端口

4、阻塞非指定端口

STP端口状态迁移:

1、端口初始化或者使能,进入BLOCKing状态

2、端口被选为根端口或者指定端口,进入Listening状态

3、端口的Forward Delay时间(15s)到,进入learning状态;再经过一个Forward Delay,进入Forwarding状态

4、端口不再是根端口、指定端口,进入Blocking状态

5、端口被禁用或者链路失效

文章来源:https://blog.csdn.net/2301_76170756/article/details/135390229
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。