堆叠报文的转发方法、装置、电子设备及可读存储介质转让专利

申请号 : CN202210005442.X

文献号 : CN114024902B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 彭涛王东升金学良王冬娟王海莲

申请人 : 紫光恒越技术有限公司

摘要 :

本申请实施例提供了一种堆叠报文的转发方法、装置、电子设备及可读存储介质,涉及网络通信技术领域。该方法包括:接收第一设备发送的堆叠报文;堆叠报文中封装有源mac地址和目的mac地址;在预先建立的mac转发表中搜索目的mac地址,若mac转发表中包括与目的mac地址相同的参考mac地址,确定参考mac地址对应的中继端口为转发端口;通过转发端口将堆叠报文转发至第二设备中目的mac地址对应的堆叠端口;mac转发表中记录有各参考mac地址及各参考mac地址对应的中继端口;第一设备的堆叠端口、第二设备的堆叠端口以及中继端口均处于同一vlan。本申请实施例实现堆叠报文在穿越二层网路时,无需对二层网络设备进行vlan隔离,使得二层网络设备的网络部署更灵活。

权利要求 :

1.一种堆叠报文的转发方法,其特征在于,包括:获取第一设备和第二设备之间的链路数;

根据所述链路数分别确定所述第一设备和所述第二设备的各个堆叠端口的mac地址的固定位和变化位;所述固定位是指同一设备的不同堆叠端口的mac地址相同的位;所述变化位是指同一设备的不同堆叠端口的mac地址变化的位;

根据所述第一设备的各个堆叠端口的mac地址的固定位和变化位分别为所述第一设备的各个堆叠端口配置mac地址,根据所述第二设备的各个堆叠端口的mac地址的固定位和变化位分别为所述第二设备的各个堆叠端口配置mac地址;

接收第一设备发送的堆叠报文;所述堆叠报文中封装有源mac地址和目的mac地址;

在预先建立的mac转发表中搜索所述目的mac地址,若所述mac转发表中包括与所述目的mac地址相同的参考mac地址,则确定所述参考mac地址对应的中继端口为转发端口;

通过所述转发端口将所述堆叠报文转发至第二设备中所述目的mac地址对应的堆叠端口;

所述mac转发表中记录有各个参考mac地址以及各个参考mac地址对应的中继端口;

所述第一设备的堆叠端口、所述第二设备的堆叠端口以及所述中继端口均处于同一vlan。

2.根据权利要求1所述的方法,其特征在于,所述根据所述链路数分别确定所述第一设备和所述第二设备的各个堆叠端口的mac地址的固定位和变化位,包括:根据所述链路数确定需要为所述第一设备和所述第二设备的堆叠端口分配的mac地址的数量;

根据所述mac地址的数量确定所述第一设备和所述第二设备的各个堆叠端口的mac地址的变化位;

根据所述第一设备和所述第二设备的各个堆叠端口的mac地址的变化位确定所述第一设备和所述第二设备的各个堆叠端口的mac地址的固定位。

3.根据权利要求1所述的方法,其特征在于,所述根据所述第一设备的各个堆叠端口的mac地址的固定位和变化位分别为所述第一设备的各个堆叠端口配置mac地址,根据所述第二设备的各个堆叠端口的mac地址的固定位和变化位分别为所述第二设备的各个堆叠端口配置mac地址包括:

对于所述第一设备或所述第二设备的任意一个堆叠端口,按照预设规则分别确定所述堆叠端口的mac地址的固定位的数值和变化位的数值;

将所述固定位的数值和所述变化位的数值进行组合生成所述堆叠端口的mac地址。

4.根据权利要求1所述的方法,其特征在于,所述在预先建立的mac转发表中搜索所述目的mac地址之前还包括:

从所述源mac地址中提取所述源mac地址的固定位,若确定所述源mac地址的固定位为预先存储的所述第一设备的唯一标识,则确定获取预先建立的mac转发表。

5.根据权利要求1所述的方法,其特征在于,所述在预先建立的mac转发表中搜索所述目的mac地址之后包括:

若所述mac转发表中不包括与所述目的mac地址相同的参考mac地址,则通过除接收所述堆叠报文的中继端口之外的其他中继端口对所述堆叠报文进行广播。

6.根据权利要求1所述的方法,其特征在于,所述接收第一设备发送的堆叠报文之后还包括:

在预先建立的mac转发表中搜索所述源mac地址,若所述mac转发表中不包括与所述源mac地址相同的参考mac地址,则确定所述源mac地址为新的参考mac地址;

获取接收所述堆叠报文的中继端口,确定所述接收所述堆叠报文的中继端口为所述新的参考mac地址对应的中继端口;

将所述新的参考mac地址和所述新的参考mac地址对应的中继端口添加至所述mac转发表。

7.一种堆叠报文的转发装置,其特征在于,包括:获取子模块,用于获取第一设备和第二设备之间的链路数;

mac地址固定位和变化位确定子模块,用于根据所述链路数分别确定所述第一设备和所述第二设备的各个堆叠端口的mac地址的固定位和变化位;所述固定位是指同一设备的不同堆叠端口的mac地址相同的位;所述变化位是指同一设备的不同堆叠端口的mac地址变化的位;

mac地址配置子模块,用于根据所述第一设备的各个堆叠端口的mac地址的固定位和变化位分别为所述第一设备的各个堆叠端口配置mac地址,根据所述第二设备的各个堆叠端口的mac地址的固定位和变化位分别为所述第二设备的各个堆叠端口配置mac地址;

接收模块,用于接收第一设备发送的堆叠报文;所述堆叠报文中封装有源mac地址和目的mac地址;

搜索模块,用于在预先建立的mac转发表中搜索所述目的mac地址,若所述mac转发表中包括与所述目的mac地址相同的参考mac地址,则确定所述参考mac地址对应的中继端口为转发端口;

转发模块,用于通过所述转发端口将所述堆叠报文转发至所述目的mac地址对应的第二设备的堆叠端口;

所述mac转发表中记录有各个参考mac地址以及各个参考mac地址对应的中继端口;

所述第一设备的堆叠端口、所述第二设备的堆叠端口以及所述中继端口均处于同一vlan。

8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述的方法的步骤。

9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1‑6任一项所述的方法的步骤。

说明书 :

堆叠报文的转发方法、装置、电子设备及可读存储介质

技术领域

[0001] 本申请涉及网络通信技术领域,具体而言,本申请涉及一种堆叠报文的转发方法、装置、电子设备及可读存储介质。

背景技术

[0002] 堆叠是指将多台支持堆叠特性的交换机通过堆叠线连接在一起,从逻辑上变成一台设备,它的核心思想是将多台设备通过堆叠端口连接在一起,进行必要的配置后,虚拟化
成一台“分布式设备”。堆叠通常涉及至少两个堆叠成员设备,堆叠成员设备组成堆叠组,堆
叠成员设备之间设置有堆叠链路,堆叠成员设备之间进行数据交互的是堆叠报文,堆叠报
文是将数据报文再封装一层以太网帧生成的报文,该以太网帧中包括一层mac地址。
[0003] 为简化整个堆叠组中堆叠报文的转发流程,堆叠组中的各个堆叠成员设备的堆叠端口使用的是同一层mac地址,即同一堆叠成员设备的各个堆叠端口发出的数据报文的源
mac地址是相同的,由此可以简化堆叠报文的转发流程,在通过二层网络时,由于整个堆叠
组中存在多条链路,为了避免转发出错,现有方案对每个链路设置不同的vlan,以进行vlan
隔离,同时对二层网络中的交换机的各个中继端口设置不同的vlan,使得交换机以准确将
堆叠报文转发到另一堆叠成员设备的同一vlan的堆叠端口。
[0004] 然而,在现实环境中,对每个堆叠成员设备的端口设置vlan实际上是对每条链路设置vlan,对每条链路设置vlan实际上是对交换机的每个中继端口设置了vlan,对交换机
的每个中继端口设置了vlan,该中继端口就不允许vlan为其他vlan的堆叠报文的通过,很
大程度上限制了中间二层网络部署的灵活性。

发明内容

[0005] 本申请实施例提供了一种堆叠报文的转发方法、装置、电子设备及可读存储介质,可以解决很大程度上限制了中间二层网络部署的灵活性的问题。技术方案如下:
[0006] 根据本申请实施例的一个方面,提供了一种堆叠报文的转发的方法,该方法包括:
[0007] 接收第一设备发送的堆叠报文;堆叠报文中封装有源mac地址和目的mac地址;
[0008] 在预先建立的mac转发表中搜索目的mac地址,若mac转发表中包括与目的mac地址相同的参考mac地址,则确定参考mac地址对应的中继端口为转发端口;
[0009] 通过转发端口将堆叠报文转发至第二设备中目的mac地址对应的堆叠端口;
[0010] mac转发表中记录有各个参考mac地址以及各个参考mac地址对应的中继端口;
[0011] 第一设备的堆叠端口、第二设备的堆叠端口以及中继端口均处于同一vlan。
[0012] 在一个可能的实现方式中,接收第一设备发送的堆叠报文之前,还包括:
[0013] 获取第一设备和第二设备之间的链路数;
[0014] 根据链路数分别确定第一设备和第二设备的各个堆叠端口的mac地址的固定位和变化位;固定位是指同一设备的不同堆叠端口的mac地址相同的位;变化位是指同一设备的
不同堆叠端口的mac地址变化的位;
[0015] 根据第一设备的各个堆叠端口的mac地址的固定位和变化位分别为第一设备的各个堆叠端口配置mac地址,根据第二设备的各个堆叠端口的mac地址的固定位和变化位分别
为第二设备的各个堆叠端口配置mac地址。
[0016] 在一个可能的实现方式中,根据链路数分别确定第一设备和第二设备的各个堆叠端口的mac地址的固定位和变化位,包括:
[0017] 根据链路数确定需要为第一设备和第二设备的堆叠端口分配的mac地址的数量;
[0018] 根据mac地址的数量确定第一设备和第二设备的各个堆叠端口的mac地址的变化位;
[0019] 根据第一设备和第二设备的各个堆叠端口的mac地址的变化位确定第一设备和第二设备的各个堆叠端口的mac地址的固定位。
[0020] 在一个可能的实现方式中,根据第一设备的各个堆叠端口的mac地址的固定位和变化位分别为第一设备的各个堆叠端口配置mac地址,根据第二设备的各个堆叠端口的mac
地址的固定位和变化位分别为第二设备的各个堆叠端口配置mac地址包括:
[0021] 对于第一设备或第二设备的任意一个堆叠端口,按照预设规则分别确定堆叠端口的mac地址的固定位的数值和变化位的数值;
[0022] 将固定位的数值和变化位的数值进行组合生成堆叠端口的mac地址。
[0023] 在一个可能的实现方式中,在预先建立的mac转发表中搜索目的mac地址之前还包括:
[0024] 从源mac地址中提取源mac地址的固定位,若确定源mac地址的固定位为预先存储的第一设备的唯一标识,则确定获取预先建立的mac转发表。
[0025] 在一个可能的实现方式中,在预先建立的mac转发表中搜索目的mac地址之后包括:
[0026] 若mac转发表中不包括与目的mac地址相同的参考mac地址,则通过除接收堆叠报文的中继端口之外的其他中继端口对堆叠报文进行广播。
[0027] 在一个可能的实现方式中,接收第一设备发送的堆叠报文之后还包括:
[0028] 在预先建立的mac转发表中搜索源mac地址,若mac转发表中不包括与源mac地址相同的参考mac地址,则确定源mac地址为新的参考mac地址;
[0029] 获取接收堆叠报文的中继端口,确定接收堆叠报文的中继端口为新的参考mac地址对应的中继端口;
[0030] 将新的参考mac地址和新的参考mac地址对应的中继端口添加至mac转发表。
[0031] 根据本申请实施例的另一个方面,提供了一种堆叠报文的转发装置,该装置包括:
[0032] 接收模块,用于接收第一设备发送的堆叠报文;堆叠报文中封装有源mac地址和目的mac地址;
[0033] 搜索模块,用于在预先建立的mac转发表中搜索目的mac地址,若mac转发表中包括与目的mac地址相同的参考mac地址,则确定参考mac地址对应的中继端口为转发端口;
[0034] 转发模块,用于通过转发端口将堆叠报文转发至目的mac地址对应的第二设备的堆叠端口;
[0035] mac转发表中记录有各个参考mac地址以及各个参考mac地址对应的中继端口;
[0036] 第一设备的堆叠端口、第二设备的堆叠端口以及中继端口均处于同一vlan。
[0037] 根据本申请实施例的另一个方面,提供了一种电子设备,该电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现如第
一方面所提供的方法的步骤。
[0038] 根据本申请实施例的再一个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所提供的方法的步骤。
[0039] 根据本申请实施例的又一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机指令,该计算机指令存储在计算机可读存储介质中,当计算机设备的处理器
从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备
执行实现如第一方面所提供的方法的步骤。
[0040] 本申请实施例提供的技术方案带来的有益效果是:
[0041] 本申请实施例通过接收第一设备发送的堆叠报文;堆叠报文中封装有源mac地址和目的mac地址;在预先建立的mac转发表中搜索目的mac地址,若mac转发表中包括与目的
mac地址相同的参考mac地址,则确定参考mac地址对应的中继端口为转发端口;通过转发端
口将堆叠报文转发至第二设备中目的mac地址对应的堆叠端口;mac转发表中记录有各个参
考mac地址以及各个参考mac地址对应的中继端口;第一设备的堆叠端口、第二设备的堆叠
端口以及中继端口均处于同一vlan。本申请实施例可通过在mac转发表中查询与源mac地址
相同的参考mac地址对应的中继端口,确定中继端口为转发端口,从而能够有效穿越二层网
络,而非对堆叠链路上各个端口实施vlan隔离,提高了中间二层网络部署的灵活性。

附图说明

[0042] 为了更清楚地说明本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
[0043] 图1为本申请实施例提供的现有方案堆叠组的结构示意图;
[0044] 图2为本申请实施例提供的一种堆叠报文的转发的方法的流程示意图;
[0045] 图3为本申请实施例提供的第一设备和第二设备进行堆叠的示意图;
[0046] 图4为本申请实施例提供的一种堆叠报文的转发装置的结构示意图;
[0047] 图5为本申请实施例提供的一种的电子设备的结构示意图。

具体实施方式

[0048] 下面结合本申请中的附图描述本申请的实施例。应理解,下面结合附图所阐述的实施方式,是用于解释本申请实施例的技术方案的示例性描述,对本申请实施例的技术方
案不构成限制。
[0049] 本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请实施例所使用的术语
“包括”以及“包含”是指相应特征可以实现为所呈现的特征、信息、数据、步骤、操作、元件
和/或组件,但不排除实现为本技术领域所支持其他特征、信息、数据、步骤、操作、元件、组
件和/或它们的组合等。应该理解,当我们称一个元件被“连接”或“耦接”到另一元件时,该
一个元件可以直接连接或耦接到另一元件,也可以指该一个元件和另一元件通过中间元件
建立连接关系。此外,这里使用的“连接”或 “耦接”可以包括无线连接或无线耦接。这里使
用的术语“和/或”指示该术语所限定的项目中的至少一个,例如“A和/或B”指示实现为“A”,
或者实现为“A”,或者实现为“A和B”。
[0050] 为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
[0051] 堆叠是指将多台支持堆叠特性的交换机通过堆叠线连接在一起,从逻辑上变成一台设备,它的核心思想是将多台设备通过堆叠端口连接在一起,进行必要的配置后,虚拟化
成一台“分布式设备”。使用这种虚拟换技术可以集合多台设备的硬件资源和软件处理能
力,实现多台设备的协同工作、统一管理和不间断维护。
[0052] vlan隔离技术根据特定的策略,把物理上形成的局域网(Local Area Network,LAN)划分成不同的逻辑子网,把数据链路层广播报文隔离在逻辑子网之内,形成各自的广
播域,每个逻辑子网就是一个“虚拟的局域网(Virtual LAN)”。每个接入且支持vlan的交换
机的终端设备,都属于一个特定的vlan,不同vlan中的终端设备无法直接通过数据链路层
通信。
[0053] 如图1所示,其示例性示出了现有方案堆叠组的结构示意图,该堆叠组中包括两个堆叠成员设备,为堆叠成员设备1和堆叠成员设备2,中间为二层网络的交换机LSW(局域网
交换机),堆叠成员设备1和堆叠成员设备2之间有4条堆叠链路,堆叠成员设备1有四个堆叠
端口port1、port2、port3以及port4,堆叠成员设备2有四个堆叠端口为port1’port2’、
port3’以及port4’,LSW有四个中继端口,分别为port1’’、port2’’、port3’’、port4’’、
port5’’、port6’’、port7’’以及port8’’。如图1所示,port1、port1’’、port5’’以及port1’
属于同一条链路,port2、port2’’、port6’’以及port2’属于同一条链路,其他链路不再一一
介绍。
[0054] 现有方案LSW在接收到堆叠成员设备1发送的封装有mac地址和vlan的堆叠报文后,根据该mac地址和vlan将该堆叠报文转发发到第二设备对应的堆叠端口,第二设备的堆
叠端口收到该堆叠报文后通过判断该mac地址和vlan判断该报文是否自己需要处理的堆叠
报文,为简化报文的转发流程,现有方案中的每个堆叠成员设备封装的mac地址都是固定
的,堆叠成员设备1的每个堆叠端口的mac地址均为mac1,堆叠成员设备2的每个堆叠端口的
mac地址均为mac2,即从堆叠成员设备1的四个堆叠端口发出的堆叠报文的源mac地址均为
mac1,目的mac地址均为mac2,同理从堆叠成员设备2的四个堆叠端口发出的堆叠报文的源
mac地址均为mac2,目的mac地址均为mac1,以此来简化转发堆叠报文的过程,但由于有多条
堆叠链路,为了避免转发出错,现有方案对每个链路设置不同的vlan,以进行vlan隔离,同
时对二层网络中的交换机的各个中继端口设置不同的vlan,使得交换机以准确将堆叠报文
转发到另一堆叠成员设备的同一vlan的堆叠端口,即上述port1、port1’’、port5’’以及
port1’属于同一条链路,属于同一个vlan,通过port1发出的堆叠报文,交换机只能通过
port1’’接收,通过port5’’转发至堆叠成员设备2的port1’。
[0055] 然而,在现实环境中,对每个堆叠成员设备的端口设置vlan实际上是对每条链路设置vlan,对每条链路设置vlan实际上是对交换机的每个中继端口设置了vlan,对交换机
的每个中继端口设置了vlan,该中继端口就不允许vlan为其他vlan的堆叠报文的通过,很
大程度上限制了中间二层网络部署的灵活性。
[0056] 本申请提供的堆叠报文的转发方法、装置、电子设备、交换机、路由器、服务器、计算机可读存储介质以及计算机程序产品,旨在解决现有技术的如上技术问题。
[0057] 下面通过对几个示例性实施方式的描述,对本申请实施例的技术方案以及本申请的技术方案产生的技术效果进行说明。需要指出的是,下述实施方式之间可以相互参考、借
鉴或结合,对于不同实施方式中相同的术语、相似的特征以及相似的实施步骤等,不再重复
描述。
[0058] 本申请实施例中提供了一种堆叠报文的转发的方法,如图2所示,该方法包括:
[0059] 步骤S201,接收第一设备发送的堆叠报文;堆叠报文中封装有源mac地址和目的mac地址。
[0060] 本申请实施例应用于由至少两台堆叠成员设备组成的堆叠组,在堆叠组内进行堆叠报文转发,该堆叠组包括第一设备、第二设备以及交换机,本申请实施例执行主体可以为
二层网络中的设备,可以是交换机或者具备该交换机功能的其他设备,本申请实施例对此
不作限制,后续说明以交换机为执行主体进行举例。
[0061] 本申请实施例第一设备、第二设备即为堆叠组组中的成员设备,可以是任意类型、可发送堆叠报文的设备,比如是主机、服务器、交换机、路由器、服务器等等。
[0062] 本申请实施例第一设备上和第二设备上的端口称之为堆叠端口,交换机上的端口称之为中继端口,需要强调的是,本申请实施例第一设备的各个堆叠端口、第二设备的各个
堆叠端口以及交换机的各个中继端口属于同一个vlan,没有对堆叠端口和中继端口设置
vlan隔离。
[0063] 如图3所示,其示例性示出了本申请第一设备和第二设备进行堆叠的示意图,左侧堆叠成员设备1为第一设备,右侧堆叠成员设备2为第二设备,中间为局域网交换机LSW(LAN 
switches),LSW可以与堆叠成员设备1和本申请实施例堆叠报文的转发方法的执行主体即
为中间的LSW。
[0064] 本申请实施例堆叠报文即为堆叠报文,是通过任意类型的数据报文和以太网帧封装得来的,以太网帧中封装有源mac地址和目的mac地址,源mac地址为第一设备中发出该堆
叠报文的堆叠端口的mac地址,目的mac地址为第二设备中接收该堆叠报文的堆叠端口的
mac地址。
[0065] 步骤S202,在预先建立的mac转发表中搜索目的mac地址,若mac转发表中包括与目的mac地址相同的参考mac地址,则确定参考mac地址对应的端口为转发端口。
[0066] 其中,mac转发表中记录有各个参考mac地址以及各个参考mac地址对应的中继端口。
[0067] 本申请实施例在接收到该堆叠报文之后,会先对该堆叠报文进行初步解析,解析该堆叠报文中封装的以太网帧,从该以太网帧中提取源mac地址和目的mac地址,在提取源
mac地址和目的mac地址之后,再将该以太网帧和数据报文进行封装并转发。
[0068] 本申请实施例mac转发表中记录有各个参考mac地址以及各个参考mac地址对应的中继端口。
[0069] 本申请实施例中继端口是交换机上的端口,mac转发表中的各个参考mac地址以及参考mac地址对应的中继端口是通过以下方式确定的:
[0070] 在接收到某堆叠报文后,在mac转发表中查找是否存在与该堆叠报文的源mac地址相同的参考mac地址,若不存在该源mac地址相同的参考mac地址,则说明是首次接收该堆叠
报文,需对该堆叠报文进行学习,将该堆叠报文的源mac地址记录为新的参考mac地址,获取
接收该堆叠报文的中继端口,确定接收该堆叠报文的中继端口为该新的参考mac地址对应
的中继端口,将该新的参考mac地址以及该新的参考mac地址对应的中继端口记录于mac转
发表中。
[0071] 本申请实施例mac转发表中,各参考mac地址对应的中继端口可表示两层意思:一层意思为:和该中继端口相连接的堆叠端口的mac地址为该参考mac地址;另一层意思为:若
接收到某堆叠报文的目的mac地址和该参考mac地址相同,则通过该中继端口即可将该堆叠
报文转发至该目的mac地址对应的堆叠端口。
[0072] 本申请实施例在接收到第一设备发送的堆叠报文后,在预先建立的mac转发表中搜索该目的mac地址,若mac转发表中包括该目的mac地址相同的参考mac地址,则确定将该
参考mac地址对应的中继端口为转发端口。
[0073] 另外,值得注意的是,本申请实施例各个堆叠端口、中继端口同属于同一个vlan,没有对堆叠端口和中继端口设置vlan隔离。
[0074] 步骤S203,通过转发端口将堆叠报文转发至第二设备中目的mac地址对应的堆叠端口。
[0075] 其中,第一设备的堆叠端口、第二设备的堆叠端口以及中继端口均处于同一vlan。
[0076] 本申请实施例在确定出转发端口后,通过该转发端口将该堆叠报文转发至第二设备中该目的mac地址对应的堆叠端口,第二设备在接收到该堆叠报文之后,将封装的以太网
帧剥离,并发送到下一模块。
[0077] 本申请实施例可通过在mac转发表中查询与mac地址相同的参考mac地址对应的中继端口,确定中继端口为转发端口,从而能够有效穿越二层网络,而非对堆叠链路上各个端
口实施vlan隔离,提高了中间二层网络部署的灵活性。
[0078] 本申请实施例提供了一种可能的实现方式,在接收第一涉笔发送的堆叠报文之前,还包括:
[0079] 获取第一设备和第二设备之间的链路数;
[0080] 根据链路数分别确定第一设备和第二设备的各个堆叠端口的mac地址的固定位和变化位;固定位是指同一设备的不同堆叠端口的mac地址相同的位;变化位是指同一设备的
不同堆叠端口的mac地址变化的位;
[0081] 根据第一设备的各个堆叠端口的mac地址的固定位和变化位分别为第一设备的各个堆叠端口配置mac地址,根据第二设备的各个堆叠端口的mac地址的固定位和变化位分别
为第二设备的各个堆叠端口配置mac地址。
[0082] mac地址的长度为48位(6个字节),本申请实施例第一设备和第二设备之间存在若干数量的堆叠链路,可根据堆叠链路的链路数确定第一设备和第二设备的各个堆叠端口的
mac信息的固定位和变化位,将mac地址划分为固定位和变化位。
[0083] 本申请实施例固定位是指同一设备的不同堆叠端口的mac地址的相同的位,变化位是指同一设备的不同堆叠端口的mac地址变化的位。
[0084] 具体而言,假设最大链路数位64,即第一设备和第二设备之间的链路数最多为64,6
由于2>=64,由此可以确定需要变化的位数为6,即mac地址的后6位为变化位,由于mac地址
的长度为48位,由此可以确定mac地址的固定位为48‑6=42,即mac地址的前42位为固定位。
[0085] 值得注意的是,本申请实施例固定位可当作第一设备和第二设备的mac地址的识别标志,即第一设备的各个堆叠端口的有相同的固定位,第二设备的各个堆叠端口有相同
的固定位,通过识别mac地址的固定位可确定是第一设备或第二设备。
[0086] 本申请实施例固定位可当作第一设备合第二设备的mac地址的识别标识,第一设备合第二设备的固定位的具体数值是不同的。
[0087] 本申请实施例变化位可当作各个堆叠端口的唯一标识,通过为各个堆叠端口设置不同的变化位来实现对同一设备的各个堆叠端口进行区分,那么由固定位和变化位组成
mac地址能够实现对各个堆叠端口进行区分,保证了在网络传输中各个堆叠端口的mac地址
是不同的,在同一个vlan中能够保证堆叠报文的能够正常转发。
[0088] 本申请实施例在确定出第一设备的各个堆叠端口的mac地址的固定位和变化位之后,分别为第一设备的各个堆叠端口配置mac地址。
[0089] 具体地,mac地址通常以12个16进制位表达,假设第一设备和第二设备之间的最大链路数为16,可确定变化位为4位,4个二进制位为1个16进制位,由此可以确定只需要最后
一位16进制数变化,即固定位为最后一个16进制数,固定位由16进制的0变化到16进制的f,
若第一设备的mac地址的固定位为00‑01‑00‑02‑10‑0,可为第一设备的16个堆叠端口配置
的mac地址分别为00‑01‑00‑02‑10‑01、00‑01‑00‑02‑10‑02、…、00‑01‑00‑02‑10‑0f,各个
堆叠端口有相同的固定位和不同的变化位,由固定位和变化位组成的mac地址是唯一的,可
对各个堆叠端口的mac地址进行区分。
[0090] 第二设备的各个堆叠端口的mac地址可通过同样的方式进行配置,本申请实施例在此不再进行赘述。
[0091] 本申请实施例各个堆叠端口的mac地址由固定位和变化位组成,固定位可作为第一设备或第二设备的识别标识,变化位可对同一设备的不同堆叠端口进行区分,由固定位
和变化位组成mac地址是不同的,在同一个vlan中能够保证堆叠报文的能够正常转发。
[0092] 本申请实施例提供了一种可能的实现方式,根据链路数分别确定第一设备和第二设备的各个堆叠端口的mac地址的固定位和变化位,包括:
[0093] 根据链路数确定需要为第一设备和第二设备的堆叠端口分配的mac地址的数量;
[0094] 根据mac地址的数量确定第一设备和第二设备的各个堆叠端口的mac地址的变化位;
[0095] 根据第一设备和第二设备的各个堆叠端口的mac地址的变化位确定第一设备和第二设备的各个堆叠端口的mac地址的固定位。
[0096] 本申请实施例在获取第一设备和第二设备之间的链路数之后,根据该链路数确定需要为第一设备和第二设备的堆叠端口分配的mac地址的数量。
[0097] 具体而言,假设第一设备和第二设备之间的链路数为16,由此可以确定第一设备和第二设备分别有16个堆叠端口,即需要分别为第一设备的堆叠端口分配16个mac地址,为
第二设备的堆叠端口分配16个mac地址。
[0098] 在确定mac地址的数量之后,根据mac地址的数量确定第一设备和第二设备的各个堆叠端口的mac地址的变化位。具体而言,延续上例,确定为第一设备分配的mac地址的数量
为16个,若mac地址以16进制位的形式表达,则只需要最后一位变化,即固定位为最后一位
16进制数。
[0099] mac地址以16进制表达包括12个16进制数,最后一位16进制数为变化位,可确定固定位前11个16进制数。
[0100] 同理,mac地址以48位二进制数表达,则最后4位2进制数为变化位,可确定固定位前44位为二进制数。
[0101] 本申请实施例提供了一种可能的实现方式,根据第一设备的各个堆叠端口的mac地址的固定位和变化位分别为第一设备的各个堆叠端口配置mac地址,根据第二设备的各
个堆叠端口的mac地址的固定位和变化位分别为第二设备的各个堆叠端口配置mac地址,包
括:
[0102] 对于第一设备或第二设备的任意一个堆叠端口,按照预设规则分别确定堆叠端口的mac地址的固定位的数值和变化位的数值;
[0103] 将固定位的数值和变化位的数值进行组合生成堆叠端口的mac地址。
[0104] 本申请实施例对于第一设备或第二设备的任意一个堆叠端口,按照预设规则确定各堆叠端口的mac地址的固定位的数值和变化位的数值,并将固定为的数值和变化位的数
值进行组合生成堆叠端口的mac地址。
[0105] 具体地,若mac地址以16进制表达,变化位为最后一位16进制数,固定位为前11位二进制数,按照预设规则设定第一设备的各个堆叠端口的固定位为00‑01‑00‑02‑10‑0,第
二设备的各个堆叠端口的固定位为00‑01‑00‑03‑10‑0,二者的固定位均由16进制的0变化
到16进制的f,将固定位和变化位进行组合可确定第一设备的各个堆叠端口的mac地址为
00‑01‑00‑02‑10‑01、00‑01‑00‑02‑10‑02、…、00‑01‑00‑02‑10‑0f,第二设备的各个堆叠端
口的mac地址分别为00‑01‑00‑03‑10‑01、00‑01‑00‑03‑10‑02、…、00‑01‑00‑03‑10‑0f。
[0106] 本申请实施例提供了一种可能的实现方式,在预先建立的mac转发表中搜索目的mac地址之前还包括:
[0107] 从源mac地址中提取该源mac地址的固定位,若确定源mac地址的固定位为预先存储的第一设备的唯一标识,则确定获取预先建立的mac转发表。
[0108] 本申请实施例在接收堆叠报文之后,提取该堆叠报文中封装的源mac地址和目的mac地址,提取该源mac地址的固定位,固定位为第一设备的mac地址的识别标识,可看作该
第一设备的唯一标识,若确定源mac地址的固定位为预先存储的源mac地址的固定位为预先
存储的第一设备的唯一标识,则可以确定该堆叠报文能够被转发,是符合要求的报文,则会
确定调用预先建立的转发表。
[0109] 本申请实施例提供了一种可能的实现方式,在预先建立的mac转发表中搜索目的mac地址之后还包括:
[0110] 若mac转发表中不包括目的mac地址相同的参考mac地址,则通过除接收堆叠报文的中继端口之外的其他中继端口对堆叠报文进行广播。
[0111] 本申请实施例mac转发表中存储有参考mac地址和参考mac地址对应的中继端口,若mac转发表中不包括与该堆叠报文的目的mac地址相同的参考mac地址,则无法确定通过
那个端口可将该堆叠报文转发至目的mac地址对应的堆叠端口,此时通过除接收该堆叠报
文的中继端口端口之外的其他中继端口对该堆叠报文进行广播以使得目的mac地址对应的
堆叠端口接收到该堆叠报文,目的mac地址对应的堆叠端口接收到该堆叠报文之后,会对该
堆叠报文进行相应,其他堆叠端口接收到该堆叠报文之后,判断该堆叠报文不是自己的,会
将该堆叠报文进行丢弃。
[0112] 本申请实施例提供了一种可能的实现方式,本申请实施例接收第一设备发送的堆叠报文之后还包括:
[0113] 在预先建立的mac转发表中搜索源mac地址,若mac转发表中不包括与源mac地址相同的参考mac地址,则确定源mac地址为新的参考mac地址;
[0114] 获取接收堆叠报文的中继端口,确定接收堆叠报文的中继端口为新的参考mac地址对应的中继端口;
[0115] 将新的参考mac地址和新的参考mac地址对应的中继端口添加至mac转发表。
[0116] 本申请实施例在接收到堆叠报文,提取该堆叠报文的源mac地址以及目的mac地址之后,不仅仅会在在预先建立的mac转发表中搜索该目的mac地址,也会搜索该源mac地址,
查询是否存在与该源mac地址相同的参考mac地址。
[0117] 其中,搜索该目的mac地址是为了确定转发该堆叠报文的中继端口,搜索该源mac地址是为了确定是否是首次接收该堆叠报文,未查找到该源mac地址对应的参考mac地址,
则说明该mac转发表中未接收到该源mac地址对应的堆叠端口发送的堆叠报文。
[0118] 若mac转发表中不包括该源mac地址相同的参考mac地址,在确定该源mac地址为新的参考mac地址。
[0119] 获取接收该堆叠报文的中继端口,确定接收该堆叠报文的中继端口为该新的mac地址对应的中继端口,并将该新的参考mac地址和该新的参考mac地址对应的中继端口添加
至mac转发表,以使得下次接收到以该新的参考mac地址为目的mac地址的堆叠报文时,可以
直接确定该新的参考mac地址对应的中继端口为转发端口。
[0120] 下面将以具体场景为例介绍本申请实施例,如图2所示,有第一设备堆叠成员设备1、交换机LSW以及第二设备堆叠成员设备2,假设堆叠成员设备1和堆叠成员设备2之间有16
条链路数,可确定第一设备的各个堆叠端口的mac地址为00‑01‑00‑02‑10‑01、00‑01‑00‑
02‑10‑02、…、00‑01‑00‑02‑10‑0f,第二设备的各个堆叠端口的mac地址分别为00‑01‑00‑
03‑10‑01、00‑01‑00‑03‑10‑02、…、00‑01‑00‑03‑10‑0f。
[0121] 下面将以两条堆叠链路为例来描述堆叠的建立和堆叠报文转发的过程,堆叠成员设备1的堆叠端口为port1和port2,堆叠成员设备2的堆叠端口为port1’和port2’,LSW的中
继端口为port1’’、port2’’、port3’’和port4’’,且上述port1、port2、port1’、port2’、
port1’’、port2’’、port3’’和port4’’同属同一个vlan,堆叠成员设备1的port1的mac地址
为00‑01‑00‑02‑10‑01,port2的mac地址为00‑01‑00‑02‑10‑02,堆叠成员设备2的port1’的
mac地址为00‑01‑00‑03‑10‑01,port2’的mac地址为00‑01‑00‑03‑10‑02。
[0122] 堆叠成员设备1的port1的mac地址为00‑01‑00‑02‑10‑01,vlan为10,通过port1将堆叠报文发送至交换机LSW,发送的堆叠报文的源mac地址为00‑01‑00‑02‑10‑01、目的mac
地址为00‑01‑00‑03‑10‑01,vlan为10。
[0123] LSW交换机通过port1’’接收该堆叠报文,接收完该堆叠报文后,解析出该堆叠报文的源mac地址00‑01‑00‑02‑10‑01和目的mac地址00‑01‑00‑03‑10‑01,当前mac转发表为
空,从该mac转发表中未搜索到该源mac地址对应的参考mac地址,则确定该源mac地址为新
的参考mac地址,接收该堆叠报文的中继端口为该新的参考mac地址对应的中继端口,并将
该新的参考mac地址以及新的参考mac地址加入mac转发表,如表1所示,表1显示为将该新的
参考mac地址以及新的参考mac地址加入mac转发表后mac地址的内容,该表中还包括发送该
堆叠报文的堆叠端口所属的vlan。
[0124]
[0125] 表1
[0126] 同时从该mac转发表中也未搜索到该目的mac地址对应的参考mac地址,因此,需通过除接收堆叠报文的中继端口之外的其他中继端口对堆叠报文进行广播,即通过中继端口
port2’’、port3’’、port4’’对该堆叠报文进行广播,分别发送至堆叠成员设备1的堆叠端口
port2以及堆叠成员设备2的堆叠端口port1’和port2’,堆叠成员设备2的port1’收到该堆
叠报文后,检测到该堆叠报文的目的mac地址是自己的,会对该堆叠报文进行响应,同时在
检测该堆叠报文符合条件后将以太头剥离,将数据报文发送到下一个模块进行正常处理;
堆叠成员设备1的port1和堆叠成员设备2的port2’判读该堆叠报文不是自己的,直接将该
堆叠报文进行丢弃。
[0127] LSW接收到堆叠成员设备2的port1’发出的堆叠报文的源mac地址为00‑01‑00‑03‑10‑01,目的mac地址为00‑01‑00‑02‑10‑01,vlan为10,LSW接受完该port1’发出的堆叠报文
后,生成的mac转发表如表2所示。
[0128]
[0129] 表2
[0130] 上述堆叠成员设备1的port1和堆叠成员设备2的port1’就通过上述方式实现了堆叠链路建立。
[0131] 堆叠成员设备1的port2和堆叠成员设备2的port1’也通过同样的交互完成堆叠链路的建立,这样中间的LSW最终学习生成的mac转发表如表3所示:
[0132]
[0133] 表3
[0134] 堆叠建立完成后,在堆叠组中进行堆叠报文的转发也和上述步骤,本申请实施例对此不再进行赘述。
[0135] 通过上面的处理有效的解决了现有方案的堆叠报文在中间穿越二层网路的时候,必须要中间二层网络设备进行vlan隔离的问题,从而使得中间网络设备的网络部署更灵
活,同时也在一定程度上降低了堆叠成员设备的vlan消耗。
[0136] 本申请实施例提供了一种堆叠报文的转发装置,如图4所示,该堆叠报文的转发装置40可以包括:
[0137] 接收模块410,用于接收第一设备发送的堆叠报文;堆叠报文中封装有源mac地址和目的mac地址;
[0138] 搜索模块420,用于在预先建立的mac转发表中搜索目的mac地址,若mac转发表中包括与目的mac地址相同的参考mac地址,则确定参考mac地址对应的中继端口为转发端口;
[0139] 转发模块430,用于通过转发端口将堆叠报文转发至目的mac地址对应的第二设备的堆叠端口;
[0140] mac转发表中记录有各个参考mac地址以及各个参考mac地址对应的中继端口;
[0141] 第一设备的堆叠端口、第二设备的堆叠端口以及中继端口均处于同一vlan。
[0142] 本申请实施例提供了一种可能的实现方式,该装置还包括mac地址确定模块,mac地址确定模块包括:
[0143] 获取子模块,用于获取第一设备和第二设备之间的链路数;
[0144] mac地址固定位和变化位确定子模块,用于根据链路数分别确定第一设备和第二设备的各个堆叠端口的mac地址的固定位和变化位;固定位是指同一设备的不同堆叠端口
的mac地址相同的位;变化位是指同一设备的不同堆叠端口的mac地址变化的位;
[0145] mac地址配置子模块,用于根据第一设备的各个堆叠端口的mac地址的固定位和变化位分别为第一设备的各个堆叠端口配置mac地址,根据第二设备的各个堆叠端口的mac地
址的固定位和变化位分别为第二设备的各个堆叠端口配置mac地址。
[0146] 本申请实施例提供了一种可能的实现方式,mac地址固定位和变化位确定子模块,包括
[0147] mac地址的数量确定单元,用于根据链路数确定需要为第一设备和第二设备的堆叠端口分配的mac地址的数量;
[0148] mac地址的变化位确定单元,用于根据mac地址的数量确定第一设备和第二设备的各个堆叠端口的mac地址的变化位;
[0149] mac地址的固定位确定单元,用于根据第一设备和第二设备的各个堆叠端口的mac地址的变化位确定第一设备和第二设备的各个堆叠端口的mac地址的固定位。
[0150] 本申请实施例提供了一种可能的实现方式,mac地址配置子模块具体用于对于第一设备或第二设备的任意一个堆叠端口,按照预设规则分别确定堆叠端口的mac地址的固
定位的数值和变化位的数值;将固定位的数值和变化位的数值进行组合生成堆叠端口的
mac地址。
[0151] 本申请实施例提供了一种可能的实现方式,该装置还包括:
[0152] mac转发表获取模块,用于从源mac地址中提取源mac地址的固定位,若确定源mac地址的固定位为预先存储的第一设备的唯一标识,则确定获取预先建立的mac转发表。
[0153] 本申请实施例提供了一种可能的实现方式,该装置还包括:
[0154] 广播模块,用于若mac转发表中不包括目的mac地址相同的参考mac地址,则通过除接收堆叠报文的中继端口之外的其他中继端口对堆叠报文进行广播。
[0155] 本申请实施例提供了一种可能的实现方式,该装置还包括:mac转发表构建模块,该mac转发表构建模块包括:
[0156] 新的参考mac地址确定子模块,用于在预先建立的mac转发表中搜索源mac地址,若mac转发表中不包括与源mac地址相同的参考mac地址,则确定源mac地址为新的参考mac地
址;
[0157] 新的参考mac地址对应的中继端口确定子模块,用于获取接收堆叠报文的中继端口,确定接收堆叠报文的中继端口为新的参考mac地址对应的中继端口;
[0158] 添加子模块,用于将新的参考mac地址和新的参考mac地址对应的中继端口添加至mac转发表。
[0159] 本申请实施例的装置可执行本申请实施例所提供的方法,其实现原理相类似,本申请各实施例的装置中的各模块所执行的动作是与本申请各实施例的方法中的步骤相对
应的,对于装置的各模块的详细功能描述具体可以参见前文中所示的对应方法中的描述,
此处不再赘述。
[0160] 本申请实施例中提供了一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,该处理器执行上述计算机程序以实现堆叠报文的转发方法的步骤,与现有技
术相比可实现:通过接收第一设备发送的堆叠报文;堆叠报文中封装有源mac地址和目的
mac地址;在预先建立的mac转发表中搜索目的mac地址,若mac转发表中包括与目的mac地址
相同的参考mac地址,则确定参考mac地址对应的中继端口为转发端口;通过转发端口将堆
叠报文转发至第二设备中目的mac地址对应的堆叠端口;mac转发表中记录有各个参考mac
地址以及各个参考mac地址对应的中继端口;第一设备的堆叠端口、第二设备的堆叠端口以
及中继端口均处于同一vlan。本申请实施例可通过在mac转发表中查询与mac地址相同的参
考mac地址对应的中继端口,确定中继端口为转发端口,从而能够有效穿越二层网络,而非
对堆叠链路上各个端口实施vlan隔离,提高了中间二层网络部署的灵活性。
[0161] 在一个可选实施例中提供了一种电子设备,如图5所示,图5所示的电子设备5000包括:处理器5001和存储器5003。其中,处理器5001和存储器5003相连,如通过总线5002相
连。可选地,电子设备5000还可以包括收发器5004,收发器5004可以用于该电子设备与其他
电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中
收发器5004不限于一个,该电子设备5000的结构并不构成对本申请实施例的限定。
[0162] 处理器5001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application Specific 
Integrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编
程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以
实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器
5001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的
组合等。
[0163] 总线5002可包括一通路,在上述组件之间传送信息。总线5002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(Extended 
Industry Standard Architecture,扩展工业标准结构)总线等。总线5002可以分为地址总
线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总
线或一种类型的总线。
[0164] 存储器5003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储
信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically Erasable 
Programmable Read Only Memory,电可擦可编程只读存储器)、CD‑ROM(Compact Disc 
Read Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数
字通用光碟、蓝光光碟等)、磁盘存储介质、其他磁存储设备、或者能够用于携带或存储计算
机程序并能够由计算机读取的任何其他介质,在此不做限定。
[0165] 存储器5003用于存储执行本申请实施例的计算机程序,并由处理器5001来控制执行。处理器5001用于执行存储器5003中存储的计算机程序,以实现前述方法实施例所示的
步骤。
[0166] 其中,电子设备包可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载
导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。
[0167] 图5所示的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
[0168] 本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。与现
有技术相比可实现:通过接收第一设备发送的堆叠报文;堆叠报文中封装有源mac地址和目
的mac地址;在预先建立的mac转发表中搜索目的mac地址,若mac转发表中包括与目的mac地
址相同的参考mac地址,则确定参考mac地址对应的中继端口为转发端口;通过转发端口将
堆叠报文转发至第二设备中目的mac地址对应的堆叠端口;mac转发表中记录有各个参考
mac地址以及各个参考mac地址对应的中继端口;第一设备的堆叠端口、第二设备的堆叠端
口以及中继端口均处于同一vlan。本申请实施例可通过在mac转发表中查询与mac地址相同
的参考mac地址对应的中继端口,确定中继端口为转发端口,从而能够有效穿越二层网络,
而非对堆叠链路上各个端口实施vlan隔离,提高了中间二层网络部署的灵活性。
[0169] 需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限
于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算
机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携
式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器
(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD‑ROM)、光存储器件、磁存储器件、或
者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序
的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公
开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中
承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电
磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储
介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由
指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程
序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的
任意合适的组合。
[0170] 本申请实施例还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时可实现前述方法实施例的步骤及相应内容。与现有技术相比可实现:通过接收
第一设备发送的堆叠报文;堆叠报文中封装有源mac地址和目的mac地址;在预先建立的mac
转发表中搜索目的mac地址,若mac转发表中包括与目的mac地址相同的参考mac地址,则确
定参考mac地址对应的中继端口为转发端口;通过转发端口将堆叠报文转发至第二设备中
目的mac地址对应的堆叠端口;mac转发表中记录有各个参考mac地址以及各个参考mac地址
对应的中继端口;第一设备的堆叠端口、第二设备的堆叠端口以及中继端口均处于同一
vlan。本申请实施例可通过在mac转发表中查询与mac地址相同的参考mac地址对应的中继
端口,确定中继端口为转发端口,从而能够有效穿越二层网络,而非对堆叠链路上各个端口
实施vlan隔离,提高了中间二层网络部署的灵活性。
[0171] 应该理解的是,虽然本申请实施例的流程图中通过箭头指示各个操作步骤,但是这些步骤的实施顺序并不受限于箭头所指示的顺序。除非本文中有明确的说明,否则在本
申请实施例的一些实施场景中,各流程图中的实施步骤可以按照需求以其他的顺序执行。
此外,各流程图中的部分或全部步骤基于实际的实施场景,可以包括多个子步骤或者多个
阶段。这些子步骤或者阶段中的部分或全部可以在同一时刻被执行,这些子步骤或者阶段
中的每个子步骤或者阶段也可以分别在不同的时刻被执行。在执行时刻不同的场景下,这
些子步骤或者阶段的执行顺序可以根据需求灵活配置,本申请实施例对此不限制。
[0172] 以上仅是本申请部分实施场景的可选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请的方案技术构思的前提下,采用基于本申请技术思想的
其他类似实施手段,同样属于本申请实施例的保护范畴。