大家好,欢迎来到IT知识分享网。
目录
1.STP概述
STP(Spanning Tree Protocol)生成树协议,是一个用于局域网中消除环路的协议
没有STP生成树协议时,会导致以下问题:
- 环路产生广播风暴,广播风暴会导致网络瘫痪
- MAC地址表震荡导致MAC地址表项被破坏,即使是单播报文,也有可能导致交换设备的MAC地址表项混乱,破坏交换机设备的MAC地址表
所以这时,要去除环路带来的危害,不能真的将线路拔出,所以我们要从从逻辑上消除环路,便是 使用 STP 生成树协议。
STP 能够从逻辑上去阻塞一个端口,当非阻塞链路出现单点故障的时候,这个被阻塞的端口恢复到转发数据的状态。
2.STP基本概念
STP目标就是要找到那个被阻塞的接口,阻塞哪个端口呢?这其中需要进行一系列的选举。
选举过程如下:
- 在每个广播域中选举出一个根网桥RB (Root Bridge);
- 在非根交换机上,选根端口RP (Root Port);
- 在空余的链路上,选出指定端口DP (Desinnated Port);
- 最后剩下的,这个端口就要被阻塞–在新的生成树标准(IEEE802.1D-2004及802.1w)中,阻塞端口细分为AP(Alternate Port)端口和BP(Backup Port)端口。
BPDU:Bridge protocol data unit 桥协议 数据单元
- 交换机或者网桥之间周期性地发送: 每2s发送一次,当选举结束以后,根桥会以每2s一次的频率发送自己的BPDU。
- 交换机接收BPDU:当交换机接收了一个更优的BPDU(有最小的 Root-BID或者 Root Path),接收的端口就会保存这个BPDU
BPDU的关键字段:
BID:Bridge ID
Root BID: 根桥的BID
Root Path:(cost)
达到根桥的开销,当交换机接收到BPDU的时候,会根据自己的链路带宽,修改 Root Path
COST值:10MBps 100 | 100MBps 19 | 1GBps 4 | 10GBps 2
Sender BID:
当根桥发出的BPDU被一台交换机接受并发送的时候,这台交换机会把自己的 BID 写到 Sender-BID的位置
Port ID: 端口的ID
优先级+端口号 0-255 默认值128
3.建立过程
3.1 在每个广播域中选举出一个根网桥
在选举开始的时候,所有的交换机都会认为自己是根桥,他们产生并相互发送自己的BPDU。比较BPDU中的Bridge-id:优先级+MAC地址,越小越优先。
Bridge-id:优先级+MAC地址 优先级:范围0-65535,必须设置成 4096的倍数,最小是0 优先级的默认值是 32768, 越小越优先
当根桥选举完成后,只有根桥能够自己产生BPDU,其他的非根桥负责接收和转发来自根桥的BPDU。
3.2 在非根交换机上,选出根端口
1.2.比较到达根桥的路径开销
如下图,SW1的端口2比端口1路径开销小,SW2的端口2比端口1路径开销小
2.如果开销值相同:比较端口接收到的BPDU中 Sender-BID这一参数【即从对端交换机接收的BPDU,Sender-BID就是对端交换机的BPDU】
如下图,SW4的两个接口到根桥的开销值是相同的,比较Sender-BID,端口2的对端交换机BPDU更优先,从而SW4的端口2是根端口
3.如果交换机的各个接口接收到BPDU中的 Sender-BID也相同,则比较 BPDU中的 Sender-PID
【Sender-PID :优先级+ 端口编号,即对端交换机的PID。优先级:0-255 越小越优先 默认128】
例如此图,对于SW5的两个端口来说,对端交换机SW4的3端口PID更优先,所以SW5的2端口收到Sender-PID就比1接口收到的Sender-PID小,所以2端口选为根端口
4.如果交换机的各个接口接收到BPDU中的 Sender-PID也相同,例如使用了HUB集线器,则比较交换机本身端口的PID。
如下图,使用了HUB,相当于SW6的两个端口连接到SW2的同一个接口,比较选择SW6的自身端口的PID(local PID),所以选择SW6的端口1为根端口。
3.3 在剩余的链路上,选举出指定端口
- 根端口对面的端口,就是指定端口
- 在剩余链路上,选举指定端口
- 比较端口所在的交换机到达根桥的路径开销,越小越优先
- 如果端口所在交换机到根桥的开销相同,则比较端口所在交换机的BID
- 如果所在交换机的BID也相同,比较交换机的PID
3.4 剩下的就是阻塞的端口
剩余的端口就是被阻塞的端口,但是BP(Blocking Port)端口已经细分为AP(Alternate Port)端口和BP(Backu Port)端口
选举完成,从逻辑上去掉那些被阻塞链路,就得到了一棵能到达根桥的无环的树 —> spanning tree
检查STP的选举情况:
[SW3]display stp brief
根端口 :Root port
指定端口:Designation port
非指定:alternate backup /backup Port
4.STP的状态机
- 启动【Disable】:端口处在非操作状态,端口不处理BPDU报文也不转发用户流量
- 阻塞【Blocking】:如果端口被选举成为了 阻塞端口,则这个端口就不能转发数据了,被阻塞的端口,只能接收并处理BPDU也不能学习MAC地址。
- 侦听【Listening】:过渡过程,完成选举过程,能够接收和转发BPDU,不能学习MAC地址,也不能转发数据
- 学习【Learning】:学习MAC地址,用来完善交换机自己的MAC地址表,能够学习MAC地址,能够接收和转发 BPDU,不能转发用户流量
- 转发【Forwarding】:能够进行转发数据了,能够接收换发送BPDU,能够学习MAC地址,能够转发数据
注:新的生成树标准中,Disable、blocking和Listening合并成Discarding状态
端口的状态切换过程:
例如此图中
华为的S5700交换机默认时开启stp的。
5 STP的计时器
Forward Delay 设备状态迁移的延迟时间,要求新选出的根端口和指定端口要经过2倍的Forward Delay后,才能进入转发状态,即
从 Discarding 到 Learning,需要经历15s
从 Learning到 Forwarding,需要经历 15s
华为已不再使用最大存活期Max-age,而是收到BPDU就开始重新计算,如果一直没有收到BPDU,也会在至少3个Hello间隔后重新计算。
6 STP的拓扑变更
https://support.huawei.com/enterprise/zh/doc/EDOC
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/131308.html