网络工程管理 第三章 路由器 STP 生成树协议
局域网中的冗余链路
局域网中设置冗余网络
好处:减少单点故障,增加网络可靠性。
坏处:
- 导致广播风暴
- 多帧复制
- MAC地址表抖动
广播风暴
广播信息在网络中不停地转发,直至导致交换机出现超负 荷运转,最终耗尽所有带宽资源、阻塞全网通信
多帧复制
单播的数据帧被多次复制传送到目的站点
MAC地址表抖动
由于相同帧的拷贝在交换机的不同端口上被接收而引起的 MAC地址表不稳定
STP 生成树协议
IEEE 802.1d 生成树协议(STP, Spanning-Tree Protocol)协议:
使冗余端口置于**“阻塞状态”**,网络中的计算机在通信时,只有 一条链路生效,当这个链路出现故障时,将处于 “阻塞状态”的端口重新打开, 从而确保网络连接稳定可靠。
原理
- 在每个运行STP协议的设备上依据一定的准则选举出一个树根节点作为网络中的根桥,其他节点为非树根节点。
- 每一个非树根节点,会选择最优的路径和根桥相连,每个非树根节点上位于最优路径的端口,为该非树根节点的根端口。
- 如果非树根节点存在冗余链路,则会对相应端口进行阻塞
基本概念介绍
⭐️ 要素:根桥 根端口 指定端口
根桥(RB, Root Bridge):是整个生成树的根节点,所有网桥中优先级最高的桥。是网桥 ID 最小的桥,通过交互配置 BPDU 协议报文选出最小的 BID。
根端口(Root Port):指一个网桥上距离跟桥最近的端口。根桥上没有根端口,只有非根桥上有且仅有一个根端口。
指定端口(Designate Port):非根交换机与非根交换机之间连接线的两个端口中必定有一个端口为指定端口,此时比较两个非根交换机的根端口到达根桥的最低链路开销,将最低开销的非根交换机为准,其所在的连接线(为上面非根交换机与非根交换机之间连接线)的端口为指定端口,如果链路开销一样最后比较各自的桥ID即可。指定端口被标记为转发端口。
⭐️度量:在 STP 计算过程中,都遵循数值越小越好的原则
桥ID(Bridge ID):用于选举根网桥
每一个运行STP协议的网桥都会有一个桥ID,用于在网络中唯一标识一个桥,由桥优先级和桥MAC地址组成,桥优先级占2字节,桥MAC地址占6个字节。优先级最低的网桥将成为根网桥 ,如果网桥优先级相同,则比较网桥MAC地址,具有最低MAC地址的交换机或网桥将成为根网桥
端口ID:用于选举根端口
端口优先级是从0到255的数字,默认值是128(0x80) 端口优先级越小,则优先级越高 。如果端口优先级相同,则编号越小,优先级越高。
路径开销(Path Cost):STP中每条链路都具有开销值,默认的开销值取决于链路的带宽,带宽越大,开销越小。根路径成本就是到根网桥的路径中所有链路的路径成本的累计和。
⭐️数据传输
BPDU(Bridge Protocol Data Unit,桥协议数据单元):用于网桥之间传递BPDU来交互协议信息。BPDU分为配置BPDU和TCN BPDU(拓扑变更BPDU)。配置BPDU用来进行生成树的计算和维护生成树拓扑的报文。TCN BPDU是当拓扑结构改变时候,用来通知相关桥设备网络拓扑结构发生变化的报文。
每2秒发送一次 二层报文
组播发送,组播地址为:01-80-C2-00-00-00
⭐️端口工作状态
接收数据 | 传输数据 | 学习MAC地址 | 发送BPDU | 接收BPDU | |
---|---|---|---|---|---|
阻塞状态 | × | × | × | × | √ |
监听状态 | × | × | × | √ | √ |
学习状态 | × | √ | √ | √ | |
转发状态 | √ | √ | √ | √ | √ |
⭐️STP工作过程
- 依据网桥ID选举根网桥,ID值最小者当选,根网桥每2s发送一次BPDU。
- STP刚启动时,每台交换机都认为自己是根网桥,向外泛洪BPDU。
- 当交换机的一个端口收到高优先级的BPDU(更小的Root BID或者更小的Root Path Cost等等)就在该端口保存这些信息,同时向所有端口更新并传播信息。
- 如果收到比自己低优先级的BPDU,交换机就丢弃该信息。
- 选举根端口,在非根交换机上选举根端口(到根网桥最近的端口)。选举依据:根路径开销-网桥ID-端口ID
- 每个网段中选取一个指定端口。根桥上的端口全是指定端口。非根桥上指定端口的选举依据:根路径开销-网桥ID-端口ID.非根交换机与非根交换机之间连接线的两个端口中必定有一个端口为指定端口,此时比较两个非根交换机的根端口到达根桥的最低链路开销,将最低开销的非根交换机为准,其所在的连接线(为上面非根交换机与非根交换机之间连接线)的端口为指定端口,如果链路开销一样最后比较各自的桥ID即可。指定端口被标记为转发端口。
- 阻塞非根非指定端口
⭐️拓扑变更
发生变化的交换机会在根端口上每隔hello time时间就发 送TCN BPDU(拓扑变化通知BPDU),直到生成树上游 的指定网桥邻居确认了该TCN(拓扑变化通知)为止。
当网络拓扑变化时,交换机必须重新计算STP,端口的状 态会发生改变,重新收敛。
重新收敛的时间可能长达50s
⭐️生成树配置命令
启用STP:Switch(config)# spanning-tree vlan vlan-list
设置根网桥 :Switch(config)#spanning-tree vlan vlan-list root primary|secondary
primary:优先级为24576、secondary:优先级为28672;
修改网桥的优先级 :Switch(config)# spanning-tree vlan vlan-list priority Bridge-priority
网桥优先级配置只能为4096的倍数
配置端口的优先级 :Switch(config-if)#spanning-tree vlan vlan-list port priority <0-240>
注意:端口优先级配置只能为16的倍数
配置端口的路径成本 :Switch(config-if)#spanning-tree vlan vlan-list cost cost
查看生成树的配置 Switch#show spanning-tree
Switch#show spanning-tree interface interface-id
Switch#show spanning-tree vlan vlan-id detail
疑问:配置STP跟vlan什么关系?