目录
STP的基本概念:
桥ID(Bridge ID):
根桥:
开销(Cost):
RPC(根路径开销):
Port ID:
BPDU:(网桥协议数据单元)
配置BPDU:STP计算拓扑的关键
配置BPDU的原则:
BPDU转发过程:
TCNBPDU:
STP的计算过程:
STP的接口状态:
拖布变更 - 根桥故障
拖布变更 - 直连链路故障
拖布变更 - 非直连链路故障
拓扑变化导致Mac地址错误
STP基本配置
单设备”链路备份“方案 —— STP
STP生成树技术:避免二层网络链路中出现环路的问题。
环路问题:形成广播风暴,消耗交换的资源,导致网络瘫痪
STP协议:可以解决网络中环路问题,也可以做到网络中的链路冗余,当网络中的拓扑结构发生变化时,STP能够感知和自适应生成新的拓扑结构,保证网络的可靠性。
STP的基本概念:
桥ID(Bridge ID):
IEEE802.1D规定BID由高16位的桥优先级和低48位的桥MAC地址构成。,每一台运行STP的交换机都拥有一个唯一桥ID,在STP中,BID最小的设备会被选作位根桥。
根桥:
STP主要作用是在整个交换网络中计算出一个无环的树,根桥是这个树的树根,STP在工作时,会先计算出树根,在从树根计算出一个无环的网络拓扑,在STP中,BID最小的会被选举为根桥。BID比较过程中,会先比较高16位的优先级,优先级相同则会比较低48位的Mac地址,拥有最下mac地址的位根桥。
开销(Cost):
每一个激活STP的接口,都会维护该接口到根交换机的路径开销。开销的大小与带宽,工作模式和STP Cost计算方法有关,用户也可以通过命令调整接口的COst值。
RPC(根路径开销):
交换机的某接口到根桥的开销总和,即为RPC。一个设备从某一接口到达根桥的RPC等于从根桥到交换机所有入接口的Cost总和。
Port ID:
运行STP的交换机使用接口ID来表示每个接口,每个接口ID主要用于特定场景下的接口选举。
接口ID由两部分组成,高4位的接口优先级和低12位的接口编号。
在激活STP的接口会维护一个缺省的STP优先级,华为的是128。
BPDU:(网桥协议数据单元)
BPDU是STP协议的报文,使用STP协议的交换机之间,使用BPDU交换信息。
BPDU有两种:
配置BPDU:STP计算拓扑的关键
TCNBPDU:网络发生变化时,出发TCNBPDU(比如根桥宕机,从新选举根桥)
配置BPDU的原则:
STP按照如下顺序进行配置最优BPDU:
1,最小的根桥ID(选根桥)
2,最小的RPC(选根接口)
3,最小的网桥ID
4,最小的接口ID
这里每个原则都对应STP报文中的字段,第一条是用来选举根桥,后面用来选举根接口和指定接口。
BPDU转发过程:
TCNBPDU:
拓扑变化时,发现故障的交换机会发送TCNBPDU,用来更新网络拓扑、根端口,指定端口,和Mac地址表。
STP的计算过程:
选举根桥 ——> 选举跟接口 ——> 选举制定接口 ——> 选举非指定接口(阻塞那些端口)
1,选举根桥
STP在交换网上工作时,每个交换机都会发送BDPU,认为自己是根桥,最后在比较过程中,选举BID最小的交换机作为根桥。
一个连续的交换网络中,只有一个根桥。
根桥的角色可以抢占,为了保护网络稳定,可以将根桥的优先级设置为0。
2,选举根端口(在每一个非根桥上选举根端口)
每一个交换上,有且只有一个距离根桥开销最小的接口,这就是根端口
3,选举制定接口(在非根桥上选举一个发送端口,这个端口到根桥的开销也是最小的)
如:
SW3发来的BPDU:根桥:SW1,RPC:20000,BID:SW3,port ID:128.23
SW2发来的BPDU:根桥:SW1,RPC:20000,BID:SW2,port ID:128.23
此时要选举出SW3和SW2之间的指定端口,那么就要比较他们的字段,根桥和RPC相同,sw2的BID小于sw3的BID,那么最后选择sw2的23接口作为sw2和sw3之间的指定端口。
4,选举非指定端口:(如果既不是指定端口,也不是根端口,那么就是非指定端口,堵塞)
STP的接口状态:
禁用:接口被关闭
阻塞:接口被STP阻塞,不能发送BPDU,但是会侦听BpDU,不能发送业务数据,也不会学习Mac地址
侦听:接口接受和转发BPDU,但是不能转发业务数据,用来选举根桥和根端口等
学习:接口侦听业务数据,但是不转发业务数据,在收到业务数据时学习Mac地址
转发:进行所有数据的转发,此时接口一定是跟接口或者是指定接口
STP状态迁移场景:
拖布变更 - 根桥故障
如果根桥故障:
等待20秒还没有收到根桥发来的BPDU,就会进行重新选举,在选举过程中,在侦听会由15秒的时间,用来选择根接口和指定接口、阻塞非指定端口,在学习状态会有15s的时间学习mac地址。
所以根桥故障会消耗50s的时间才能恢复链路运转。
拖布变更 - 直连链路故障
如果直连出现问题,就会启动阻塞的端口,会由30s时间的侦听和学习。
拖布变更 - 非直连链路故障
sw1和sw2之间出现故障,但是sw2可以通过sw3收到sw1的消息,就是非直连链路故障
sw2和sw1链路故障,此时sw2没有根接口,那么sw2就会发送BDPU宣称自己位根节点,此时sw3收到sw2的BPDU,也受到了sw1的BpDU,sw3会等待20s,如果20s内收到了sw1的BPDU,就会向sw2转发sw1的BPDU,此时sw2,就会进入侦听和学习状态,各是5秒,链路才能恢复。
所以工耗时50s。
拓扑变化导致Mac地址错误
当链路发生拓扑变化,此时mac地址表会出现错误,那么就需要快速的老化mac地址表,从新学习
所以在链路故障后,发现故障的交换机会发送TCNBPDU给相邻交换机,相邻交换机回复TCA,然后将TCN转发给根桥,根桥会恢复一个TC,告诉链路中所有的交换机,更新mac地址老化时间(300s -> 15s),重新学习mac地址
STP基本配置
配置STP协议
stp mode stp | rstp | mstp //配置stp或者rstp或者mstp
(可选)手动设置根交换机
stp root primary //设置根交换机,优先级0
(设置备份交换机)
stp root secondary //设置备份交换机,优先级4096
(可选)配置优先级
stp priority 值 //缺省情况下为32768
(可选)配置接口开销值
stp pathcost-standard dotld-1998 | dotlt | legacy //配置开算计算算法
stp cost 值 //设置接口开销值
(可选)配置接口优先级
stp priority 值//接口优先级默认128
stp enable //启动stp