STP生成树协议
为什么需要STP协议
局域网中容易出现的问题:
- 单点故障和单链路故障,即:当某条链路故障或某一台设备故障导致大面积主机网络中断
如何预防单点故障和单链路故障:
- 增加冗余/备份设备:预防单点故障
- 增加冗余/备份链路:预防单链路故障
增加冗余/备份链路后,引发的新问题:
- 交换机与交换机之间增加备份链路后:极有可能形成环状网络,形成二层环路
- 二层环路:极有可能引发广播风暴
- 广播风暴一旦形成:会造成网络拥塞,设备宕机,网络不可用
如何解决因二层环路所导致的广播风暴?
- STP协议可以解决二层环路:STP会形成一个物理有环、逻辑无环的网络
STP协议
STP是什么?
- STP:Spanning Tree Protocol 生成树协议
STP的作用(如何实现逻辑无环/如何防止广播风暴)
- 所有交换机物理互相连接
- 所有交换机启动后,都运行生成树协议
- 通过生成树协议,逻辑上阻塞端口,从而形成一个逻辑无环拓扑,避免广播风暴
- 当现在链路出现问题,被禁用的链路可以重新启用,从而形成新逻辑无环拓扑,起到了链路备份的作用
STP的工作原理
角色
- 步骤一:选举根网桥(Root Bridge),作为整个网络的根
- 步骤二:确定根端口(Root Port RP),在每个非根交换机上选举一个根端口(RP-根端口)
- 步骤三:确定指端口(Designated Port DP),在每条链路(每个网段)上选举一个指定端口(DP-指定端口)
- 步骤四:阻塞备用端口(Alternate Port AP),阻塞非指定端口
选举根网桥
- 比较网桥ID(BID)选择网桥ID值最小的交换机为根网桥
- BID:优先级+MAC(总长度8字节)
- 优先级:默认32768
- 理论范围:0~65535
- 实际范围:0~61440
- 步长值:4096
确定根端口(RP)
- 每个非根交换机上选举一个根端口,即:非根交换机到根交换机的根路径开销值最小的端口(根路径成本最小)
- cost:开销值(到达根交换机的路径成本)
- 默认值:100M端口【200000】、1000M(1G)端口【20000】、10000M(10G)端口【2000】
- BID:优先级+MAC(对端设备的)
- PID(端口ID):优先级+端口号(对端设备)
- 端口优先级:默认值128
- 范围:0~240
- 步长值16
确定指端口(DP)
- 在每条链路(每个网段)上选举一个指定端口(DP)
ps:根桥上的接口都是指定端口 - 如果根路径成本相同,则对比端口所在交换机的网桥ID,网桥ID小的端口为指定端口(端口自己所在的网桥ID)
- PID(端口ID):优先级+端口号(自己的)
- 端口优先级:默认值128
- 范围:0~240
- 步长值:16
STP基础配置
- display stp //查看生成树状态信息
- display bridge mac-address //查看交换机自己的MAC
- display stp brief //查看接口STP简要信息
- stp priority 4096 //修改BID中的优先级
BPDU报文
BPDU:桥协议数据单元
- 作用:交换机之间通过周期性发送BPDU报文,来实现STP功能
BPDU的四个重要字段:
- 根网桥ID:根交换机的BID
- 根路径开销:本端口累计到根桥的开销值(cost值)
- 发送网桥ID:本交换机的BID
- 端口ID:发送该BPDU报文的端口的ID
BPDU类型
- 配置BPDU
- 拓扑变更BPDU
STP端口的五种状态
- 禁用(disabled):强制关闭,没有启动STP协议
- 阻塞(blocking):只接收BPDU报文,不发送BPDU报文
- 侦听(listening):比较BPDU报文,确定交换机角色和端口角色
- 学习(learning):基于端口上收到的数据帧,学习MAC地址表
- 转发(forwarding):电口最终的状态,能够发送和接收用户数据
STP3种计时器
- hello时间:端口发送的BPDU报文的时间间隔:默认是2秒
- 转发延迟(forward delay):侦听-学习:15秒、学习-转发:15秒
- 最大老化时间(Max Age):一个端口最大的"没有接收BPDU报文"的时间间隔:20秒
ps:50秒的转发延时
快速生成树
RSTP:快速生成树,在STP的基础上优化而来
- 作用:实现网络的快速收敛,降低网络故障时间,提高数据转发的效率
RSTP对STP的改进
- 引入了P/A机制(让指定端口尽快进入转发状态)
- 增加了两种端口角色(BP和AP)
Backup Port(备份端口)是指定端口的备份端口
Alternate Port(备用端口)是根端口的替换端口 - 减少了三种端口状态(禁用、阻塞、侦听三种状态合为一种)
MSTP
MSTP概述
MSTP作用:
- 默认生成树协议只形成一个网络拓扑,不能有效利用所有网络带宽
- 为了实现网络的负载均衡,需要让网络形成多个无环拓扑,让不同vlan的主机,选择不同的拓扑来传送数据
端口状态:
- Discarding(丢弃):相当于STP中的禁用、侦听、阻塞,不转发用户数据
- Learning(学习):和STP中的学习状态相同
- Forwarding(转发):和STP中的转发状态相同
MSTP配置
- 每个交换机创建vlan,交换机相连的接口配置为trunk
配置STP模式为MSTP:
- stp mode mstp //修改mstp模式(华为设备默认模式MSTP)
- 交换机创建MSTP域名,实例和vlan的对应关系
- 交换机上激活MSTP区域配置
即:
- [S1]stp mode mstp //启用MSTP协议
- [S1]stp region-configuration //创建MSTP区域
- [S1-mst-region]region-name vlan10 //定义区域名为vlan10
- [S1-mst-region]instance 1 vlan 10 //指定实例与vlan的对应关系
- [S1-mst-region]active region-configuration //激活区域配置
- [S1]stp instance 1 priority 4096 //配置SW1为vlan10的根