计算机网络 --- STP

STP --- 生成树协议

二层设备连接成环遇到的问题:

1.广播风暴 --- 广播帧在二层环路中形成顺时针和逆时针两重环路,无限循环,极大的消耗设备资源

2.MAC地址表的翻摆(MAC地址表的飘移)

3.多帧复制

生成树协议就是,在二层交换网络中,逻辑上阻塞部分接口,实现根交换机到所有节点的唯一且最短的路径(最短路径树),形成一个没有环路的拓扑,当最佳路径出现故障时,个别阻塞端口打开,形成备份路径

STP --- 标准的生成树协议 --- 802.1D --- IEE组织 --- 公有协议

PVST、PVST+ --- 思科的私有协议

RSTP --- 快速生成树 --- 802.1W --- 公有协议

MSTP --- 多生成树协议 --- 802.1S --- 公有协议

802.1D标准生成树协议

BPDU --- 生成树的数据包

配置BPDU --- 协商生成树形结构时使用的BPDU

TCN BPDU --- 在拓扑结构发生变化时,传递变化信息的BPDU

配置BPDU

协议版本ID --- 802.1D标准的生成树 --- 0

802.1W快速生成树 --- 2

802.1S多生成树 --- 3

标志位 --- 占8位 --- 在802.1D中,仅使用最低位(TC位)和最高位(TCA位),其中中间6位没有启用

根网桥ID --- 拓扑中为根的交换机的网桥ID --- 802.1D生成树中,一个拓扑中仅生成一棵树

**网桥ID ---**所有拓扑中的交换机都需要一个身份标识,使用网桥ID来标识

8个字节构成 --- 2个字节 + 6个字节

(优先级)(MAC地址 )

如果交换机中存在多个MAC地址,则将选规择数值最小的成为网桥ID中的MAC地址

**RPC ---**根路径开销 --- 当前交换机达到根网桥的距离开销

**接口ID ---**2个字节 --- 前4位 + 12位

(优先级)(接口编号)

以上四个参数将参与生成树的角色选举

消息寿命 --- 每经过一个交换机转发会加1,存在一个MAX-HOP为20,当超过该值时,将不再认可该BPDU

TCN BPDU

配置BPDU的工作过程

配置BPUD的发送,使得网络中所有交换机均收到其他设备配置BPDU,之后,基于数据报中参数进行比对,选举出网桥,之后,所有非根网桥不再发送配置BPDU,仅根网桥周期性发送BPUD,其他网桥仅转发,周期2S,最大老化时间为20S

TCN BPDU

TCN BPDU --- 本地链路发生故障后,STP重新收敛,为了快速刷新全网所有交换机MAC地址表,将向本地所有STP接口发送TCN BPDU;邻居交换机收到TCN BPDU之后,会先回复一个TCA位置1的配置BPDU,代表确认,之后,继续逐级向上传递TCN BPDU,最终发送到根网桥处,根网桥收到后,也会进行TCA的确认,之后,发送一个TC位置1的配置BPDU,逐级转发到所有交换设备上,收到TC位置1的配置BPDU的设备,会临时将MAC地址表的老化时间从300S修改为15S

1.根网桥(RB)

选举方法:比较配置BPDU中的BID

8个字节构成 --- 2个字节 + 6个字节

(优先级)(MAC地址)

先比较优先级,选择优先级数值较低的作为根网桥

优先级我们只使用了前4位二进制,后面12位二进制 --- 系统拓展ID(在802.1D中没有使用) 所以,优先级在进行修改时,必须按照4096的倍数来进行修改;存在默认优先级32768;如 果优先级相同,则比较MAC地址,选择MAC地址数值较小的作为网桥

2.根端口(RP)--- 每一个非根网桥都需要选举一个距离根网桥最近的端口作为根端口(有且仅有一个),用来接收根网桥发送的配置BPDU

Huaweistp pathcost-standardr?

dot1d-1998 IEEE 802.1D-1998

dot1t IEEE 802.1T

legacy Legacy

1.优先比较接口接收到的配置BPDU时的开销值,选择开销值最小的接口作为根接口

2.如果一台设备存在接口到达根网桥开销大小相同时,则可以比较其对端(上级)设备的 BID,选择对端设备BID小的对应的接口为根接口

3.如果对端的BID也相同,则比较对端的PID,优先选择对端PID较小的所对应的端口为根端口

接口ID --- 2个字节 --- 前4位 + 12位

取值范围0 - 240,默认以16为步调递增,初始默认值为128

4.如果对端的PID也相同,则比较本端的PID,优先选择本端PID小的端口为根端口

3.指定端口(DP)--- 每一条链路上选择仅有一个端口作为指定端口,指定端口用来转发根网桥发送的配置BPUD

所有根端口对端的端口一定是指定端口,并且,根网桥的所有接口都是指定端口

1.优先比较两个端口在转发根网桥BPDU时RPC的大小,优先选择RPC小的作为指定端口

2.如果两个端口发出的RPC相同,则比较本地的BID,选择本地设备BID小的对应的端口作为 指定端口

3.如果本地的BID也相同,则比较本地的PID,优先选择本地PID小的端口作为指定端口

4.如果本地的PID也相同,则直接阻塞该接口

4.非指定端口(NDP)--- 所有没有角色的端口,都是非指定端口,非指定端口需要被阻塞

接口的状态

禁用状态 --- 1.物理接口关闭;2.接口禁用生成树

阻塞状态 --- 所有接口启用生成树后,首先进入到阻塞状态中,在这个状态下,仅能侦听BPDU,不能转发BPDU,也不能转发业务数据帧,不能学习MAC地址

这样的状态将持续20S,超过最大老化时间后,接口进入到下一个状态

侦听状态 --- 会收发BPDU,但是不能转发业务帧,也不能学习MAC地址 --- 15S

该状态主要目的就是进行角色选举

指定端口和根端口将进入到下一个状态,而非指定端口,将退回到阻塞状态

这里给15S的侦听时间,主要是为了避免临时环路的出现

学习状态 ---可以正常收发BPDU,依然不转发业务帧,但是会学习业务帧的MAC地址到本地的MAC地址表中 --- 15S --- 该状态的主要目的是尽量减少未知单播的泛洪

转发状态 --- 可以正常转发BPDU,可以转发业务帧,也可以学习MAC地址

一次完整的收敛 --- 50S

结构突变的场景 --- 50S,30S

1.根桥故障:50S

2.直连链路故障:30S

3.非直连链路故障:50S

生成树的配置

1.启动生成树协议(华为设备默认开启生成树)

Huaweistp enable

2.选择生成树的协议版本

Huaweistp mode stp --- 华为设备默认选择的是MSTP

SW1display stp brief --- 查看生成树接口状态及角色

SW2stp priority 4096 --- 修改BID中优先级的命令

SW1stp root primary --- 将该设备设置为生成树的主根 --- 相当于将优先级设置为0

SW1stp root secondary --- 将设备设置为生成树的备份根 --- 相当于将优先级设置为4096

SW1-GigabitEthernet0/0/1stp port priority

INTEGER<0-240> Port priority, in steps of 16

SW1-GigabitEthernet0/0/1stp cost ? --- 修改接口的开销值

INTEGER<1-200000000> Port path cost

相关推荐
code monkey.3 小时前
【Linux之旅】Linux 应用层自定义协议与序列化:从粘包问题到网络计算器
linux·网络·c++
2401_892423363 小时前
OSPF笔记
网络·智能路由器
草莓熊Lotso3 小时前
【Linux网络】深入理解 HTTP 协议(二):从协议格式到手写工业级 HTTP 服务器
linux·运维·服务器·网络·c++·http
The Straggling Crow9 小时前
Network
网络
yyuuuzz10 小时前
独立站的技术基础与常见运维问题
大数据·运维·服务器·网络·数据库·aws
Oll Correct12 小时前
实验二十九:TCP的运输连接管理
网络·笔记
Cheng小攸15 小时前
综合实验2
网络·windows
Soari15 小时前
SSH 主机密钥冲突
运维·网络·ssh
且听风吟_xincell16 小时前
用 TypeScript 从零写一个 TCP 聊天室(上)—— 网络编程入门实战
网络·tcp/ip·typescript
万法若空18 小时前
Libevent C语言开发完全教程:从入门到实战
c语言·网络