一、实验目的

(1)理解生成树协议和vlan之间的关系   

(2)理解 Root Bridge 是如何选出来的

(3)理解STP不仅能防环,还能提供冗余备份

(4)理解STP选择Root Port时,不只是看直连,还看路径开销

二、实验背景知识

       STP(生成树协议) 的核心作用是防止交换机环路带来的网络灾难,同时实现冗余备份。STP是交换机上的一个自动协议,既防止网络环路导致广播风暴,又能在主链路故障时自动启用备用链路。后来出现了RSTP(快速生成树协议),收敛时间可缩短到几秒;还有MSTP(多生成树协议),允许多个VLAN独立运行生成树,以充分利用链路带宽。

三、实验网络拓扑图

相关的一些交换机CLI命令:

[Huawei]stp enable            //启动stp服务(华为交换机默认是启动该协议的)
[Huawei]display stp brief     //显示stp状态信息
[Huawei]stp priority 4096     //配置交换机在默认生成树实例中的优先级为4096
[Huawei]stp instance 1 priority 4096        //配置交换机在生成树实例1中的优先级为4096   

交换机的STP信息及其解释:(以LSW1为例)

Root Port(ROOT):根端口,去往根网桥开销最短的端口,负责接收数据。

Designated Port(DESI):指定端口,每个网段上离根桥最近的端口,负责发送数据。

Alternate Port(ALTE):阻塞端口,禁止转发数据。

       通过查看每一台交换机的STP信息可以得知,交换机LSW3为根网桥,交换机LSW1的G0/0/1接口被阻塞。(可能具体情况不同,但结果类似)

四、实验步骤

(1)观察stp被关闭后产生的广播风暴

关闭所有交换机的stp服务协议:undo stp enable

       清空pc1的arp缓存,然后执行ping命令测试与其他主机的连通性并在交换机LSW1的g0/0/1接口处开启抓包,观察实验现象。

       可以看到,因为stp协议关闭,交换机之间产生环路(捕获大量arp广播帧和重复的arp单播帧),从而导致广播风暴,导致交换机无法正常工作。原因在于交换机收到广播或未知目的 MAC 帧时,会向所有端口转发,以确保数据到达目标。如果网络里存在环路(环形拓扑),数据包会沿环路无限循环,每次循环,交换机会再次转发,从而产生指数级增长的广播包。

(2)理解生成树协议与vlan之间的联系

在交换机LSW1、LSW2和LSW3中创建vlan10、vlan20和vlan30

在交换机LSW1上做如下配置(LSW2和3配置类似)

[LSW1]vlan batch 10 20 30        //在系统视图下,批量创建 VLAN 10、VLAN 20 和 VLAN 30
[LSW1]int eth0/0/1
[LSW1-Ethernet0/0/1]port link-type access    //将该接口的链路类型设置为 access 模式
[LSW1-Ethernet0/0/1]port default vlan 10     //将该接口的缺省 VLAN(即 PVID)设置为 VLAN 10
[LSW1-Ethernet0/0/1]int eth0/0/2
[LSW1-Ethernet0/0/2]port link-type access
[LSW1-Ethernet0/0/2]port default vlan 30
[LSW1-Ethernet0/0/2]int g0/0/1
[LSW1-GigabitEthernet0/0/1]port link-type access
[LSW1-GigabitEthernet0/0/1]port default vlan 10
[LSW1-GigabitEthernet0/0/1]int g0/0/2
[LSW1-GigabitEthernet0/0/1]port link-type access
[LSW1-GigabitEthernet0/0/1]port default vlan 30
[LSW1-GigabitEthernet0/0/1]quit

        测试同一vlan下的主机间连通性,发现主机PC1和PC2是无法通信的,原因在于LSW1 和 LSW2 之间这条链路被 STP 阻塞了。VLAN10 的帧无法通过交换机间的链路传递,即使 STP 打开,备用链路或者跨交换机的转发也没办法把 VLAN10 带过去,交换机间承载 VLAN 流量必须 trunk,Access 口只在单 VLAN 内有效。即使配置MSTP也是不行的,MSTP(多实例生成树)解决的是 环路和不同 VLAN 流量的负载分配,能决定哪条链路阻塞、哪条链路转发,但它不负责把 VLAN 流量标记和传递,如果交换机间链路不是 Trunk,VLAN 标签没法传递,MSTP 无法让 VLAN10 的流量绕过备用链路。

(3)配置trunk链路

具体命令如下:

interface GE0/0/1[交换机互相连接的每一个接口]
undo port default vlan      //将access接口从vlan中删除
port link-type trunk
port trunk allow-pass vlan 10 20 30

这样可以做到任何一条链路出现故障,各vlan都还能够保证联通。

此时主机1再去和主机2通信,是可以完成的

探究一:强制切换根桥

命令:

        stp priority 0                //优先级越小,越容易成为根桥

再分别执行“display stp brief”,可以观察到根桥和阻断链路全部发生变化,这就是STP的路径计算过程。

探究二:链路故障切换

       关闭主链路(具体关哪个口,要看哪个是ROOT Port),在根桥切换后的背景下,拓扑图切换为如图所示

关闭LSW1的g0/0/1,可以发现主机1和2仍然能够通信,LSW1的g0/0/2变为root。

Root Port 断开 → Alternate Port 自动转发 → 通信恢复/保持

此时回复链路,网络会重新收敛

探究三:MSTP 多实例配置与 VLAN 负载分配

为每一台交换机做如下配置:

[LSW1]stp region-configuration          //进入MST视图
[LSW1-mst-region]region-name Huawei     //配置MST域名为Huawei
[LSW1-mst-region]revision-level 1       //配置MST修订级别为1,默认为0
[LSW1-mst-region]instance 1 vlan 10     //指定vlan10映射到MST1
[LSW1-mst-region]instance 2 vlan 20     //指定vlan20映射到MST2
[LSW1-mst-region]instance 3 vlan 30     //指定vlan20映射到MST3
[LSW1-mst-region]active region-configuration   //激活MST域配置

观察点:不同 VLAN 的通信流量是否分布在不同物理链路上。

观察点:断开某条链路后,备用端口是否接管不同实例的通信。

观察点:Region 名称、版本号以及 VLAN→MSTI 的映射是否一致。

五、实验小结

本实验通过 MSTP 多实例将 VLAN10、VLAN20、VLAN30 映射到不同生成树实例,使不同 VLAN 可以选择不同转发路径,实现链路负载分担。

当 LSW1 与 LSW3 之间链路故障时,MSTP 能重新计算端口角色并切换备用路径,保证各 VLAN 主机通信的可靠性。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐