一、Smart Link技术:

A、简要概述:

1、由来和优势:

虽然双上行组网可以提供链路备份,但网络中的环路(Switch A --> Switch B --> Switch D --> Switch C --> Switch A)会引起广播风暴,因此,需要采取措施避免环路。一般情况下,可以通过STP来消除环路,但STP的收敛时间较长,会丢失较多流量,不适用于对收敛时间有很高要求的组网环境。另一种高效的环网解决方案RRPP虽然可以提高收敛性能,但是RRPP主要适用于较复杂的环形组网,且配置复杂度较高。基于上述原因,H3C和华为提出了Smart Link技术解决方案。

Smart Link是一种为双上行组网量身定做的解决方案,具有如下优点:

  • 能够实现在双上行组网的两条链路正常情况下,只有一条处于连通状态,而另一条处于阻塞状态,从而防止了环路引起的广播风暴。

  • 当主用链路发生故障后,流量会在毫秒级的时间内迅速切换到备用链路上,保证了数据的正常转发。

  • 配置简单,便于用户操作。

需要注意,这2种情况,使用会有限制:开启了STP、RRPP的端口不能作为Smart Link组的成员端口;聚合组成员端口、业务环回组成员端口不能作为Smart Link组的成员端口。

image.png

2、概念介绍:

Smart Link组也称为灵活链路组,一个Smart Link组包含两个成员端口,其中一个被指定为主端口(Master Port),另一个被指定为副端口(Slave Port),不同的Smart Link组可以包含同一个端口。

正常情况下,只有一个端口(主端口或副端口)处于转发(ACTIVE)状态,另一个端口被阻塞(BLOCK),处于待命(STANDBY)状态。

当处于转发状态的端口发生链路故障(链路故障目前主要是指端口状态转为DOWN、以太网OAM链路故障等)时,Smart Link组会自动将该端口阻塞,并将原阻塞的处于待命状态的端口切换到转发状态。

如图所示组网环境,Switch D的端口GigabitEthernet1/0/1和GigabitEthernet1/0/2组成了一个Smart Link组(用蓝色线条标识),端口GigabitEthernet1/0/1处于转发状态(用实线标识),端口GigabitEthernet1/0/2处于阻塞状态(用虚线标识)。Switch E的端口GigabitEthernet1/0/1和GigabitEthernet1/0/2组成了另外一个Smart Link组(用红色线条标识),端口GigabitEthernet1/0/1处于阻塞状态(用虚线标识),端口GigabitEthernet1/0/2处于转发状态(用实线标识)。

主端口(Master Port)是通过命令行指定的Smart Link组的一种端口角色。Smart Link组的主端口可以是以太网端口(电口或光口),也可以是聚合接口,主端口所在的链路称为主链路。如图所示,Switch D的Smart Link组中处于转发状态的端口GigabitEthernet1/0/1是主端口,而Switch E的Smart Link组中的端口GigabitEthernet1/0/1虽然被阻塞,但它仍是主端口。

副端口(Slave Port)是通过命令行指定的Smart Link组的另外一种端口角色。Smart Link组的副端口可以是以太网端口(电口或光口),也可以是聚合接口。副端口所在的链路也被称为“备用链路”。如图所示,Switch D的Smart Link组中被阻塞的端口GigabitEthernet1/0/2是副端口,而Switch E的Smart Link组中的端口GigabitEthernet1/0/2虽然处于转发状态,但它仍是副端口。

image.png

保护VLAN是SmartLink中的一个关键概念,用于在切换链路时保护特定的VLAN流量。具体来说,SmartLink将VLAN分为两类:主VLAN和保护VLAN。

  • 主VLAN:这是通常情况下使用的VLAN。只要主链路是可用的,主VLAN流量将通过主链路进行传输。

  • 保护VLAN:当主链路失效时,保护VLAN将接管流量的传输。保护VLAN主要用于在切换期间保证某些关键业务的持续性,确保这些业务不会因为链路故障而中断。

通过设置保护VLAN,网络管理员可以确保关键业务在链路切换期间得到优先保护,从而减少网络中断对业务的影响。如上图所示组网环境,Switch D上可以创建Smart Link组1和Smart Link组2,两个Smart Link组分别保护不同的VALN,Smart Link组1保护VLAN 1~10,Smart Link组2保护VLAN 11~20,这样就可以控制两组VLAN的流量分别通过不同的端口上行。

控制VLAN(Control VLAN)是用于管理SmartLink机制的一个重要概念。控制VLAN主要用于传输SmartLink的 Flush 报文,以确保主链路和备份链路之间的状态同步和切换控制。下是控制VLAN的主要功能:

  • 状态同步:控制VLAN用于在SmartLink的主链路和备链路之间传递链路状态信息。通过控制VLAN,交换机可以实时了解链路的健康状况,从而快速响应链路故障。

  • 切换控制:当主链路发生故障时,控制VLAN会通过控制报文指示备链路接管流量的传输任务,确保网络的高可用性。

  • 优先级管理:控制VLAN通常被配置为高优先级,确保控制报文能够及时传输,以便在链路切换时尽可能减少延迟。

控制VLAN的配置需要与SmartLink主链路和备链路一起协调,以保证网络的稳定性和冗余性。通常,控制VLAN不会承载用户数据流量,而是专用于SmartLink协议的控制信息传输。根据报文收发可以分为以下2类:

  • 发送控制VLAN:发送控制VLAN是用于广播发送Flush报文的VLAN。如图所示组网环境,如果在Switch D和Switch E上开启了FLUSH报文发送功能,当发生链路切换时,设备会从新的主用链路上在发送控制VLAN内广播发送FLUSH报文。

  • 收控制VLAN:上游设备用于接收并处理FLUSH报文的VLAN。如图所示组网环境,如果Switch D和Switch E的上游设备(Switch A、Switch B和Switch C)能够识别FLUSH报文,并开启了FLUSH报文接收处理功能,当发生链路切换时,上游设备会处理收到的属于接收控制VLAN的FLUSH报文,进而执行MAC地址转发表项和ARP表项的刷新操作。

3、FLUSH报文:

当Smart Link组发生链路切换时,原有的转发表项已经不再适用于新的拓扑网络,需要对整网进行MAC地址转发表项和ARP表项的更新。Smart Link通过FLUSH报文来通知其他设备进行表项的刷新操作。

FLUSH报文采用IEEE802.3封装,包括Destination MAC、Source MAC、Control VLAN ID和VLAN Bitmap等信息字段。FLUSH报文格式如图所示。

  1. Destination MAC为未知组播地址。可以通过判断该地址是否为0x010F-E200-0004来区分该报文是否为FLUSH报文。

  2. Source MAC表示发送FLUSH报文的设备的接口MAC地址,如果该接口没有MAC地址,则使用二层协议的缺省MAC地址。

  3. Control Type表示控制类型。目前只有删除MAC地址转发表项和ARP表项一种(0x01)。

  4. Control Version表示版本号。当前版本号为0x00,用于后续版本的扩展。

  5. Device ID表示发送FLUSH报文的设备的桥MAC地址。

  6. Control VLAN ID表示发送控制VLAN的ID号。

  7. Auth-mode表示认证模式,和Password一起使用,便于以后进行安全性扩展。

  8. VLAN Bitmap表示VLAN位图,用于携带需要刷新地址表的VLAN列表。

  9. FCS表示帧校验和,用于检查报文的合法性

image.png

B、工作机制:

上图展示的是一个使用了ATAE/E9000的典型组网。SW1及SW2是核心交换机,SW3是部署了堆叠的交换板卡,可以将其理解为一台交换机。此时SW3正是双链路上行,这个场景非常适合部署SMart Link。

值得注意的是SMart Link是配置在SW3交换机上的,其他的交换机上无需配置。在SW3上创建一个SMart Link组,然后将Port1添加到该组中,并设置其接口角色为Master;同时将Port2口也添加到该SMart Link组中,并设置其角色为Slave。

image.png

当网络工作正常时,也就是双上行链路都正常的情况下,Master口Port1处于活跃状态(Active),其所在的链路是主用链路(Master Link);Slave端口处于非活跃状态(Inactive),所在链路是备用链路。

如此一来,SW3的Port2相当于被阻塞了,不会转发数据,因此数据沿着红色线条所表示的路径进行传输,网络中不存在环路,不会产生广播风暴。

image.png

当SW3的Port1或者其直连的链路发生故障时,Master端口Port1切换到Inactive状态,Slave端口Port2切换到Active状态。这个过程是以非常快的速度完成的,因为无需任何的协议报文的交互,完全由SW3设备自己感知、完成切换,所以收敛的速度是毫秒级别。

注意:此时,网络中各设备上的MAC地址转发表项和ARP表项可能已经错误(没有及时刷新),因此需要提供一种MAC表项及ARP信息更新的机制,完成流量的快速切换,以免造成流量丢失。

image.png

C、网络拓扑变更机制:

1、机制概述:

当 SMart Link 发生链路切换时,网络中各设备上的MAC地址转发表项和ARP/ND表项可能已经不是最新状态,为了保证报文的正确发送,需要提供一种MAC地址转发表项和ARP/ND表项的更新机制。

目前更新机制有以下两种:

  1. 由SMart Link设备从新的Master链路上发送flush报文。此方式需要上行的设备都能够识别SMartLink的flush报文并进行更新MAC地址转发表项和ARP/ND表项的处理。

  2. 自动通过流量刷新MAC地址转发表项和ARP/ND表项。此方式适用于和不支持SMart Link功能的设备(包括其他厂商设备)对接的情况,需要有上行的流量触发。

image.png

2、通过flush报文通知设备更新表项:

这种方式适用于上游设备(如图中的SW1、SW2)支持SMartLink功能、能够识别flush报文的情况。为了实现快速链路切换,需要在SW3上开启flush报文发送功能,另外,在上游设备所有处于双上行网的接口开启接收处理flush报文功能。

SW3发生链路切换后,会在新的主用链路上发送flush报文。Flush报文的VLAN Bitmap字段填充链路切换前组内处于转发状态的Port1口所在SMart Link组的保护VLAN ID,Control VLAN ID 字段填充SMarLink组配置的发送控制VLAN ID。

image.png

当上游设备收到flush报文时,判断该flush报文的发送控制VLAN是否在收到报文的端口配置的接收控制VLAN列表中。如果不在接收控制VLAN列表中,设备对该flush报文不做处理,直接转发;如果在接收控制VLAN列表中,设备将提取flush报文中的VLAN Bitmap数据,将设备在这些VLAN内学习到的MAC及ARP表项删除。

image.png

为了保证flush报文在发送控制VLAN内正确传送,请确保双上行网络上的所有端口都允许发送控制VLAN通过,否则,flush报文将发送或转发失败。建议以保留Tag的方式发送flush报文,若想以去掉Tag的方式发送flush报文,需确保对端端口缺省VLAN和发送控制VLAN一致,否则将导致flush报文不在发送控制VLAN内传送。

image.png

3、无flush方式

这种方式适用于与不支持SMart Link功能的设备(包括其他厂商设备)对接的情况,需要有上行流量触发。例如上图中SW3是支持SMart Link的设备,而SW1、SW2不支持SMart Link的情况。

image.png

如果没有SW3的上行流量(这些流量可能来自SW3下联的终端)去触发SW1、SW2的MAC及ARP表项更新,那么当SW1、SW2收到目的设备为业务单板的数据时,流量就可能会发生中断。

以SW2为例,如果其关于下游业务单板的MAC地址表项的关联接口还是老旧的(还是关联到与SW1对接的接口),那么当SW2有下行流量要转发(外部网络发往业务单板的流量)时,只有在其表项自动老化、重新学习后,流量才能被正确发送到SW3。

当业务单板的上行流量通过SW3到达SW2后,后者会更新自己的MAC表,那么当SW2再收到目的MAC为业务单板MAC地址的数据时,SW2会通过其连接SW3的接口转发出去,报文才可以经由SW3到达单板。因此这种方式相比于通过Flush报文的方式而言,效率就低得多。

通过flush报文通知设备更新的机制无须等到表项老化后再进行更新,可以大大减少表项更新所需时间。一般情况下,链路的整个切换过程可在毫秒级的时间内完成的,基本无流量丢失。但是要求上联的交换机都支持SMart Link功能。

image.png

D、其他机制:

1、链路恢复机制:

在图中SW3交换机的Port1口为SMart Link组的Master接口,Port2口为Slave接口。缺省时,Port1为active状态。

当 Port1口或其直连链路发生了故障,导致SMart Link组发生切换,Slave接口Port2处于active状态,那么当Master接口Port1恢复后,会发生什么事情呢?

SMart Link组支持两种模式:角色抢占模式和非角色抢占模式。

image.png
image.png

若SMart Link组配置为角色抢占模式,当主用链路故障恢复后,Master接口将抢占为active状态,Slave接口则进入inactive状态,如上图所示。

image.png

若SMart Link组配置为非角色抢占模式,当Master Link从故障中恢复后,Port2将继续处于active状态,Master口Port1继续处于inactive状态,这样可以保持流量的稳定。缺省情况下就是非抢占模式。使用SMart-link manual switch命令可手工执行链路倒换。

2、负载分担:

同一个双上行链路组网中,可能同时存在多个VLAN的数据流量,Smart Link可以实现流量的负载分担,即不同VLAN的流量沿不同的路径进行转发。通过把上行链路的端口分别配置为两个Smart Link组的成员(每个Smart Link组的保护VLAN不同),且端口在不同组中的转发状态不同,这样就能实现不同Smart Link组保护VLAN的流量转发路径不同,从而达到负载分担的目的。

在实现负载分担时,建议将Smart Link组配置为角色抢占模式,否则无法保证流量按照用户的想法一直在两条链路上进行分担。因为,如果配置为非角色抢占模式,刚开始可以实现流量分流,但链路故障后所有流量将集中在同一条链路上传输,链路恢复后流量继续在同一条链路上传输,这样就无法达到负载分担的目的。

如图所示组网环境,在Switch A上创建两个Smart Link组,每个Smart Link组保护的VLAN不同,但均配置为角色抢占模式。Smart Link组1的主端口为GigabitEthernet1/0/1,副端口为GigabitEthernet1/0/2,保护VLAN为VLAN 1~10;Smart Link组2的主端口为GigabitEthernet1/0/2,副端口为GigabitEthernet1/0/1,保护VLAN为VLAN 11~20。两个Smart Link组中的主端口均处于转发状态。这样,VLAN 1~10的流量将沿着蓝色线条所表示的链路进行传输,VLAN 11~20的流量将沿着红色线条所表示的链路进行传输,从而实现VLAN流量的负载分担。

image.png

二、Monitor Link 技术**:**

A、简要概述:

如图所示组网环境,Switch A上配置了Smart Link功能用于链路冗余备份,GigabitEthernet1/0/1为主端口,GigabitEthernet1/0/2为副端口。

当端口GigabitEthernet1/0/1所在主用链路出现故障时,流量在毫秒级的时间内切换到端口GigabitEthernet1/0/2所在的备用链路上,从而实现了高效可靠的链路备份和快速收敛性能。

但是,当Switch B的上行端口GigabitEthernet1/0/1所在链路出现故障时,配置Smart Link组的设备Switch A由于其主端口GigabitEthernet1/0/1所在链路并未发生故障,所以此时不会出现Smart Link组内的链路切换。但实际上Switch A上的流量已经无法通过端口GigabitEthernet1/0/1的链路上行到Switch D,流量就此中断。为了解决这类问题,Monitor Link技术应运而生。

Monitor Link是对Smart Link技术的有力补充。Monitor Link用于监控上行链路,以达到让下行链路同步上行链路状态的目的,使Smart Link的备份作用更加完善。聚合组成员端口、业务环回组成员端口不能作为Monitor Link组的成员端口。

image.png

Monitor Link组也称为监控链路组,由一个或多个上行和下行端口组成。下行端口的状态随上行端口状态的变化而变化。如图所示,Switch A的端口GigabitEthernet1/0/1、GigabitEthernet1/0/2和GigabitEthernet1/0/3组成了一个Monitor Link组。

上行端口(Uplink Port)是Monitor Link组中的监控对象,是通过命令行指定的Monitor Link组的一种端口角色。Monitor Link组的上行端口可以是以太网端口(电口或光口)或聚合接口。如图所示,Switch A的端口GigabitEthernet1/0/1为该设备上配置的Monitor Link组的上行端口。

如果多个端口被配置为Monitor Link组的上行端口,只要这些端口中有一个端口处于转发状态,那么Monitor Link组的状态就为UP;只有当所有上行端口都发生故障时,Monitor Link组的状态才为DOWN,这时所有下行端口将都将被关闭。当Monitor Link组的上行端口未指定时,则认为上行端口故障,所有下行端口都将被关闭。

下行端口(Downlink Port)是Monitor Link组中的监控者,是通过命令行指定的Monitor Link组的另外一种端口角色。Monitor Link组的下行端口可以是以太网端口(电口或光口)或聚合接口。如图所示,Switch A的端口GigabitEthernet1/0/2和GigabitEthernet1/0/3为该设备上配置的Monitor Link组的两个下行端口。

当Monitor Link组的上行端口恢复正常时,Monitor Link只会开启因上行端口故障而阻塞的下行端口,不能开启手工关闭的下行端口。并且某个下行端口故障对上行端口和其他下行端口没有影响。

image.png

B、运行机制:

为了实现主机到Internet的可靠访问在Switch A上配置了Smart Link组。其中,GigabitEthernet1/0/1为主端口处于转发状态,GigabitEthernet1/0/2为副端口。

为了防止出现因Switch B的端口GigabitEthernet1/0/1所在链路故障所引起Switch A的流量无法上行的现象,在Switch B上配置了Monitor Link组,并指定端口GigabitEthernet1/0/1为上行端口,GigabitEthernet1/0/2为下行端口。

当Switch B的上行端口GigabitEthernet1/0/1所在链路出现故障时,Monitor Link组强制关闭该组的下行端口GigabitEthernet1/0/2,从而触发Switch A上Smart Link组的链路切换。

当Switch B的上行端口GigabitEthernet1/0/1所在链路故障恢复时,下行端口GigabitEthernet1/0/2也将被开启,如果Switch A上Smart Link组配置为角色抢占模式,则同样会触发Switch A上Smart Link组的链路切换,否则等待下一次链路切换。

这样,Monitor Link技术配合Smart Link技术实现了高效可靠的链路备份和快速收敛性能

image.png

三、常见组网**:**

A、双上行组网:

在该组网环境中,Smart Link配置在Switch D和Switch E上。通过配置多个Smart Link组并保护不同的VLAN,这些VLAN的流量分别沿双上行链路的不同路径转发,实现负载分担的目的。当Switch B与Switch D或Switch C与Switch E之间的链路出现故障时,Smart Link组迅速感知并进行链路的切换。

为了使Switch D(或Switch E)能直接感知Switch A与Switch B(或Switch C)之间的链路故障,还需要在Switch B(或Switch C)上配置了Monitor Link组,端口GigabitEthernet1/0/1作为上行端口,端口GigabitEthernet1/0/2和GigabitEthernet1/0/3分别作为对应的下行端口。

Monitor Link组一旦检测到上行端口所在链路故障,将强制关闭下行端口,从而触发Switch D和Switch E上的Smart Link组内的链路切换。当上行端口或链路故障恢复时,下行端口将自动开启,从而使Switch D(或Switch E)能够迅速感知Switch A与Switch B(或Switch C)之间链路状态的变化。

image.png

B、级联组网:

Monitor Link组支持Smart Link组成员端口作为其上行成员端口,Smart Link和Monitor Link技术结合起来可以实现备份链路的级联。

具体的实现方法为:将一个Smart Link组所有成员端口作为一个Monitor Link组的上行端口,而该Monitor Link组下行端口的对端端口为另外一个Smart Link组的主端口或者副端口(如图所示)。

图中,各设备Smart Link与Monitor Link配置情况如表所示:

image.png

由表可知,图9中红色线条表示的链路部分为第一级的Smart Link备份链路,蓝色线条表示的链路部分为第二级的Smart Link备份链路。

image.png

【网络技术联盟站】二层防环技术——Smart Link

Smart Link & Monitor Link技术白皮书-新华三集团-H3C

06-Smart Link配置-新华三集团-H3C