STP
为什么会有stp
为了保证可靠,设计了一种环网拓扑,又因为交换机的工作原理,会出现环路问题,为了解决环路,才有了stp生成树
1 mac地址表震荡
2 广播风暴
作用:在保证可靠的基础上,解决环路问题
原理:阻塞端口(预备端口)通过选举阻塞端口,来防止环路
1 根桥(根交换机): 1 比较每台交换机上的网桥id (优先级+mac地址)越小越优先
默认优先级 32768 修改优先级修改的时候要改成4096的倍数
交换机上有默认的stp版本为mstp (多实例生成树)stp (生成树)rstp (快速生成树) [系统]stp mode stp 修改stp的模式
Stp priority 4096 修改优先级
2 根端口:非根交换机到达根交换机的最优端口
比较规则
1 路径开销值
2 对端网桥id
3 对端对口id
4 本端端口id (hub)
3 指定端口:每条链路上到达根交换机最优端口根交换机上所有端口都是指定端口
比较规则
1 路径开销
2 本端网桥id
3 本端端口id (端口优先级和端口编号)端口优先级默认是128
4 剩下的端口就叫做阻塞端口
Stp中的报文交互
BPDU 桥协议数据单元
两种bpdu 1 配置bpdu
作用:用于角色(端口)选举
维护网络拓扑 2秒1次最多20秒20 秒没有根的回应,则认为根down掉 2 tcn bpdu 拓扑变化bpdu
作用:当拓扑发生变化时,会发tcn bpdu
Bpdu 字段
1 bpdu flsges标识字段
Tca 位拓扑变化确认位
Tc 位拓扑变化位
发生变化时置1
2 root identifier 根网桥id
3 root path cost 到达根的开销值
4 bridge id 本交换机的网桥id
5 port id 端口id
0x8001 前面的80 代表优先级128 , 01代表端口号
6 message age 消息寿命每经过一台交换机message age +1
7 max age 最大寿命 20 秒
8 hello time 2秒
9 forward delay 转发延迟 15秒
端口的状态变化
1 disable 开启stp时特点:不进行stp计算
2 blocking 阻塞端口直接进入blocking 状态
3 listening 非阻塞端口才进入侦听状态特点:加速mac地址表老化
中间有15秒的间隔时间,目的是为了加速mac地址表老化,mac地址表老化时间300秒
4 learning 学习状态
中间有相隔15秒的时间,加速mac地址表的学习
5 forwarding 转发状态
当网络发生变化时,阻塞端口如何从discove 到forwarding状态的??
主根
备根
都在汇聚层交换机
设置为主根
Stp root primary
或者修改
set primary 4096
设置备份根
Stp root secondary
在交换机上出现的故障叫做直接故障
根端口断掉后,预备端口直接变成根端口,需要30s到达forwarding状态
当阻塞端口感觉到拓扑发生变化,发送tcn BPDU
对端会回复一条tca=1拓扑变化确认
当交换机收到根交换机范洪的网络变化tc=1的配置BPDU才能老化原来的路径,学习新的路径
中间链路出现故障叫做间接故障
至少需要50s的时间变为forwarding状态
由于线路故障,Sw2 20s后老化了源路径,认为自己是根,向sw3发送bpdu,sw3收到两条bpdu,因此会检测到链路变化,由于链接s1的路径最优,所以向s1发送tcnBPDU,s1
回复一挑tc=1的配置bpdu,交换机将原来的路径老化,并学习新的路径
Stp的缺点:收敛过慢
原因:stp中1.learning到forwarding需要15s学习mac地址
Listening到learning需要15s 加速老化时间
2.无论上述用了多少秒,最大等待时间总是15s
3.发送tcnBPDU的时间过长
RSTP快速生成树
为什么会有RSTP?
备份端口备份成为指定端口
预备端口将来预备成为根端口
预备端口和备份端口的相同点,正常情况下都不进行数据转发
RSTP中端口状态变成了三种,将stp状态前三种合成一种,因为不学习mac也不转发数据三种状态:
1.discarding 不学习mac也不转发数据
2.learning 不转发数据但是学习mac
3.forwarding 即学习mac也转发数据
BPDU stp和rstp的区别
配置BPDU RST BPDU(快速生成树bpdu)
TCN BPDU
标志位
1.Tca 位(topology change acknowledgement)拓扑变化确认位
2.同意位(agreement)
3.转发位(Forwarding)
4.学习状态(learning )
中间有相隔15秒的时间,加速mac地址表的学习
5.端口角色(port role)端口角色是11,证明这个端口是指定端口,如果是10则代表是
根端口,01代表预备端口或者备份端口,00代表保留
6.提议位(proposal)
7.拓扑变化位(topology change)