3、生成树配置
3.1生成树简介
生成树协议是一种二层管理协议,它通过选择性地阻塞网络中的冗余链路来消除二层环路,同时还具备链路备份的功能。与众多协议的发展过程一样,生成树协议也是随着网络的发展而不断更新的,从最初的 STP(Spanning Tree Protocol,生成树协议)到 RSTP(Rapid Spanning Tree Protocol,快速生成树协议),再到最新的 MSTP(Multiple Spanning Tree Protocol,多生成树协议)。
(1)STP的协议报文
STP 采用的协议报文是 BPDU(Bridge Protocol Data Unit,桥协议数据单元),也称为配置消息。STP 通过在设备之间传递 BPDU 来确定网络的拓扑结构。BPDU 中包含了足够的信息来保证设备完成生成树的计算过程。STP 协议的 BPDU 分为以下两类:
• 配置 BPDU(Configuration BPDU):用来进行生成树计算和维护生成树拓扑的报文。
• TCN BPDU(Topology Change Notification BPDU,拓扑变化通知 BPDU):当拓扑结构发
生变化时,用来通知相关设备网络拓扑结构发生变化的报文。
BPDU 中包含有足够的信息来保证设备完成生成树的计算过程,其中包括:
• 根桥 ID:由根桥的优先级和 MAC 地址组成;
• 根路径开销:到根桥的路径开销;
• 指定桥 ID:由指定桥的优先级和 MAC 地址组成;
• 指定端口 ID:由指定端口的优先级和该端口的全局编号组成;
• Message Age:配置消息在网络中传播的生存期;
• Max Age:配置消息在设备中的最大生存期;
• Hello Time:配置消息的发送周期;
• Forward Delay:端口状态迁移的延迟时间
(2)STP的基本概念
1) 根桥
树形的网络结构必须有树根,于是 STP 引入了根桥(Root Bridge)的概念。根桥在全网中有且只有一个,而且根桥会根据网络拓扑的变化而改变,因此根桥并不是固定的。
在网络初始化过程中,所有设备都视自己为根桥,生成各自的配置 BPDU 并周期性地向外发送;但当网络拓扑稳定以后,只有根桥设备才会向外发送配置 BPDU,其它设备则对其进行转发。
2) 根端口
所谓根端口,是指非根桥设备上离根桥最近的端口。根端口负责与根桥进行通信。非根桥设备上有且只有一个根端口,根桥上没有根端口。
3) 指定桥与指定端口
对于一台设备而言,与本机直接相连并且负责向本机转发配置消息的设备为指定桥,指定桥向本机转发配置消息的端口为指定端口。对于一个局域网而言,负责向本网段转发配置消息的设备为指定桥,指定桥向本网段转发配置消息的端口为指定端口。
路径开销是 STP 协议用于选择链路的参考值。STP 协议通过计算路径开销,选择较为“强壮”的链路,阻塞多余的链路,将网络修剪成无环路的树型网络结构。
(3) STP的基本原理
STP 算法实现的基本过程如下:
1) 初始状态
各设备的各端口在初始时会生成以本设备为根桥的配置消息,根路径开销为 0,指定桥 ID 为自身设备 ID,指定端口为本端口。
2) 选择根桥
网络初始化时,网络中所有的 STP 设备都认为自己是“根桥”,根桥 ID 为自身的设备 ID。通过交换配置消息,设备之间比较根桥 ID,网络中根桥 ID 最小的设备被选为根桥。
3) 选择根端口和指定端口
a、非根桥设备将接收最优配置消息的那个端口定为根端口
b、设备根据根端口的配置消息和根端口的路径开销,为每个端口计算一个指定端口配置消息:
• 根桥 ID 替换为根端口的配置消息的根桥 ID;
• 根路径开销替换为根端口配置消息的根路径开销加上根端口对应的路径开销;
• 指定桥 ID 替换为自身设备的 ID;
• 指定端口 ID 替换为自身端口 ID。
c、设备将计算出的配置消息与角色待定端口自己的配置消息进行比较:
• 如果计算出的配置消息更优,则该端口被确定为指定端口,其配置消息也被计算出的配置消息替换,并周期性地向外发送;
• 如果该端口自己的配置消息更优,则不更新该端口的配置消息并将该端口阻塞。该端口将不再转发数据,且