HCIP 学习笔记 (17-21) BPDU过程、STP、RSTP和MSTP

0.STP生成树解决环路问题:

由于设备冗余,或链路冗余,造成回路,使用BPDU协议避免环路:

①选root(根桥/根交换机);

②每个非根桥选一个RP(根端口);

③每条线选一个DP(指定端口),根桥端口都是DP(指定端口);

④剩下一个就是NDP(阻塞端口);

1.BPDU协议Hello包:

BPDU协议Hello包:

Hello 2s hello包2秒发一次,BPDU时间

MaxAge 20s 死亡时间是20s,10倍BPDU时间内没有收到对方hello包,就认为对方出现了问题

FwDly 15s

端口过程:阻塞(Block) --> 监听(Listening) --> 学习(learning) --> 非阻塞/转发(Forward)

​ 20s 15s 15s =50s 收敛时间

BID(Brige ID):优先级+Mac地址

RID(Root ID):根桥

stp mode stp 修改为STP模式

dis stp 查看交换机生成树(默认MSTP)

dis stp inter e0/0/1

dis stp br

2.STP选取 根交换机:比较BID谁更小

HCIP 学习笔记 (17-21) BPDU过程、STP、RSTP和MSTP

stp priority 0 调整id,优先级

stp root primary 首要根交换机 变为0

stp root secondary 备用根交换机 变为4096

3.STP选取 根端口:

HCIP 学习笔记 (17-21) BPDU过程、STP、RSTP和MSTP

根端口:发包给根的端口,每台设备有且只有一个

① 第一步:比较端口成本谁更小(自己的cost):

成本是累加的,离根交换机有两条线,cost就是两条线的和

dis stp br 查看每个端口的状态,根桥所有端口都是Forward

dis stp inter g0/0/1 查看端口的cost Active=20000

dis stp inter e0/0/1 查看端口的cost Active=200000

Port Cost(Dot1T ) :Config=auto / Active=20000

调整端口的cost:

inter e0/0/1

[Huawei-Ethernet0/0/1]stp cost 2000

dis stp br 查看根端口和阻塞端口

[Huawei-Ethernet0/0/1]undo stp cost

② 第二步:比较对方交换机的BID谁更小:

HCIP 学习笔记 (17-21) BPDU过程、STP、RSTP和MSTP

看连的对方的BID,来选择自己的根端口,更小的为根端口

③ 第三步:比较对方端口的PID谁更小:

HCIP 学习笔记 (17-21) BPDU过程、STP、RSTP和MSTP

PID=端口优先级+端口号

注意:是对方的!和自己没有关系!

Port Priority :128
Designated Bridge/Port :32768.4c1f-cc0d-5977 / 128.23

inter g0/0/1

stp port priority 0

4.STP选取 指定端口:

HCIP 学习笔记 (17-21) BPDU过程、STP、RSTP和MSTP

在每一条线上面,选取指定端口

哪一个端口离根最近,哪一个就是指定端口

(离根最近指的是:端口到根桥经过的线的累加成本最低,即cost最小,

注意:不是带宽,带宽不适合累加)

①第一步:比较端口(累加)成本谁更小

根桥两个端口离根最近,所以DP

②第二步:比较端口所在交换机的BID谁更小

HCIP 学习笔记 (17-21) BPDU过程、STP、RSTP和MSTP

③第三步:比较端口的PID谁更小

HCIP 学习笔记 (17-21) BPDU过程、STP、RSTP和MSTP

5.RSTP 快速生成树:

HCIP 学习笔记 (17-21) BPDU过程、STP、RSTP和MSTP

STP五种状态:

disable:端口关闭状态

blocking:不允许转发数据流量,但可以转发BPDU

Listening:决定端口应该成为什么角色,端口应该成为RP还是DP,不允许转发数据流量,但可以转发BPDU

learning:学习MAC地址,不允许转发数据流量,但可以转发BPDU

Forwarding:既可以转发数据流量,也可以转发BPDU

RSTP:合并disable、blocking、Listening状态,叫discarding状态,

加上learning、Forwarding共3种状态,

P|A 提议|确认 机制,不要50s 计时器了,快速收敛

链路失效时间以前需要20s,现在只需要3倍时间6s

stp mode rstp

dis stp bri

ROOT 根端口

DESI 指定端口

BACK 备份端口(阻塞态) 指定端口的备份

ALTE 预备端口(阻塞态) 是根端口的备份口

inter e0/0/2

shutdown

dis stp br

undo shutdown

经测试:

BACK需要经过15s从Discarding进入learning,再经过15sForwarding收敛,共30s

ALTE是根端口的备份口,直接收敛

PC主机关机,会发送tcn bpdu,告知根交换机,网络拓扑发生变化,然后根桥将该信息广播到整个网络

MSTP另一种端口:边缘端口:交换机连PC的端口

配置了此端口,PC就不参与网络拓扑变化,就不用发送tcn bpdu了

此端口不需要参与生成树,应直接从Discarding 到 Forward 或 从Block状态到 Forward

测试:

E0/0/10,DESI端口关掉再开启,需要经过15s进入learning,在经过15sForwarding收敛,共30s

将端口设置为边缘端口,告诉交换机这个端口不需要参与生成树

stp edged-port enable 开启

快速进入Forwarding状态,不需要等30s

stp edged-port disable 关闭

dis version

在V200R001版本之后,边缘端口可以自动检测

即:如果没有收到PC方向发来的BPDU,则自动成为边缘端口

stp bpdu-filter enable 端口不再发送BPDU,

当然配置了边缘端口,收到BPDU也进行忽略

6.MSTP 华为默认生成树:

HCIP 学习笔记 (17-21) BPDU过程、STP、RSTP和MSTP

思科PVSTP/RPVSTP,每个vlan一个生成树,各个vlan阻塞的口不一样,实现负载均衡

但思科的vlan生成树必须每个vlan一个,不方便,

MSTP自定义生成树,把某些vlan的根定义在左边,另外的vlan根定义在右边

比如:希望vlan2流量从左边走,vlan3流量从右边走,

当链路出问题时,将有问题的一路切换

所以要将vlan2作为一个生成树,vlan3作为另外一个生成树

配置MSTP:

(默认MSTP 是instance 0 所有未配置的vlan都在0里面)

stp region-configuration 进入配置

region-name xiaoniu 域名,三台设备一样

revision-level 1 修订号,三台设备一样

instance 1 vlan 2

instance 2 vlan 3 创建2个生成树的实例,第一个生成树包含vlan2,第二个生成树包含vlan3

active region-configuration 生效

在另外两台设备上同样配置

配置MSTP根交换机和备份交换机:

[SW1]stp instance 1 root primary

[SW1]stp instance 2 root secondary

[SW2]stp instance 2 root primary

[SW2]stp instance 1 root secondary

查看MSTP实现的 负载均衡:

[SW3]dis stp ins 1

[SW3]dis stp ins 1 bri

dis stp region-configuration