1. STP生成树
1.1 STP生成树的部分知识
STP生成树的基本概念:
生成树协议STP(Spanning Tree Protocol)
将环形网络修剪成为一个无环的树型网络,避免报文在环形网络中的增生和无限循环。
环路会引起的问题:
(1)环路会引起广播风暴,网络中的主机会收到重复数据帧。
(2)环路会引起MAC地址表震荡。
STP的作用:
STP通过阻塞端口来消除环路,并能够实现链路备份的目的。(防止环路)
运行该协议的交换机可以自动找出导致环路的链路,并将其临时阻塞,再链路发生故障的时候,再自动恢复阻塞链路,保障网络既有冗余有无环运行。
STP生成树的计算过程:
1、选择根网桥
2、每个非根网桥上选择根端口(RP)
3、在每条链路上都要选择一个指定端口(DP)
4、阻塞既不是根端口又不是指定端口的端口(AP)
1.1如何选择根网桥
依据:网桥ID(BID)
网桥ID=网桥优先级+网桥的MAC地址
网桥优先级的取值范围:0-65535
默认值:32768
优先比较优先级,选最小
当优先级相等的情况下,选MAC地址小的
2.1何选择根端口?
1、到根桥最低的根路径成本
某个网桥到达根网桥的中间所有线路的路径成本之和
用来代表一条线路带宽的大小
2、直连的网桥ID最小的
3、对端端口ID(PID)最小的
端口ID=端口优先级+端口编号
端口优先级:0-255 默认值:128
3.1如何选择指定端口?
根网桥上的每个端口都是指定端口,都不会被阻塞
1、比较到达根桥的RPC(Root Path Cost),越小越优。
2、比较BPDU包发送者的BID,越小越优。
3、比较BPDU包发送者的PID,越小越优。
4、比较BPDU包接收者的PID,越小越优。
总结:stp算法中的比较都是选小的
STP生成树的基本配置
1.2 BPDU 报文
字段 | 描述 |
---|---|
Root Identifier ( 根ID) | 发送此配置BPDU的交换机所认为的根交换机的交换机标识 |
Root Path Cost (到根路径开销) | 从发送此配置BPDU的交换机到达根交换机的最短路径总开销,含交换机根端口的开销,不含发送此配置BPDU的端口的开销 |
Bridge Identifier (桥ID) | 发送此配置BPDU的交换机的STP交换机标识 |
Port Identifier (端口ID) | 发送此配置BPDU的交换机端口的STP端口标识 |
比较次序: Root ldentifier > Root Path Cost> Bridge Identifier>Port Identifier(值越小越优先)
2. 配置MSTP实验
实验要求:
交换机配置mstp,sw1为vlan10的主,vlan20的备,sw2为vlan20的主,vlan10的备,
配置R1的loopback口为1.1.1.1,使得pc1和pc2可以ping通1.1.1.1
拓补图如下:
R1的代码:
[Huawei]sysname r1
[r1]int g0/0/0
[r1-GigabitEthernet0/0/0]ip add 192.168.10.254 24
[r1-GigabitEthernet0/0/0]int g0/0/1
[r1-GigabitEthernet0/0/1]ip add 192.168.20.254 24
[r1-GigabitEthernet0/0/1]q
[r1]int loopback 0 //设置路由的虚拟IP地址
[r1-LoopBack0]ip add 1.1.1.1 24
sw1的代码:
[Huawei]sysname sw1
[sw1]vlan b 10 20
[sw1]int e0/0/1
[sw1-Ethernet0/0/1]p l h
[sw1-Ethernet0/0/1]port hybrid pvid vlan 10
[sw1-Ethernet0/0/1]port hybrid untagged vlan 10 20
[sw1-Ethernet0/0/1]int e0/0/2
[sw1-Ethernet0/0/2]p l h
[sw1-Ethernet0/0/2]port hybrid pvid vlan 10
[sw1-Ethernet0/0/2]port hybrid untagged vlan 10 20
[sw1-Ethernet0/0/2]int g0/0/2
[sw1-GigabitEthernet0/0/2]p l t
[sw1-GigabitEthernet0/0/2]p t a v a //trunk模式,允许通过所有vlan
[sw1-GigabitEthernet0/0/2]q
[sw1]stp re
[sw1]stp region-configuration //进入域
[sw1-mst-region]regi
[sw1-mst-region]region-name zwh //设置域的名字
[sw1-mst-region]instance 1 vlan 10 //vlan 10为实例1
[sw1-mst-region]instance 2 vlan 20 //vlan 20为实例2
[sw1-mst-region]active re
[sw1-mst-region]active region-configuration //激活状态
[sw1-mst-region]q
[sw1]stp instance 1 root primary //设置为实例1的主
[sw1]stp instance 2 root secondary //设置为实例2的辅
sw2的代码:
[Huawei]sysname sw2
[sw2]vlan b 10 20
[sw2]int e0/0/1
[sw2-Ethernet0/0/1]p l h
[sw2-Ethernet0/0/1]port hybrid pvid vlan 20
[sw2-Ethernet0/0/1]port hybrid untagged vlan 10 20
[sw2-Ethernet0/0/1]int e0/0/2
[sw2-Ethernet0/0/2]p l h
[sw2-Ethernet0/0/2]port hybrid pvid vlan 20
[sw2-Ethernet0/0/2]port hybrid untagged vlan 10 20
[sw2-Ethernet0/0/2]int g0/0/2
[sw2-GigabitEthernet0/0/2]p l t
[sw2-GigabitEthernet0/0/2]p t a v a
[sw2-GigabitEthernet0/0/2]q
[sw2]stp re
[sw2]stp region-configuration
[sw2-mst-region]re
[sw2-mst-region]region-name zwh
[sw2-mst-region]instance 1 vlan 10
[sw2-mst-region]instance 2 vlan 20
[sw2-mst-region]active re
[sw2-mst-region]active region-configuration
[sw2-mst-region]q
[sw2]stp instance 2 root primary //设置为实例2的主
[sw2]stp instance 1 root secondary //设置为实例1的辅
sw3的代码:
[Huawei]sysname sw3
[sw3]vlan b 10 20
[sw3]int e0/0/1
[sw3-Ethernet0/0/1]p l h
[sw3-Ethernet0/0/1]port hybrid pvid vlan 10
[sw3-Ethernet0/0/1]port hybrid untagged vlan 10 20
[sw3-Ethernet0/0/1]int e0/0/2
[sw3-Ethernet0/0/2]p l h
[sw3-Ethernet0/0/2]port hybrid pvid vlan 20
[sw3-Ethernet0/0/2]port hybrid untagged vlan 10 20
[sw3-Ethernet0/0/2]int e0/0/3
[sw3-Ethernet0/0/3]p l h
[sw3-Ethernet0/0/3]port hybrid pvid vlan 10
[sw3-Ethernet0/0/3]port hybrid untagged vlan 10 20
[sw3-Ethernet0/0/3]int e0/0/4
[sw3-Ethernet0/0/4]p l h
[sw3-Ethernet0/0/4]port hybrid pvid vlan 20
[sw3-Ethernet0/0/4]port hybrid untagged vlan 10 20
得出结果: