实验拓扑
实验需求
- 网络中有 Vlan10,Vlan20,Vlan30,Vlan40 一共 4 个业务 Vlan,数据可以在所有链路上转发
- 在 SW1 上使用 Smart-link 对上行链路进行备份。要求 Smart-link组1 引用 MST 实例 1 (映射 Vlan10 和 Vlan20)的流量经过 SW2 的链路访问上行设备,而 Smart-link 组 2 引用实例 2(映射 Vlan30 和 Vlan40)的流量经过 SW3 的链路访问上行设备,组 1 和组 2 分别在 Vlan100 和 Vlan200 内发送和接收 Flush 报文
- 要求当 Smart-link 主链路故障恢复后,端口角色能够自动恢复
- 要求当 SW2 和 SW3 的上行链路故障后,也能触发 Smart-link 角色切换
实验步骤
1、网络中有 Vlan10,Vlan20,Vlan30,Vlan40 一共 4 个业务 Vlan,数据可以在所有链路上转发
分析:在所有交换机上创建 Vlan10,Vlan20,Vlan30 和 Vlan40,另外由于后面需要配置控制 VLAN,所以还需要创建 Vlan100 和 Vlan200,配置所有互联接口类型为 Trunk,放行所有 Vlan。
[SW1]vlan 10
[SW1-vlan10]vlan 20
[SW1-vlan20]vlan 30
[SW1-vlan30]vlan 40
[SW1-vlan40]vlan 100
[SW1-vlan100]vlan 200
[H3C]sysname SW2
[SW2]vlan 10
[SW2-vlan10]vlan 20
[SW2-vlan20]vlan 30
[SW2-vlan30]vlan 40
[SW2-vlan40]vlan 100
[SW2-vlan100]vlan 20
[SW3]vlan 10
[SW3-vlan10]vlan 20
[SW3-vlan20]vlan 30
[SW3-vlan30]vlan 40
[SW3-vlan40]vlan 100
[SW3-vlan100]vlan 200
[H3C]sysname SW4
[SW4]vlan 10
[SW4-vlan10]vlan 20
[SW4-vlan20]vlan 30
[SW4-vlan30]vlan 40
[SW4-vlan40]vlan 100
[SW4-vlan100]vlan 200
[SW1]int range g1/0/1 to g1/0/2
[SW1-if-range]port link-type trunk
[SW1-if-range]port trunk permit vlan 10 20 30 40 100 200
[SW2]int range g1/0/1 g1/0/2
[SW2-if-range] port link-type trunk
[SW2-if-range] port trunk permit vlan 1 10 20 30 40 100 200
[SW3]int range g1/0/1 g1/0/2
[SW3-if-range] port link-type trunk
[SW3-if-range] port trunk permit vlan 1 10 20 30 40 100 200
[SW4]int rang g1/0/1 g1/0/2
[SW4-if-range] port link-type trunk
[SW4-if-range] port trunk permit vlan 1 10 20 30 40 100 200
2、在 SW1 上使用 Smart-link 对上行链路进行备份。要求 Smart-link组1 引用 MST 实例 1 (映射 Vlan10 和 Vlan20)的流量经过 SW2 的链路访问上行设备,而 Smart-link 组 2 引用实例 2(映射 Vlan30 和 Vlan40)的流量经过 SW3 的链路访问上行设备,组 1 和组 2 分别在 Vlan100 和 Vlan200 内发送和接收 Flush 报文
分析:根据需求,得知 Smart-link 组 1 保护 Vlan10 和 Vlan20,Smart-link 组 2 保护 Vlan30 和 Vlan40,由于 Smart-link 通过引用 MST 实例来保护 Vlan,所以首先需要配置 MST 实例,Instance1 映射 Vlan10 和 Vlan20,包括本 Smart-link 组的控制 Vlan,Vlan100;Instance2 映射 Vlan30 和 Vlan40,还有 Vlan200
Smart-link 组 1 经过 SW2 的链路访问上行设备,所以组 1 中,G1/0/1 为主端口,G1/0/2 为从端口,组 2 经过 SW3 的链路访问上行设备,所以组 2 中,G1/0/2 为从端口,G1/0/1 为主端口
组 1 和 组 2 分别在 Vlan100 和 Vlan200 内发送和接收 Flush 报文,所以需要在组 1 中配置控制 VLAN 为 Vlan100,组 2 中配置控制 VLAN 为 Vlan200。同时 ,为了使整个网络都完成迅速切换,SW2,SW3,SW4 都需要在各自的互联接口配置允许在 Vlan100 和 Vlan200 发送和接收 Flash 报文
由于交换机默认开启了生成树,与 Smart-link 功能冲突,所以需要在相关接口上关闭 STP 特性
步骤 1:在 SW1 上配置 MST 域,创建 Instance1 映射 Vlan10、Vlan20 和 Vlan100,Instance2 映射 Vlan30、Vlan40 和 Vlan200。
[SW1]stp region-configuration
[SW1-mst-region]instance 1 vlan 1 10 20 100
[SW1-mst-region]instance 2 vlan 30 40 200
[SW1-mst-region]active region-configuration
步骤 2:在 SW1 的 G1/0/1 和 G1/0/2 端口上关闭 STP 特性。
[SW1-GigabitEthernet1/0/1]undo stp enable
[SW1-GigabitEthernet1/0/2]undo stp enable
步骤 3:在 SW1 上创建 Smart-link 组 1,引用实例 1,配置控制 VLAN 为 Vlan100,主端口为 G1/0/1,从端口为 G1/0/2
[SW1]smart-link group 1
[SW1-smlk-group1]protected-vlan reference-instance 1 //保护VLAN
[SW1-smlk-group1]flush enable control-vlan 100 //控制VLAN
[SW1-smlk-group1]port g1/0/1 primary
[SW1-smlk-group1]port g1/0/2 secondary
步骤 4:在 SW1 上创建 Smart-link 组 2,引用实例 2,配置控制 VLAN 为 Vlan200,主端口为 G1/0/2,从端口为 G1/0/1
[SW1]smart-link group 2
[SW1-smlk-group2]protected-vlan reference-instance 2
[SW1-smlk-group2]flush enable control-vlan 200
[SW1-smlk-group2]port g1/0/2 primary
[SW1-smlk-group2]port g1/0/1 secondary
可以通过dispaly smart-link group all查看主备接口状态
如果出现备接口是活跃的,是因为配置时优先配了备端口导致的
解决办法:开启抢占---preemption mode role
步骤 5:在 SW2,SW3,SW4 的互联端口上配置允许在 Vlan100 和 Vlan200 发送接收 Flush 报文
[SW2]int range g1/0/1 to g1/0/2
[SW2-if-range]smart-link flush enable control-vlan 100 200
[SW3]int range g1/0/1 g1/0/2
[SW3-if-range]smart-link flush enable control-vlan 100 200
[SW4]int range g1/0/1 g1/0/2
[SW4-if-range]smart-link flush enable control-vlan 100 200
关闭SW1的G1/0/1接口进行测试Flush是否正常工作
[SW1]int g1/0/1
[SW1-GigabitEthernet1/0/1]shutdown
分析:Smart-link 配置完成后,由于只引用了实例 1 和实例 2,并没有引用 Vlan1 所在的实例 0,实例 0 由 MSTP 的 IST 来进行防环;而 SW1 的相关接口关闭了 STP 特性,导致 SW2、SW3 和 SW4 上的 STP 协议判断没有环路,从而不会阻塞任何端口;而且所有接口都配置为了 Trunk 并默认放行 Vlan1,所以当前网络中 Vlan1 存在逻辑环路
这里采取把 Vlan1 所在的实例 0 也引用到 Smart-link 组 1 来解决
步骤 6:在 Smart-link 组 1 中引用 MST 实例 0
[SW1]smart-link group 1
[SW1-smlk-group1]protected-vlan reference-instance 0
3、要求当 Smart-link 主链路故障恢复后,端口角色能够自动恢复
分析:Smart-link 默认不开启角色抢占,如主链路故障恢复后,仍然保持数据从备份链路传输。需要配置开启抢占模式,才能够使端口角色自动恢复
步骤 1:在 SW1 的 Smart-link 组 1 和组 2 中分别开启抢占模式
[SW1]smart-link group 1
[SW1-smlk-group1]preemption mode role
[SW1]smart-link group 2
[SW1-smlk-group2]preemption mode role
效果测试:关闭 SW1 的 G1/0/1 口,Smart-link 组 1 会切换 G1/0/2 口为活跃链路,再次开启 G1/0/1 口后,活跃链路会重新切换回 G1/0/1 口
[SW1]int g1/0/1
[SW1-GigabitEthernet1/0/1]sh
[SW1]int g1/0/1
[SW1-GigabitEthernet1/0/1]un sh
4、要求当 SW2 和 SW3 的上行链路故障后,也能触发 Smart-link 角色切换
分析:Smart-link 只监听本机端口状态,当本机主端口故障,才会触发角色切换。根据需求分析,需要在 SW2 和 SW3 上配置 Monitor-link,把连接 SW4 的端口配置为上行端口,连接 SW1 的端口配置为下行端口
步骤 1:在 SW2 上创建 Monitor-link 组,配置上行端口为 G1/0/2,下行端口为 G1/0/1
[SW2]monitor-link group 1
[SW2-mtlk-group1]port g1/0/2 uplink
[SW2-mtlk-group1]port g1/0/1 downlink
步骤 2:在 SW3 上创建 Monitor-link 组,配置上行端口为 G1/0/2,下行端口为 G1/0/1,命令与 SW2 一致
[SW3]monitor-link group 1
[SW3-mtlk-group1]port g1/0/2 uplink
[SW3-mtlk-group1]port g1/0/1 downlink
效果测试:在 SW2 或 SW3 上关闭 G1/0/2 口,Monitor-link 会自动关闭 G1/0/1 口来触发 SW1 的 Smart-link 的角色切换
[SW2]int g1/0/2
[SW2-GigabitEthernet1/0/2]sh