生成树,就是解决交换机之间冗余而且避免了广播风暴。
是一种自动实现机制,可以人为不必干预
原理: 将环型链路通过某种算法逻辑上生成树型结构,将一个或多个冗余点逻辑上阻断
当实际链路出现故障时,再次启用逻辑上阻断的点,实现容错。
交换机环路的缺点: 广播风暴, mac地址紊乱, 多帧复制
生成树算法: 分三步
1, 选择根网桥 (Boor Bridge)
2,选择根端口 (Boor Ports)
3, 选择指定端口 (Designated Ports)
具体实现
选择根网桥: 交换机的 id 最小
交换机的id =交换机的优先级+ 交换机的mac 地址
选择根端口: 首先,根端口是在非根网桥上选择
每个非根网桥上选择一个端口作为根端口
其次,选择根端口首先判断非根网桥的端口根网桥的路径成本最低
如果路径相同则选择端口连接的对端的网桥id 最小的
如果对端网桥id 一样, 则比较连接对端的端口id 最小
端口id = 端口优先级+ 端口号 (端口优先级通常是一样的 那么只需比较端口号)
选择指定端口, 首先再每条连接线上面选则一个端口 作为指定端口
根网桥上的端口都是指定端口
其次 先比较端口到根网桥的路径成本较低
如果相同则比较端口所在交换机的网桥id 值较小的
网桥id 也相同则比较端口id 较小的
交换机之间通过发送 BPDU (桥协议数据单元)来交换信息
BPDU两种类型: 配置 BPDU 用于生成树计算
TCN 用于通告网络拓扑变化
BPDU 主要字段: 包括 根网桥id 根路径成本 发送的网桥id 计时器
STP 生成树的收敛 , 就是最后计算达到平衡
交换机端口的五种状态, 禁用 强制关闭
阻塞 只接受 BPDU
侦听 构建活动拓扑
学习 构建网桥表
转发 发动/接受用户信息
生成树的三种计时器 hello 时间 默认 2s 一次
转发延迟时间 默认15s
最大老化时间 默认20秒
人为干预,配置生成树的意义
可以实现负载平衡和容错
避免自动运算选出性能比较差的交换机作为根网桥 而使整个网络不稳定
基本的生成树命令
设定交换机sw1 为 vlan 10 的 根网桥 vlan 20 的备用命令
sw1(config)spanning-tree vlan 10 root primary
sw1(config)spanning-tree vlan 20 root secondary
设定交换机sw2 为 vlan 10 的 根网桥 vlan 20 的备用命令
sw2(config)spanning-tree vlan 10 root secondary
sw2(config)spanning-tree vlan 20 root primary