# Smart-link实验

# 一、实验拓扑

注:如无特别说明,描述中的 R1 或 SW1 对应拓扑中设备名称末尾数字为 1 的设备,R2 或 SW2 对应拓扑中设备名称末尾数字为 2 的设备,以此类推;另外,同一网段中,IP 地址的主机位为其设备编号,如 R3 的 g0/0 接口若在 192.168.1.0/24 网段,则其 IP 地址为 192.168.1.3/24,以此类推

# 二、实验需求

  1. 网络中有 Vlan10,Vlan20,Vlan30,Vlan40 一共 4 个业务 Vlan,数据可以在所有链路上转发
  2. 在 SW1 上使用 Smart-link 对上行链路进行备份。要求 Smart-link组1 引用 MST 实例 1 (映射 Vlan10 和 Vlan20)的流量经过 SW2 的链路访问上行设备,而 Smart-link 组 2 引用实例 2(映射 Vlan30 和 Vlan40)的流量经过 SW3 的链路访问上行设备,组 1 和组 2 分别在 Vlan100 和 Vlan200 内发送和接收 Flush 报文
  3. 要求当 Smart-link 主链路故障恢复后,端口角色能够自动恢复
  4. 要求当 SW2 和 SW3 的上行链路故障后,也能触发 Smart-link 角色切换

# 三、实验解法

1.网络中有 Vlan10,Vlan20,Vlan30,Vlan40 一共 4 个业务 Vlan,数据可以在所有链路上转发

分析:在所有交换机上创建 Vlan10,Vlan20,Vlan30 和 Vlan40,另外由于后面需要配置控制 VLAN,所以还需要创建 Vlan100 和 Vlan200,配置所有互联接口类型为 Trunk,放行所有 Vlan,步骤略

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,命令略

步骤 2:在 SW1 的 G1/0/1 和 G1/0/2 端口上关闭 STP 特性,命令略

步骤 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
[SW1-smlk-group1]flush enable control-vlan 100
[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

步骤 5:在 SW2,SW3,SW4 的互联端口上配置允许在 Vlan100 和 Vlan200 发送接收 Flush 报文

[SW2-GigabitEthernet1/0/1]smart-link flush enable control-vlan 100 200
[SW2-GigabitEthernet1/0/2]smart-link flush enable control-vlan 100 200

SW3,SW4 的配置命令与 SW2 一致

分析: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-smlk-group1]protected-vlan reference-instance 0

3.要求当 Smart-link 主链路故障恢复后,端口角色能够自动恢复

分析:Smart-link 默认不开启角色抢占,如主链路故障恢复后,仍然保持数据从备份链路传输。需要配置开启抢占模式,才能够使端口角色自动恢复

步骤 1:在 SW1 的 Smart-link 组 1 和组 2 中分别开启抢占模式

[SW1-smlk-group1]preemption mode role
[SW1-smlk-group2]preemption mode role

效果测试:关闭 SW1 的 G1/0/1 口,Smart-link 组 1 会切换 G1/0/2 口为活跃链路,再次开启 G1/0/1 口后,活跃链路会重新切换回 G1/0/1 口

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 一致

效果测试:在 SW2 或 SW3 上关闭 G1/0/2 口,Monitor-link 会自动关闭 G1/0/1 口来触发 SW1 的 Smart-link 的角色切换