CCNP学习笔记14-交换部分---STP
STP分类
IEEE | CISCO |
802.1D STP 收敛30-50s | PVST(ISL only);PVST+(ISL & 802.1Q) |
802.1W Rapid-STP 收敛 1s以内 | rapid-PVST |
802.1s mst | MIST/MST |
802.1D STP===========PVST+(ISL & 802.1Q)
收敛缓慢 收敛缓慢
基于交换机 基于 vlan
(冗余链路被切断,防环同时造成两份链路) (配置不同vlan走不同链路,防环且不浪费)
- 802.1W Rapid-STP与rapid-PVST区别是基于交换机和基于vlan的
当交换机vlan数量巨大时,基于vlan的生成树就会对应增多,更新bpdu(2s刷新)时就占用大量交换机资源;
MST,就是将多个vlan划分为一个实例,一个实例对应一棵树,从而防环同时,减少更新bpdu
BPDU
两种 1,配置BPDU
2,TCN 拓扑发生改变时使用
Protocol ID: 保留,总是0
version:802.1d=0 ;802.1w ;802.1s
message type: 配合版本=0;TCN = 80。TCN报文最后只到这里,flag以后的字段都是针对配置报文
FLAG : 802.1d使用flag的第一和最后两位
root ID: 根标识
cost path:开销,用来决定block哪个端口
bridge ID:唯一标示一台交换机,用来选举根
port ID:唯一标示交换机一个端口
message age:
max age : 20s刷新
hello time:2s 刷新
forward delay:15s
-------------------------------------------------------------------------------------------
STP四大流程
1,选根口(整个网选一个)
2,选根端口(从所有非跟桥选,每台有一个)
3,选指定端口(每个链路有一个)
4,blok剩下的口
根桥选举:
根据 bridge ID (优选小的)
bride priority 2byte | MAC address 5byte |
cisco bridge ID
bridge priority 4bit 范围0-15 默认=8 | extend systemID 12bit区分vlan | 48bit MAC |
上面结构 优先级可变但是vlan号不能变,所以整个以4096倍数增加 2~12=4096,因bride priority默认=8,所有整个默认=32768
0 0
1 4097
. .
8 32768
实际工程中不会让设备自己选举根,都要人为设置
全局下:spanning-tree vlan 1 root primary 设置这台交换机为根
全局下:spanning-tree vlan 1 root secondary 设置这台交换机为备份根
全局下:spanning-tree vlan 1 primary xx=4096倍数 设置优先级
选举根端口:
1,最小的根网桥的ID(root ID,也是个bride ID)
2,到根网桥最下的cost
3,最小的发送方brideID
4,最小的发送方portID
5,最小的接收方的portID
STP 端口的状态种类
端口状态 | 端口能力 |
desabled | 不发生任何报文 |
blocking | 不接收或转发数据,接收但不发送BPDU,不进行地址学习 |
listening | 不接收或转发数据,接收并发送BPDU,不进行地址学习 |
learning | 不接收或转发数据,接收发送BPDU,开始MAC地址学习cam |
forwarding | 接收并转发数据,接收并发送BPDU,进行地址学习 |
TCN
作用:通知根桥拓扑发生变化,触发根桥通知全网拓扑变化
上图,SW4-SW7断开时,SW4会想根发送BPDU,同时SW2会将flag字段最后一位置1,使用配置版本BPDU作为确认回复SW4。然后SW2继续发送给根,根回复确认给SW2。
根收到SW4 SW7断开的信息后,将FLAG字段第一位置1,发送给所有交换机通知,拓扑改变,收到该BPDU的交换机将mac表存活时间300s置为15s加速老化时间,以加快更新。
STP收敛:直连链路收敛 30s
直连断开,接口马上down掉,马上把原来block的up,接口down掉,同时BPDU马上 老化;被up的block口经历listen 15s-》learn 15s 开始forward
非直连链路收敛 50s
非直连断开,但是接口依然UP的,不会2s收到更新的BPDU,但是原来的BPDU依然存在,在 经历20s老化时间后,才会消失,此时,接口down掉,up被block的端口,然后listen 15s-》learn 15s然后forward
不重要链路的收敛
上图,最下PC 连接交换机的端口,up down都会使SWC 发送TCP给根,导致全网的MAC表老化时间从300->15s,使得终端接口的变化扰乱全网交换机的MAC表。
######### 使用portfast解决: ###########
portfast配置在交换机连接终端设备(例如PC)的接口上,不要配置在交换机之间。
作用:1,配置portfast后,不会触发交换机发送TCN 报文,从而不会导致全网MAC表的重复收敛。
2,接口在从down->up不会经历 listen和learn,而知之间forward,节省30s转发延时
配置(2种方法)
1,接口下--只有access 口才生效,所以不会影响交换机之间的接口
int f0/1
spanning-tree portfast
2, 全局下--只有access 口才生效,所以不会影响交换机之间的接口
spanning-tree portfast default
查看
show spanning-tree int f0/1 portfast
###### uplinkfast ########
用于当有两条链路到根的时候
如图。A有两条去往根D1的链路,在A上配置uplinkfast,当A根端口down掉,A的block口不会等待30s,而会之间forward
注意:配置uplinkfast后,该交换机一定不能是transit交换机,只能是作为接入层的交换机使用。
所以配置uplinkfast后,该交换机优先级自动升为高于缺省值,确保不会成为根
同时该交换机的所有端口的 cost 都会增加3000.确保该交换机的端口不会成为指定端口
实验:
SW1为根 spanning-tree root primary
SW2为备份根 spanning-tree root secondary
所有SW3的 f0/2被 block
SW3:全局下 spanning-tree uplinkfast
sho spann uplinkfast
此时down掉f0/1,无需等30s,f0/2马上forward
但是 f0/2 no shut后 要经历30s延时,才能恢复F0/1up
扩展理解uplinkfast:
上图,SW3配置uplinkfast后,本地接口是会马上forward,但是SW2会经历 15s的mac表老化时间,所以还是不会马上通信,但是uplinkfast会以本地源MCA多播给其他交换机,加快刷新mac表,可以手动设置
全局下 spanning-tree uplinkfast max-update-rate 1000 (每秒发送1000个mac)
根据自己mac表中的mac数量,实际而定。
#########################################################################################
backbone fast
作用:上图,R为根,S的一个口被block,当R B之间断开,S要经历50s才能up.使用backbone可以节省30s
过程:R B断开后,S会收到B的次优BPDU,S向R发送RLQ,根收到后会向S回复RLQ表示根还是完好的,然后S告诉B根还是好的,B就会同意,并把端口变为根端口,S经历30s UP
配置,上图要配置在R和S上,三台都配置也可以
全局下,spanning-tree backbonefast
转载于:https://blog.51cto.com/angelfire1986/1728025