文章大纲
|
1-STP是什么?
STP(Spanning Tree Protocol)是一个用于局域网中消除环路的协议,它的标准是IEEE 802.1D。STP通过将部分冗余链路强制为阻塞状态,其他链路处于转发状态,将环形网络结构修剪成无环路的树形网络结构,可实现消除环路。当处于转发状态的链路不可用时,STP重新配置网络,并激活合适的备用链路状态,恢复恢复网络连通性。
2-STP在那种情况下产生?
1-单点网络
链路上任何一个设备出现,故障,就会影响整个链路,为了解决这样的问题使用多个设备对链路,增加冗余性(冗余性:增加线网的备份,对网络增加可靠性)
2-增加冗余的网络
虽然解决了网络的单点的缺点,但是增加网络冗余的时候,链路会造成二层环路(因为交换机的特性是泛洪,会把网络资源给耗尽)的风险,生成树协议,STP使用于此.
3-STP解决什么现象?
1-广播风暴
因为交换机的特性就是泛洪,现交换机默认开启了stp的协议,假设没有开启,因为交换机是一整个广播域,所以只要收到任何报文,交换机都会进行泛洪,并消耗网络资源的现象就是"广播风暴"
2-MAC地址漂移
假设交换机有两个接口并在一个三角形结构中,从01接口上学到一个mac地址,对应的接口,因为交换机的泛洪,02也会收到一个mac地址,但是与01学到的mac地址一样,所以会进行,端口的替换,不稳定的现象,叫做mac地址漂移
4-STP怎么去解决?
1-通过选举不同的设备角色,以及接口的不同角色,阻塞接口,打破二层环路
选举的参数
1-BID
桥ID(Bridge id),桥就是交换机的意思
分两部分组成
1-桥的优先级16bite
2-MAC地址48bite
2-PID
接口编号(port id)
分两部分组成
1-接口优先级默认是128,必须是16的倍数
2-接口编号例G0/0/1
3-PRC(路径开销)---根桥的根路径开销是0
STP cost指的是接口的开销,按照IEEE802.1T标准,默认是2000,华为设备默认也是按照IEEE802.1T的标准,PRC指的是根桥到本设备的入接口的STP cost之和,可以进行修改
2-选举规则都是越小越优
3-根桥和备份根桥的选举设备角色-----桥优先级相同的话,比较mac地址表,越小越优
1-比较BID
1-先比较桥优先级
优先级默认是32768,是4096的倍数,最小默认
2-比较MAC地址大小
2-根桥上都是DP,没有根端口
4-端口的选举端口角色(根端口,指定端口,备份端口也可以叫做阻塞端口)
1-RP根端口-------接收BPDU(接受,发送,和转发数据帧)
除了根桥之外,每个交换机都有一个根端口
1-比较RPC
2-比较对端的BID
3-比较对端的PID
4-比较本端的PID
2-DP指定端口-------发送BPDU(接受,发送,和转发数据帧)
每个链路上只有一个DP端口,
1-比较PRC
2-比较自身BID
3-比较自身PID
3-AP阻塞端口/备份端口/阻塞分根端口(只能接受和处理数据帧)
通过规则选择剩下的接口,都会变成阻塞端口AP
只要超过了max age时间,端口就会变成转发状态
5-STP端口的状态机,交互,收敛时间
1-STP的端口的状态机
1-stp的五种状态
1-disable 禁用 不收不发 ,不处理
2-blocking 阻塞 接收并处理,但是不转发 ---------预备端口的最终状态:ap
3-listenning 侦听 收发BPDU,转发,不处理数据报文
4-learning 学习mac地址表, 收发BPDU 不处理数据报文 ----防止临时环路
5-forwarding 转发 什么都收发 ,只有rp和dp才能进入此状态
2-接口的状态迁移
1-五种状态的迁移
2-STP信息的交互
stp信息的交互是通过BPDU桥协议数据单元(报文)来进行交互的
1-配置BPDU-----BID,PID,路径开销等参数
作用:
1-选举根交换机
2-选举端口状态
3-选举端口的角色
在开始选举的时候,每个交换机都会发送配置bpdu,但是稳定后只有根桥才会主动发送,其他交换机设备收到后才会发送
1-配置bpdu报文的格式
2-TCN BPDU -----下游交换机感知到拓扑发生变化时向上游发送的拓扑变化通知。
1-会使用到配置bpdu中的flags字段
1-tca
停止发送tcn bpdu,并告知该设备,已经收到
2-tc
根桥设备发送,泛洪,加速更新
MAC地址表项的老化时间由默认的300 s修改为Forward Delay的时间(默认为15 s)
解决mac地址表默认老化时间是300s
2-tcn bpdu
1-设备只要感知到拓扑发生改变,就会不停的发送TCN BPDU
3-为什么要有tcn bpdu?-----实验:拓扑改变导致mac地址表错误
1-mac地址表300s,更改成forwarding时间
2-重置下游设备,重新开始学习,mac地址表的转发
3-可以感知链路上的拓扑发生改变
故障设备通过TCN消息向上游设备通知故障,上游设备收到TCN消息后,向故障设备发送
TCA确认收到的同时,继续向根桥发送TCN告知下游设备故障信息。当根桥设备收到TCN
后,统一向所有的下游设备发送TC消息,告知整个拓扑设备,哪个设备出现了故障,及时
更新MAC地址信息,防止MAC地址错误造成无法访问的情况。
3-收敛时间
根桥失效的收敛时间 = 20S的老化时间+2*转发延迟时间(15S)=20+30 =50S
1-直连故障的收敛时间
由于故障链路与预备接口在同一个设备中,设备可以快速感知错
误,不需要等20S老化即可完成收敛,收敛时间为30S。
2-非直连故障收敛时间
由于故障链路与预备接口不在同一个设备上,所以需要等20S老化 ,加上两倍的forwarding时间
6-stp链路中拓扑发生了变化
1-根桥故障
稳定的stp链路上,根桥会周期的发送配置bpdu
如果根桥sw1,超过了max age---20s,其他非根桥的交换机就会觉得根桥出现了故障,会重新选举根桥
Sw3设备需要恢复端口状态变成dp,重新发送bpdu选举根桥
Ap(预备端口)默认的状态是blocking状态,首先要等bpdu的老化时间,才能够接收新的bpdu,需要恢复转发状态也就是进入forwarding状态-----20s+15s+15s=50s
2-直连线路出现故障
Sw1和sw2之间的链路出现故障
rp端口出现故障,那么ap端口就要变成rp端口,但是根桥没有问题
ap端口需要从,blocking状态变成,forwarding状态,需要15s+15s=30s
3-非直连线路出现故障
Sw1和sw2之间出现故障
Sw2在经过了max age时间之后,会认为根桥挂了,就会主动向往外面去发送bpdu,但是sw3一直会收到bpdu,所以并没有影响到sw3设备
Sw3的ap端口由于在max age没有收到bpdu,就会把端口变成dp,并发送自己的配置bpdu
Sw2跟sw3互相交互的配置bpdu,进行对比,发现sw3的bpdu要更优
使用的时间max age和ap端口变成转发状态的时间----20s+15s+15s=50s
4-拓扑改变导致mac地址表错误
因为mac地址表的老化时间默认是300s,交换机是依赖mac地址表来进行转发数据帧的
拓扑发生改变之后,需要经过300s才会出现更新
1-为了解决这一个问题,出现了tcn bpdu,可以加快mac地址表的老化时间
1-mac地址表300s,更改成forwarding时间
2-重置下游设备,重新开始学习,mac地址表的转发