CN109587027B - 一种报文转发方法及装置 - Google Patents
一种报文转发方法及装置 Download PDFInfo
- Publication number
- CN109587027B CN109587027B CN201811442790.3A CN201811442790A CN109587027B CN 109587027 B CN109587027 B CN 109587027B CN 201811442790 A CN201811442790 A CN 201811442790A CN 109587027 B CN109587027 B CN 109587027B
- Authority
- CN
- China
- Prior art keywords
- message
- member device
- vlan value
- interface
- stacking
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/58—Association of routers
- H04L45/583—Stackable routers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/35—Switches specially adapted for specific applications
- H04L49/354—Switches specially adapted for specific applications for supporting virtual local area networks [VLAN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/55—Prevention, detection or correction of errors
- H04L49/552—Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请实施例提供了一种报文转发方法及装置,涉及通信技术领域,用以提高报文传输效率。本申请实施例的方案包括:第一成员设备接收第一报文,当确定堆叠设备发送第一报文的出接口位于第二成员设备时,获取与出接口绑定的第一VLAN值以及与堆叠口绑定的第二VLAN值,并将第一VLAN值和第二VLAN值封装至第一报文的报文头,得到第一封装报文,然后依据第二VLAN值,确定用于传输第一封装报文的堆叠口,并删除第一封装报文包括的第二VLAN值,得到第二封装报文,将第二封装报文通过堆叠口发送至第二成员设备,以使第二成员设备通过第一VLAN值确定出接口,删除第二封装报文包括的第一VLAN值,得到第一报文,转发第一报文。
Description
技术领域
本申请涉及通信技术领域,特别是涉及一种报文转发方法及装置。
背景技术
目前,对于包括多个成员设备的堆叠设备,各成员设备通过上行链路接收来自上行交换机的报文后,可通过下行链路将报文发送给下行交换机。其中,上行交换机为连接于客户端的交换机,上行链路为上行交换机与成员设备之间的通信链路,下行交换机为连接于服务器的交换机,下行链路为下行交换机与服务器之间的通信链路。
以如图1所示组网为例,堆叠设备包括成员设备1和成员设备2,上行交换机接收到客户端发送的报文后,可通过链路1将报文转发给成员设备1,成员设备1处理报文后通过链路3将报文转发给下行交换机,或者上行交换机通过链路2将报文转发给成员设备2,成员设备2处理报文后通过链路4将报文转发给下行交换机。其中,成员设备1和成员设备2接收到报文后,都需要对报文进行解析,确定报文的目的地址。
然而,若图1中链路1至链路4中的任意一条链路故障,例如链路1和链路4故障,或者链路2和链路3故障,均会导致成员设备1和成员设备2之间出现透传报文。以链路2和链路3故障为例,成员设备1通过链路1接收到报文且对该报文进行处理后,可将报文通过堆叠口发送给成员设备2,成员设备2对该报文进行处理后,通过链路4发送给下行交换机。
可见链路故障会导致堆叠设备中各成员设备之间需要透传大量的报文,且堆叠设备中第一成员设备(例如图1中成员设备1)接收到多堆叠设备外部发送的报文且对报文进行处理之后,接收第一成员设备转发的报文的第二成员设备(例如图1中成员设备2)需再次对报文进行处理,导致报文的传输效率较低。
发明内容
本申请实施例的目的在于提供一种报文转发方法及装置,以提高透传报文的传输效率。具体技术方案如下:
第一方面,本申请实施例提供一种报文转发方法,应用于堆叠设备中的第一成员设备,所述堆叠设备还包括与第一成员设备通过堆叠口连接的第二成员设备,所述方法包括:
第一成员设备接收第一报文,当确定所述堆叠设备发送所述第一报文的出接口位于所述第二成员设备时,获取与所述出接口绑定的第一VLAN值以及与所述堆叠口绑定的第二VLAN值,并将所述第一VLAN值和所述第二VLAN值封装至所述第一报文的报文头,得到第一封装报文;
依据所述第二VLAN值,确定用于传输所述第一封装报文的所述堆叠口;
删除所述第一封装报文包括的第二VLAN值,得到第二封装报文,将所述第二封装报文通过所述堆叠口发送至第二成员设备,以使所述第二成员设备通过所述第一VLAN值确定所述出接口,删除所述第二封装报文包括的所述第一VLAN值,得到所述第一报文,转发所述第一报文。
第二方面,本申请实施例提供一种报文转发方法,应用于堆叠设备中的第二成员设备,所述方法包括:
通过所述堆叠口接收第二封装报文,所述第二封装报文包括第一VLAN值;
判断与所述堆叠口绑定的VLAN值中是否包括所述第一VLAN值;
若是,则通过所述第一VLAN值确定出接口,并删除所述第二封装报文包括的所述第一VLAN值,得到第一报文;
通过所述出接口转发所述第一报文。
第三方面,本申请实施例提供一种报文转发方法,应用于堆叠设备中的第一成员设备,所述方法包括:
获取与所述出接口绑定的第一VLAN值以及与各成员设备发送报文的堆叠口绑定的第二VLAN值,并将所述第一VLAN值和各第二VLAN值按照传输路径封装至所述第一报文的报文头,得到第一封装报文;
依据所述第一封装报文中的第一个第二VLAN值,确定所述第一成员设备用于与所述传输路径中的第一个第二成员设备连接的第一堆叠口;
删除所述第一封装报文包括的第一个第二VLAN值,得到第二封装报文,将所述第二封装报文通过所述第一堆叠口发送至所述第一个第二成员设备。
第四方面,本申请实施例提供一种报文转发装置,应用于堆叠设备中的第二成员设备,所述方法包括:
通过本地第一堆叠口接收第三封装报文,所述第三封装报文包括第一VLAN值以及与传输路径中各成员设备发送报文的堆叠口绑定的第二VLAN值,所述第一VLAN值与传输路径中最后接收报文的成员设备的出接口绑定;
依据所述第三封装报文包括的第一个第二VLAN值,确定所述第二成员设备用于与传输路径中下一成员设备连接的第二堆叠口;
删除所述第三封装报文包括的第一个第二VLAN值,得到第四封装报文,将所述第四封装报文通过所述第二堆叠口发送至所述传输路径中的下一成员设备,以使所述传输路径中的下一成员设备依据所述第四封装报文中第一个第二VLAN值或第一VLAN值。
第五方面,本申请实施例提供一种报文转发装置,应用于堆叠设备中的第一成员设备,所述堆叠设备还包括与第一成员设备通过堆叠口连接的第二成员设备,所述装置包括:
接收模块,用于接收第一报文;
获取模块,用于当确定所述堆叠设备发送所述第一报文的出接口位于所述第二成员设备时,获取与所述出接口绑定的第一VLAN值以及与所述堆叠口绑定的第二VLAN值;
封装模块,用于将所述获取模块获取的所述第一VLAN值和所述第二VLAN值封装至所述第一报文的报文头,得到第一封装报文;
传输模块,用于依据所述第二VLAN值,确定用于传输所述第一封装报文的所述堆叠口;
所述封装模块,还用于删除所述第一封装报文包括的第二VLAN值,得到第二封装报文;
所述传输模块,还用于将所述第二封装报文通过所述堆叠口发送至第二成员设备,以使所述第二成员设备通过所述第一VLAN值确定所述出接口,删除所述第二封装报文包括的所述第一VLAN值,得到所述第一报文,转发所述第一报文。
第六方面,本申请实施例提供一种报文转发装置,应用于堆叠设备中的第二成员设备,所述装置包括:
接收模块,用于通过所述堆叠口接收第二封装报文,所述第二封装报文包括第一VLAN值;
判断模块,用于判断与所述堆叠口绑定的VLAN值中是否包括所述第一VLAN值;
删除模块,用于若所述判断模块的判断结果为是,则通过所述第一VLAN值确定出接口,并删除所述第二封装报文包括的所述第一VLAN值,得到第一报文;
传输模块,用于通过所述出接口转发所述第一报文。
第七方面,本申请实施例提供一种报文转发装置,应用于堆叠设备中的第一成员设备,所述装置包括:
接收模块,用于接收第一报文;
确定模块,用于当确定所述堆叠设备发送所述第一报文的出接口未位于本成员设备时,确定将所述第一报文发送至所述出接口的传输路径,所述传输路径包括依次经过的第二成员设备;
获取模块,用于获取与所述出接口绑定的第一VLAN值以及与各成员设备发送报文的堆叠口绑定的第二VLAN值;
封装模块,用于将所述第一VLAN值和各第二VLAN值按照传输路径封装至所述第一报文的报文头,得到第一封装报文;
所述确定模块,还用于依据所述第一封装报文中的第一个第二VLAN值,确定所述第一成员设备用于与所述传输路径中的第一个第二成员设备连接的第一堆叠口;
所述封装模块,还用于删除所述第一封装报文包括的第一个第二VLAN值,得到第二封装报文;
发送模块,用于将所述第二封装报文通过所述第一堆叠口发送至第一个第二成员设备。
第八方面,本申请实施例提供一种报文转发装置,应用于堆叠设备中的第二成员设备,所述装置包括:
接收模块,用于通过本地第一堆叠口接收第三封装报文,所述第三封装报文包括第一VLAN值以及与传输路径中各成员设备发送报文的堆叠口绑定的第二VLAN值,所述第一VLAN值与传输路径中最后接收报文的成员设备的出接口绑定;
确定模块,用于依据所述第三封装报文包括的第一个第二VLAN值,确定所述第二成员设备用于与传输路径中下一成员设备连接的第二堆叠口;
封装模块,用于删除所述第三封装报文包括的第一个第二VLAN值,得到第四封装报文;
发送模块,用于将所述第四封装报文通过所述第二堆叠口发送至所述传输路径中的下一成员设备,以使所述传输路径中的下一成员设备依据所述第四封装报文中第一个第二VLAN值或第一VLAN值传输所述第四封装报文。
第九方面,本申请实施例提供一种电子设备,该电子设备包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现第一方面、第二方面、第三方面或第四方面所述的报文转发方法。
第十方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面、第二方面、第三方面或第四方面中所述的报文转发方法。
第十一方面,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面、第二方面、第三方面或第四方面中所述的报文转发方法。
本申请实施例提供的报文转发方法,在第一成员设备接收第一报文后,若确定堆叠设备发送第一报文的出接口位于第二成员设备时,可获取与出接口绑定的第一VLAN值以及与堆叠口绑定的第二VLAN值,并将第一VLAN值和第二VLAN值封装至第一报文的报文头,得到第一封装报文,这样就可以使得第一成员设备通过第二VLAN值对应的堆叠口传输第二封装报文,第二成员设备接收到携带第一VLAN值的第二封装报文后,第二成员设备的交换芯片可直接根据第一VLAN值确定出接口,并通过出接口转发第一报文,这样就实现了第二成员设备直接通过交换芯片对应的硬件层对报文进行转发,无需识别报文的具体内容并对报文进行处理,可以提高报文的传输效率。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种组网架构的示意图;
图2为本申请实施例提供的一种报文转发方法的流程图;
图3为本申请实施例提供的另一种报文转发方法的流程图;
图4为本申请实施例提供的一种应用场景的示例性示意图;
图5为本申请实施例提供的一种报文转发装置的结构示意图;
图6为本申请实施例提供的另一种报文转发装置的结构示意图;
图7为本申请实施例提供的另一种报文转发装置的结构示意图;
图8为本申请实施例提供的另一种报文转发装置的结构示意图;
图9为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
发明人在研究现有技术时发现:现有技术当由于链路故障而导致堆叠设备中各成员设备之间需要透传大量的报文,且堆叠设备中的第一成员设备接收到多堆叠设备外部发送的报文且对报文进行处理之后,接收第一成员设备转发的报文的第二成员设备需要再次进行处理才能传输至下行交换机,会导致报文传输效率较低。
为提高报文传输效率,本申请实施例中堆叠设备中的各成员设备均为自身的每个接口配置了用于标识接口的VLAN值,与现有技术中将多个接口可以被划分至同一个业务VLAN(即多个接口具有相同的VLAN值)不同,本申请涉及的VLAN值是用于区分接口的,不同的接口具有不同的VLAN值。本申请实施例在各成员设备使能堆叠口时,各成员设备可以将自身堆叠口与用于标识本地各接口的VLAN值绑定,例如:第一成员设备和第二成员设备之间的堆叠口使能时,第一成员设备可将堆叠口与用于标识第一成员设备的各接口的VLAN值绑定,第二成员设备可将堆叠口与用于标识第二成员设备的各接口的VLAN值绑定。
基于交换芯片的转发原理,当通过某接口接收到报文后,会向与该接口的VLAN值相同的其他接口转发该报文,本申请通过上述配置可以实现当一个成员设备通过堆叠口接收到携带VLAN值的报文时,该VLAN值必然与堆叠口绑定,所以交换芯片可将该报文转发至该VLAN值对应的出接口,进而通过该出接口转发报文。
基于上述配置,本申请实施例在第一成员设备接收到第一报文后,当确定发送该报文的出接口位于第二成员设备时,可获取与出接口绑定的第一VLAN值以及与堆叠口绑定的第二VLAN值,并将第一VLAN值和第二VLAN值封装至第一报文的报文头,得到第一封装报文,然后依据第二VLAN值,将第一封装报文传输至堆叠口,再删除第一封装报文中包括的第二VLAN值,得到第二封装报文,将第二封装报文通过堆叠口发送第二至成员设备,进而第二成员设备可通过第二封装报文包括的第一VLAN值确定出接口,即可删除第一VLAN值,通过出接口转发第一报文,由于第二成员设备接收到的第二封装报文包括第一VLAN值,第二成员设备可直接通过交换芯片的第一VLAN值对应的出接口转发报文,由于交换芯片是硬件转发,不会将该报文上送到设备的CPU,所以第二成员设备就无需对该报文进行处理,而是直接进行转发,可以提高报文的传输效率。
以下通过具体实施例对本申请实施例提供的报文转发的方法进行说明。
本申请实施例可以应用于具有堆叠设备的组网环境,堆叠设备的各成员设备之间可以通过堆叠口透传报文。
其中,堆叠设备中的各成员设备均为具有报文透传功能的设备,例如可以为防火墙、交换机或路由器等设备。
以图1所示的应用场景为例,当堆叠设备中链路发生故障时,报文的传输情况至少包括以下两种情况:
情况一:链路2故障,或者链路3故障,或者链路2和链路3均故障,上行交换机通过链路1将报文发送至成员设备1后,成员设备1将报文透传至成员设备2,成员设备2通过链路4将报文发送给下行交换机。
情况二:链路1故障,或者链路4故障,或者链路1和链路4均故障,上行交换机通过链路2将报文发送至成员设备2后,成员设备2将报文透传至成员设备1,成员设备1通过链路3将报文发送给下行交换机。
结合图1,本申请实施例提供一种报文转发的方法,该方法应用于堆叠设备中的第一成员设备,堆叠设备还包括与第一成员设备通过堆叠口连接的第二成员设备,第一成员设备可以是图1中的成员设备1或成员设备2,相应的,第二成员设备则是图1中的成员设备2或成员设备1。以下以成员设备1为第一成员设备、成员设备2为第二成员设备为例进行说明。如图2所示,该方法具体如下所示。
S201、第一成员设备接收第一报文,当确定堆叠设备发送第一报文的出接口位于第二成员设备时,获取与出接口绑定的第一VLAN值以及与堆叠口绑定的第二VLAN值,并将第一VLAN值和第二VLAN值封装至第一报文的报文头,得到第一封装报文。
在***初始化过程中,第一成员设备分别为自身每个接口配置了一个用于标识接口的VLAN值,同样地,第二成员设备也分别为自身每个接口配置了一个用于标识接口的VLAN值。
示例性地,若第一成员设备的交换芯片上有8个接口,则可配置这8个接口的VLAN值分别为1至8。同样,若第二成员设备的交换芯片上有8个接口,也可配置这8个接口的VLAN值分别为1至8。上述配置仅为示例,在实际实施时,各接口的VLAN值的配置不限于此,配置原则为每个成员设备为自身的每个接口配置不同的VLAN值。此外,在***初始化时,还可以为各成员设备的接口配置逻辑索引值,以通过该逻辑索引值方便寻找对应的接口。
第一成员设备包括硬件层、驱动层和平台层,硬件层即为第一成员设备的交换芯片,交换芯片接收到第一报文后,可将第一报文上送至驱动层,驱动层再将第一报文上送至平台层,平台层中的业务模块可对第一报文进行识别及处理,当业务模块确定第一报文的出接口位于第二成员设备时,第一成员设备可获取与出接口绑定的第一VLAN值以及与堆叠口绑定的第二VLAN值。
其中,由于堆叠设备中各成员设备的接口状态、接口标识(例如该接口的逻辑索引值)、转发表和路由表等信息是互相同步的,因此可以实现在第一成员设备可以根据存储的上述信息确定第一报文的出接口在哪台成员设备上。可选的,业务模块可根据转发表项确定用于发送第一报文的出接口的接口号,或者根据负载均衡策略确定用于发送第一报文的出接口的接口号,对于确定第一报文的出接口的方式,本申请不作限制。
具体地,在第一成员设备和第二成员设备之间的堆叠口使能时,第一成员设备和第二成员设备之间可互相同步自身的各接口的接口信息,接口信息包括接口状态、接口号以及接口号对应的逻辑索引值。
第一成员设备可根据第二成员设备的接口号计算第二成员设备的各接口的VLAN值,第一成员设备计算第二成员设备的各接口的VLAN值的方法,与第二成员设备配置自身的各接口的VLAN值的方法相同。
作为一个例子,接口号可由slot(槽位号)、subslot(子槽位号)、port(接口序号)三部分组成,接口号对应的VLAN值可以为:
VLAN=slot*28+subslot*24+port+stratIndex
其中,StartIndex为预设的起始索引值。
当然本申请实施例中的VLAN值的计算方式不限于此,其他可以实现为不同接口生成不同VLAN值的方法也可以应用于本实施例中。
通过上述计算,第一成员设备可确定第二成员设备的接口号-VLAN值或接口号-逻辑索引值-VLAN值之间的对应关系。
所以,第一成员设备可根据第二成员设备的各接口接口号的与逻辑索引值的对应关系,获取出接口的接口号对应的目标逻辑索引值,查找目标逻辑索引值对应的用于标识出接口的第一VLAN值。
第一成员设备的平台层的业务模块确定出接口的接口号后,可根据接口号与逻辑索引值的对应关系,确定出接口的接口号对应的目标逻辑索引值,然后将目标逻辑索引值下发给驱动层,驱动层可根据逻辑索引值和VLAN值的对应关系,查找目标逻辑索引值对应的用于标识出接口的第一VLAN值。
另外,驱动层还可确定第一成员设备上作为堆叠口的目标接口,获取用于标识目标接口的第二VLAN值。
例如,若出接口为第二成员设备的接口1,可确定第一VLAN值为1,若第一成员设备上作为堆叠口的目标接口为接口3,则可确定第二VLAN值为3。
第一成员设备的驱动层可将第一VLAN值和第二VLAN值封装在第一报文的二层报文头中,封装之后得到的第一封装报文的格式可以为“[目的MAC地址][源MAC地址][第二VLAN值][第一VLAN值][协议类型][数据部分]”。
可选地,若第一成员设备确定第一报文需经由本地设备传输,则转发第一报文至下行交换机。
S202、第一成员设备依据第二VLAN值,确定用于传输第一封装报文的堆叠口。
在第一成员设备的驱动层得到第一封装报文后,可将第一封装报文传输至交换芯片,交换芯片可识别第一封装报文中最外层的VLAN值,即第二VLAN值,交换芯片可确定第二VLAN值为自身的堆叠口的VLAN值,进而确定可通过该堆叠口传输第一封装报文。
S203、第一成员设备删除第一封装报文包括的第二VLAN值,得到第二封装报文,将第二封装报文通过堆叠口发送至第二成员设备,以使第二成员设备通过第一VLAN值确定出接口,删除第二封装报文包括的第一VLAN值,得到第一报文,转发第一报文。
具体地,在第一成员设备的交换芯片确定可使用堆叠口传输第一封装报文后,可将第一封装报文中的第二VLAN值删除,此时得到的第二封装报文的格式可以为“[目的MAC地址][源MAC地址][第一VLAN值][协议类型][数据部分]”。
然后第一成员设备的交换芯片可通过堆叠口将第二封装报文发送至第二成员设备,第二成员设备的交换芯片通过堆叠口接收到第二封装报文后,可识别到第二封装报文中包括的第一VLAN值,由于第二成员设备的堆叠口与用于标识第二成员设备的各接口的VLAN值绑定,所以第二成员设备的交换芯片可确定第一VLAN值为堆叠口绑定的VLAN值,进而第二成员设备的交换芯片可确定该第二封装报文的出接口为第一VLAN值对应的出接口,则第二成员设备的交换芯片可删除第二封装报文包括的第一VLAN值,得到第一报文,通过出接口转发第一报文。
需要说明的是,由于第二成员设备的交换芯片确定第二封装报文中携带的第一VLAN值与堆叠口绑定,所以交换芯片可通过第一VLAN值对应的出接口转发第一报文,无需将第二封装报文上送至第二成员设备的驱动层以及平台层,只需在交换芯片硬件层面进行转发。
当第一成员设备使能堆叠口时,可将堆叠口与用于标识第一成员设备的各接口的VLAN值绑定。这样若第一成员设备通过堆叠口接收到携带VLAN值的报文时,若第一成员设备的交换芯片确定该VLAN值与堆叠口绑定,可通过该VLAN值对应的接口转发报文。
相应的,当第一成员设备删除堆叠口时,第一成员设备可解除堆叠口与第二成员设备的各接口的VLAN值之间的绑定关系。
同理,当第二成员设备使能堆叠口时,可将堆叠口与用于标识第二成员设备的各接口的VLAN值绑定。当第二成员设备删除堆叠口时,可解除堆叠口与用于标识第一成员设备各接口的VLAN值之间的绑定关系。
本申请实施例提供的报文转发方法,在第一成员设备接收第一报文后,若确定堆叠设备发送第一报文的出接口位于第二成员设备时,可获取与出接口绑定的第一VLAN值以及与堆叠口绑定的第二VLAN值,并将第一VLAN值和第二VLAN值封装至第一报文的报文头,得到第一封装报文,这样就可以使得第一成员设备通过第二VLAN值对应的堆叠口传输第二封装报文,第二成员设备接收到携带第一VLAN值的第二封装报文后,第二成员设备的交换芯片可直接根据第一VLAN值确定出接口,并通过出接口转发第一报文,这样就实现了第二成员设备直接通过交换芯片对应的硬件层对报文进行转发,无需识别报文的具体内容并对报文进行处理,可以提高报文的传输效率。
可以理解的是,若上述第二成员设备接收到第二报文,确定堆叠设备发送第二报文的出接口位于第一成员设备时,也可获取与出接口绑定的第三VLAN值以及与堆叠口绑定的第四VLAN值,并将第三VLAN值和第四VLAN值封装至第二报文的报文头,得到第三封装报文。
例如,第三封装报文的格式可以为“[目的MAC地址][源MAC地址][第四VLAN值][第三VLAN值][协议类型][数据部分]”
然后第二成员设备可依据第四VLAN值确定用于传输第三封装报文的堆叠口。
然后删除第三封装报文包括的第四VLAN值,得到第四封装报文。
例如,第四封装报文的格式可以为“[目的MAC地址][源MAC地址][第三VLAN值][协议类型][数据部分]”
第二成员设备可通过堆叠口将第四封装报文发送至第一成员设备,进而第一成员设备通过第三VLAN值确定出接口,删除第四封装报文包括的第三VLAN值,得到第二报文,转发第二报文。
对应于图2所示的实施例,本申请实施例还提供一种报文转发方法,该方法应用于堆叠设备中的第二成员设备,堆叠设备还包括与第二堆叠设备通过堆叠口连接的第一成员设备,第一成员设备可以是图1中的成员设备1或成员设备2,相应的,第二成员设备则是图1中的成员设备2或成员设备1。以下以成员设备1为第一成员设备、成员设备2为第二成员设备为例进行说明。如图3所示,该方法具体如下所示。
S301、第二成员设备通过堆叠口接收第一成员设备发送的第二封装报文,第二封装报文包括第一VLAN值。
可选地,第二成员设备可分别为自身的每个接口配置一个用于标识接口的VLAN值。第二成员设备接收到的第二封装报文中包括的第一VLAN值为用于标识第二成员设备的其中一个接口的VLAN值。
S302、第二成员设备判断与堆叠口绑定的VLAN值中是否包括第一VLAN值。
当使能堆叠口时,第二成员设备会将堆叠口与用于标识第二成员设备的各接口的VLAN值绑定。相应的,当删除堆叠口时,第二成员设备会解除堆叠口与用于标识第二成员设备各接口的VLAN值之间的绑定关系。
所以,若第一VLAN值为用于标识第二成员设备的接口的VLAN值,第二成员设备可确定与堆叠口绑定的VLAN值中包括第一VLAN值。
S303、若与堆叠口绑定的VLAN值中包括第一VLAN值,则通过第一VLAN值确定出接口,并删除第二封装报文包括的第一VLAN值,得到第一报文。
其中,第二成员设备可根据接口号与VLAN值的对应关系,确定第一VLAN值对应的出接口,第二成员设备确定自身的交换芯片上用于传输报文的出接口后,即可将第二封装报文中的第一VLAN值删除。
S304、第二成员设备通过出接口转发第一报文。
可以理解的,第二成员设备的交换芯片可通过自身的出接口转发第一报文。
采用本申请实施例提供的报文转发方法,第二成员设备通过堆叠口接收的第一成员设备发送的第二封装报文后,若确定与堆叠口绑定的VLAN值中存在第一VLAN值,则可确定第一VLAN值对应的出接口,并删除第二封装报文包括的第一VLAN值,得到第一报文,通过出接口转发第一报文,可见由于第二成员设备通过堆叠口接收的第二封装报文中心携带了第二VLAN值,所以第二成员设备就无需对第二封装报文进行业务上的处理,只需经由交换芯片的出接口对报文进行转发,可以提高报文的传输效率。
可选地,本申请实施例也可应用于堆叠设备包括两个及以上成员设备的场景,堆叠设备中可包括第一成员设备和至少一个第二成员设备,其中第一成员设备为用于接收外部设备发送的报文的设备,第二成员设备为向外部设备发送报文的设备,或者第二成员设备为除第一成员设备与向外部设备发送报文的设备之外的成员设备。其中,这里的外部设备是指除构成堆叠设备的成员设备之外的设备。以图4为例,假设成员设备1为外部设备发送的报文的设备,成员设备3为向外部设备发送报文的设备,则成员设备1为第一成员设备,成员设备2和3均为第二成员设备。
基于上述场景,本申请实施例还提供一种报文转发方法,应用于堆叠设备中的第一成员设备,该方法具体包括以下步骤:
步骤一、接收第一报文,当确定堆叠设备发送所述第一报文的出接口未位于本成员设备时,确定将第一报文发送至出接口的传输路径,传输路径包括依次经过的第二成员设备。
第一成员设备接收到第一报文后,若确定自身用于向外部设备转发第一报文的链路故障,则可确定堆叠设备中其他成员设备用于连接外部设备的出接口的状态。由于采用堆叠技术之后,堆叠设备中的各成员设备将作为一台设备使用,第一成员设备可获取堆叠设备中其他各成员设备的接口信息以及接口状态。
若第一成员设备确定通过自身的堆叠口连接的第二成员设备的出接口可用,则可确定传输路径为第一成员设备-连接于第一成员设备的第二成员设备。以图4为例,假设成员设备2与下行交换机连接的接口(即出接口)可用,则成员设备1可以确定传输路径为成员设备1→成员设备2→下行交换机。
若确定与第一成员设备的堆叠口相连的第二成员设备的出接口不可用,则可确定与该第二成员设备通过堆叠口相连的另一个第二成员设备的出接口是否可用。若可用,则可确定传输路径为第一成员设备-连接于第一成员设备的第一个第二成员设备-连接于第一个第二成员设备的第二个第二成员设备。以图4为例,假设成员设备2与下行交换机连接的接口(即出接口)不可用,成员设备3与下午交换机连接的接口(即出接口)可用,则成员设备1可以确定传输路径为成员设备1→成员设备2→成员设备3→下行交换机。
步骤二、获取与所述出接口绑定的第一VLAN值以及与各成员设备发送报文的堆叠口绑定的第二VLAN值,并将所述第一VLAN值和各第二VLAN值按照传输路径封装至所述第一报文的报文头,得到第一封装报文。
其中,第一VLAN值为传输路径中最后一个成员设备连接于外部设备的出接口的VLAN值。
将第一VLAN值和各第二VLAN值按照传输路径封装至第一报文的报文头之后,得到的第一封装报文中最外层的VLAN值为第一成员设备的堆叠口的第二VLAN值,最内层VLAN值为第一VLAN值。
例如,若传输路径为第一成员设备-连接于第一成员设备的第一个第二成员设备-连接于第一个第二成员设备的第二个第二成员设备。则第一封装报文从外到内封装的VLAN值依次为:第一成员设备的堆叠口的第二VLAN值、第一个第二成员设备上用于连接第二个第二成员设备的堆叠口的第二VLAN值,第二个第二成员设备的出接口的第一VLAN值。
以图4为例,假设成员设备2与下行交换机连接的接口(即出接口)不可用,成员设备3与下午交换机连接的接口(即出接口)可用,则成员设备1可以确定传输路径为成员设备1→成员设备2→成员设备3→下行交换机,那么第一VLAN值为成员设备3的出接口的VLAN值1,各第二VLAN值分别为成员设备1的堆叠口1的VLAN值3、成员设备2的堆叠口2的VLAN值2。假设第一报文的格式为“[目的MAC地址][源MAC地址][协议类型][数据部分]”,将各VLAN值按照传输路径封装到第一报文的报文头,得到的第一封装报文的格式为“[目的MAC地址][源MAC地址][VLAN值3][VLAN值2][VLAN值1][协议类型][数据部分]”。
步骤三、依据第一封装报文中的第一个第二VLAN值,确定第一成员设备用于与传输路径中的第一个第二成员设备连接的第一堆叠口。
其中,第一个第二VLAN值为第一封装报文的最外层的VLAN值。
步骤四、删除第一封装报文包括的第一个第二VLAN值,得到第二封装报文,将第二封装报文通过第一堆叠口发送至传输路径中的第一个第二成员设备。
其中,第一个第二成员设备接收到第二封装报文后,可根据第二封装报文中最外层的VLAN值确定传输报文的接口,并将第二封装报文中最外层的VLAN值删除,然后通过确定的接口传输报文。
可以理解的是,若第一个第二成员设备不是传输路径中的最后一个成员设备,则确定的传输报文的接口为连接于第二个第二成员设备的堆叠口,在将第二封装报文中最外层的VLAN值删除后,可通过堆叠口将报文传输至第二个第二成员设备。若第一个第二成员设备是传输路径中的最后一个成员设备,则确定的传输报文的接口为出接口。
在堆叠设备包括两个以上成员设备的场景中,与上一实施例对应,本申请实施例还提供一种报文转发方法,应用于堆叠设备中的第二成员设备,该方法具体包括以下步骤:
步骤一、通过本地第一堆叠口接收第三封装报文。第三封装报文包括第一VLAN值以及与传输路径中各成员设备发送报文的堆叠口绑定的第二VLAN值,第一VLAN值与传输路径中最后接收报文的成员设备的出接口绑定。该出接口可以连接外部设备。
其中,第三封装报文中的最外层的VLAN值为所述第二成员设备上,用于连接下一成员设备的堆叠口的VLAN值。第三封装报文中的最内层VLAN值为第一VLAN值。本地第一堆叠口与传输路径中上一成员设备连接。以图4所示组网为例,假设第二成员设备为成员设备2,则本地第一堆叠口为成员设备2上与成员设备1上堆叠口1连接的堆叠口。
步骤二、依据第三封装报文包括的第一个第二VLAN值,确定第二成员设备用于与传输路径中下一成员设备连接的第二堆叠口。以图4所示组网为例,假设第二成员设备为成员设备2,则第二堆叠口为成员设备2上与成员设备3上堆叠口连接的堆叠口2。
其中,第一个第二VLAN值是指第三封装报文中最外层的第二VLAN值。
步骤三、删除第三封装报文包括的第一个第二VLAN值,得到第四封装报文,将第四封装报文通过第二堆叠口发送至传输路径中的下一成员设备,以使传输路径中的下一成员设备依据第四封装报文中第一个第二VLAN值或第一VLAN值传输第四封装报文。
其中,若传输路径中的下一成员设备为传输路径中的最后一个成员设备,则第四封装报文中只包括第一VLAN值,该成员设备接收到第四封装报文后,可根据第一VLAN值确定出接口,并删除第四封装报文中的第一VLAN值,得到第一报文,通过该出接口转发第一报文。此过程可以具体参阅图3涉及的相关实施例说明。
若传输路径中的下一成员设备不是传输路径中的最后一个成员设备,则该成员设备可根据第四封装报文中最外层的第二VLAN值确定堆叠口,并删除第四封装报文中最外层的第二VLAN值,得到第五封装报文,通过堆叠口将第五封装报文传输至与自身相连的下一成员设备。
后续传输路径中的每个成员设备接收到封装报文后,若该成员设备不为传输路径中的最后一个成员设备,可按照上述方法根据封装报文中最外层的VLAN值来传输报文,直至通过传输路径中的最后一个成员设备的出接口将报文传输至外部设备。若该成员设备为传输路径中的最后一个成员设备,报文处理过程可以具体参阅图3涉及的相关实施例说明。
需要说明的是,在堆叠设备包括两个以上成员设备的场景中,堆叠设备中的各成员设备均分别为自身的每个接口配置一个用于标识接口的VLAN值,上述实施例中涉及的第一VLAN值和第二VLAN值均为用于标识接口的VLAN值。
在成员设备的堆叠口使能时,各成员设备均将自身的堆叠口与用于标识自身各接口的VLAN值绑定。相应的,若某成员设备删除自身的堆叠口时,则解除自身的堆叠口与用于标识本成员设备各接口的VLAN值之间的绑定关系。
以下结合具体例子进行说明,图4所示,以堆叠设备包括三个成员设备为例,若成员设备1与下行交换机之间的链路故障,成员设备2与上行交换机、与下行交换机之间的链路均故障,在这种场景下,成员设备1接收到上行交换机发送的报文(以报文1为例)后,可通过堆叠口1将报文1发送给成员设备2,然后成员设备2通过堆叠口2将报文1发送给成员设备3,然后成员设备3将报文发送给下行交换机。
为了避免成员设备2和成员设备3接收到报文1后不对报文1进行业务层面的处理,本申请实施例可以采用以下方法对报文1进行传输。
首先,成员设备1、成员设备2和成员设备3分别为自身的每个接口配置了用于标识接口的VLAN值。在成员设备1、2使能堆叠口1和成员设备2、3使能堆叠口2时,成员设备1将自身的各接口对应的VLAN值与堆叠口1绑定,成员设备2将自身的各接口对应的VLAN值与堆叠口1和堆叠口2绑定,成员设备3将自身的各接口对应的VLAN值与堆叠口2绑定。且成员设备1、成员设备2和成员设备3之间互相同步接口号、逻辑索引值之间的对应关系。且由于各成员设备依据接口号计算VLAN值的方式相同,因此各成员设备可以依据同步的接口号计算除本成员设备之外的其他成员设备中各接口的VLAN值,故各成员设备可以确定除本成员设备之外的其他成员设备的“接口号-VLAN值或接口号-逻辑索引值-VLAN值之间的对应关系”。
在堆叠口1和堆叠口2均使能的情况下,若成员设备1接收到上行交换机发送的报文1后,若确定堆叠设备发送报文1的出接口位于成员设备3,则获取与位于成员设备3的出接口绑定的VLAN值1,与成员设备2的堆叠口2绑定的VLAN值2,以及与成员设备1的堆叠口1绑定的VLAN值3,然后将VLAN值1、VLAN值2、VLAN值3封装至报文1的报文头,得到封装报文A,封装报文A的格式为“[目的MAC地址][源MAC地址][VLAN值3][VLAN值2][VLAN值1][协议类型][数据部分]”。
成员设备1的交换芯片可根据封装报文A中的VLAN值3将封装报文A传输至堆叠口1,并删除封装报文A中的VLAN值3,得到封装报文B,封装报文B的格式为“[目的MAC地址][源MAC地址][VLAN值2][VLAN值1][协议类型][数据部分]”。
然后成员设备1的交换芯片可通过堆叠口1将封装报文B发送至成员设备2,成员设备2的交换芯片通过堆叠口1接收到封装报文B后,可确定与堆叠口1绑定的VLAN值中包括封装报文B中的VLAN值2,进而确定VLAN值2对应的接口(即堆叠口2),并删除封装报文B中的VLAN值2,得到封装报文C,封装报文C的格式为“[目的MAC地址][源MAC地址][VLAN值1][协议类型][数据部分]”。
然后成员设备2的交换芯片可通过堆叠口2将封装报文C透传至成员设备3,成员设备3的交换芯片通过堆叠口2接收到封装报文C后,可确定与堆叠口2绑定的VLAN值中包括封装报文C中的VLAN值1,进而确定VLAN值1对应的出接口为连接于下行交换机的出接口,删除封装报文C中的VLAN值1,可得到报文1,并通过VLAN值1对应的出接口将报文1转发至下行交换机。
上述报文传输过程中,成员设备2和成员设备3只通过各自的交换芯片对报文进行传输,即只涉及到了硬件层面的传输,成员设备2和成员设备3并未对报文进行业务层面的处理,可以提高报文传输效率。
对应于上述方法实施例,本申请实施例还提供一种报文转发装置,应用于堆叠设备中的第一成员设备,堆叠设备还包括与第一成员设备通过堆叠口连接的第二成员设备,如图5所示,该装置包括:接收模块501、获取模块502、封装模块503、传输模块504。
接收模块501,用于接收第一报文;
获取模块502,用于当确定堆叠设备发送第一报文的出接口位于第二成员设备时,获取与出接口绑定的第一VLAN值以及与堆叠口绑定的第二VLAN值;
封装模块503,用于将获取模块502获取的第一VLAN值和第二VLAN值封装至第一报文的报文头,得到第一封装报文;
传输模块504,用于依据第二VLAN值,将确定用于传输所述第一封装报文的所述堆叠口;
封装模块503,还用于删除第一封装报文包括的第二VLAN值,得到第二封装报文;
传输模块504,还用于将第二封装报文通过堆叠口发送至第二成员设备,以使第二成员设备通过第一VLAN值确定出接口,删除第二封装报文包括的第一VLAN值,得到第一报文,转发第一报文。
可选地,该装置还包括:配置模块。
配置模块,用于分别为本成员设备的的每个接口配置一个用于标识接口的VLAN值。
可选地,该装置还包括:绑定模块。
绑定模块,用于当使能堆叠口时,将堆叠口与用于标识本成员设备的各接口的VLAN值绑定;和/或
当删除堆叠口时,解除堆叠口与用于标识本成员设备的各接口的VLAN值之间的绑定关系。
可选地,获取模块502,具体用于:
根据存储的第二成员设备的各接口的接口号与逻辑索引值的对应关系,获取出接口的接口号对应的目标逻辑索引值,查找目标逻辑索引值对应的用于标识出接口的第一VLAN值;
确定第一成员设备上作为堆叠口或所述第二成员设备上作为所述第一堆叠口的目标接口,获取用于标识目标接口的第二VLAN值。
对应于上述方法实施例,本申请实施例还提供另一种报文转发装置,应用于堆叠设备中的第二成员设备,如图6所示,该装置包括:接收模块601、判断模块602、删除模块603、传输模块604。
接收模块601,用于通过堆叠口接收第二封装报文,第二封装报文包括第一VLAN值;
判断模块602,用于判断与堆叠口绑定的VLAN值中是否包括第一VLAN值;
删除模块603,用于若判断模块602的判断结果为是,则通过第一VLAN值确定出接口,并删除第二封装报文包括的第一VLAN值,得到第一报文;
传输模块604,用于通过出接口转发第一报文。
可选地,该装置还包括:配置模块。
配置模块,用于分别为本成员设备的每个接口配置一个用于标识接口的VLAN值。
可选地,该装置还包括:绑定模块。
绑定模块,用于当使能堆叠口时,将堆叠口与用于标识本成员设备各接口的VLAN值绑定;
当删除堆叠口时,解除堆叠口与用于标识本成员设备各接口的VLAN值之间的绑定关系。
在堆叠设备包括两个以上成员设备的场景下,本申请实施例还提供另一种报文转发装置,应用于堆叠设备中的第一成员设备,如图7所示,该装置包括:接收模块701、确定模块702、获取模块703封装模块704、发送模块705。
接收模块701,用于接收第一报文;
确定模块702,用于当确定堆叠设备发送第一报文的出接口未位于本成员设备时,确定将第一报文发送至出接口的传输路径,传输路径包括依次经过的第二成员设备;
获取模块703,用于获取与出接口绑定的第一VLAN值以及与各成员设备发送报文的堆叠口绑定的第二VLAN值;
封装模块704,用于将第一VLAN值和各第二VLAN值按照传输路径封装至第一报文的报文头,得到第一封装报文;
确定模块702,还用于依据第一封装报文中的第一个第二VLAN值,确定第一成员设备用于与传输路径中的第一个第二成员设备连接的第一堆叠口;
封装模块704,还用于删除第一封装报文包括的第一个第二VLAN值,得到第二封装报文;
发送模块705,用于将第二封装报文通过第一堆叠口发送至第一个第二成员设备。
在堆叠设备包括两个以上成员设备的场景下,本申请实施例还提供另一种报文转发装置,应用于堆叠设备中的第二成员设备,所述如图8所示,该装置包括:接收模块801、确定模块802、封装模块803和发送模块804。
接收模块801,用于通过本地第一堆叠口接收第三封装报文,第三封装报文包括第一VLAN值以及与传输路径中各成员设备发送报文的堆叠口绑定的第二VLAN值,第一VLAN值与传输路径中最后接收报文的成员设备的出接口绑定;
确定模块802,用于依据第三封装报文包括的第一个第二VLAN值,确定第二成员设备用于与传输路径中下一成员设备连接的第二堆叠口;
封装模块803,用于删除第三封装报文包括的第一个第二VLAN值,得到第四封装报文;
发送模块804,用于将第四封装报文通过第二堆叠口发送至传输路径中的下一成员设备,以使传输路径中的下一成员设备依据第四封装报文中第一个第二VLAN值或第一VLAN值传输第四封装报文。
本申请实施例还提供了一种电子设备,该电子设备可以为上述实施例中的第一成员设备或第二成员设备,如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,
存储器903,用于存放计算机程序;
处理器901,用于执行存储器903上所存放的程序时,实现上述方法实施例中由第一成员设备或第二成员设备执行的步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一报文转发方法的步骤。
在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一报文转发方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。
Claims (13)
1.一种报文转发方法,其特征在于,应用于堆叠设备中的第一成员设备,所述堆叠设备还包括与所述第一成员设备通过堆叠口连接的第二成员设备,所述方法包括:
所述第一成员设备接收第一报文,当确定所述堆叠设备发送所述第一报文的出接口位于所述第二成员设备时,获取与所述出接口绑定的第一VLAN值以及与所述堆叠口绑定的第二VLAN值,并将所述第一VLAN值和所述第二VLAN值封装至所述第一报文的报文头,得到第一封装报文;
依据所述第二VLAN值,确定用于传输所述第一封装报文的所述堆叠口;
删除所述第一封装报文包括的第二VLAN值,得到第二封装报文,将所述第二封装报文通过所述堆叠口发送至所述第二成员设备,以使所述第二成员设备通过所述第一VLAN值确定所述出接口,删除所述第二封装报文包括的所述第一VLAN值,得到所述第一报文,转发所述第一报文。
2.一种报文转发方法,其特征在于,应用于堆叠设备中的第一成员设备,所述方法包括:
接收第一报文,当确定所述堆叠设备发送所述第一报文的出接口未位于本成员设备时,确定将所述第一报文发送至所述出接口的传输路径,所述传输路径包括依次经过的第二成员设备;
获取与所述出接口绑定的第一VLAN值以及与各成员设备发送报文的堆叠口绑定的第二VLAN值,并将所述第一VLAN值和各第二VLAN值按照传输路径封装至所述第一报文的报文头,得到第一封装报文;
依据所述第一封装报文中的第一个第二VLAN值,确定所述第一成员设备用于与所述传输路径中的第一个第二成员设备连接的第一堆叠口;
删除所述第一封装报文包括的第一个第二VLAN值,得到第二封装报文,将所述第二封装报文通过所述第一堆叠口发送至所述第一个第二成员设备。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述第一成员设备分别为自身的每个接口配置一个用于标识接口的VLAN值。
4.根据权利要求1所述的方法,其特征在于,所述第一VLAN值以及第二VLAN值通过以下方式获取:
当使能本成员设备的堆叠口时,将所述本成员设备的堆叠口与用于标识所述本成员设备各接口的VLAN值绑定;和/或
当删除所述本成员设备的堆叠口时,解除所述本成员设备的堆叠口与用于标识所述本成员设备各接口的VLAN值之间的绑定关系;
根据存储的所述第二成员设备的各接口的接口号与逻辑索引值的对应关系,获取所述出接口的接口号对应的目标逻辑索引值,查找所述目标逻辑索引值对应的用于标识所述出接口的第一VLAN值;
确定所述第一成员设备上作为所述堆叠口或所述第二成员设备上作为所述堆叠口的目标接口,获取用于标识所述目标接口的第二VLAN值。
5.根据权利要求2所述的方法,其特征在于,所述第一VLAN值以及第二VLAN值通过以下方式获取:
当使能本成员设备的堆叠口时,将所述本成员设备的堆叠口与用于标识所述本成员设备各接口的VLAN值绑定;和/或
当删除所述本成员设备的堆叠口时,解除所述本成员设备的堆叠口与用于标识所述本成员设备各接口的VLAN值之间的绑定关系;
根据存储的所述第二成员设备的各接口的接口号与逻辑索引值的对应关系,获取所述出接口的接口号对应的目标逻辑索引值,查找所述目标逻辑索引值对应的用于标识所述出接口的第一VLAN值;
确定所述第一成员设备上作为所述第一堆叠口或所述第二成员设备上作为所述第一堆叠口的目标接口,获取用于标识所述目标接口的第二VLAN值。
6.一种报文转发方法,其特征在于,应用于堆叠设备中的第二成员设备,所述方法包括:
通过堆叠口接收第二封装报文,所述第二封装报文包括第一VLAN值;
判断与所述堆叠口绑定的VLAN值中是否包括所述第一VLAN值;
若是,则通过所述第一VLAN值确定出接口,并删除所述第二封装报文包括的所述第一VLAN值,得到第一报文;
通过所述出接口转发所述第一报文。
7.一种报文转发方法,其特征在于,应用于堆叠设备中的第二成员设备,所述方法包括:
通过本地第一堆叠口接收第三封装报文,所述第三封装报文包括第一VLAN值以及与传输路径中各成员设备发送报文的堆叠口绑定的第二VLAN值,所述第一VLAN值与传输路径中最后接收报文的成员设备的出接口绑定;
依据所述第三封装报文包括的第一个第二VLAN值,确定所述第二成员设备用于与传输路径中下一成员设备连接的第二堆叠口;
删除所述第三封装报文包括的第一个第二VLAN值,得到第四封装报文,将所述第四封装报文通过所述第二堆叠口发送至所述传输路径中的下一成员设备,以使所述传输路径中的下一成员设备依据所述第四封装报文中第一个第二VLAN值或第一VLAN值传输所述第四封装报文。
8.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
所述第二成员设备分别为自身的每个接口配置一个用于标识接口的VLAN值。
9.根据权利要求6或7所述的方法,其特征在于,所述方法还包括:
当使能本成员设备的堆叠口时,将所述本成员设备的堆叠口与用于标识所述本成员设备各接口的VLAN值绑定;
当删除所述本成员设备的堆叠口时,解除所述本成员设备的堆叠口与用于标识所述本成员设备各接口的VLAN值之间的绑定关系。
10.一种报文转发装置,其特征在于,应用于堆叠设备中的第一成员设备,所述堆叠设备还包括与第一成员设备通过堆叠口连接的第二成员设备,所述装置包括:
接收模块,用于接收第一报文;
获取模块,用于当确定所述堆叠设备发送所述第一报文的出接口位于所述第二成员设备时,获取与所述出接口绑定的第一VLAN值以及与所述堆叠口绑定的第二VLAN值;
封装模块,用于将所述获取模块获取的所述第一VLAN值和所述第二VLAN值封装至所述第一报文的报文头,得到第一封装报文;
传输模块,用于依据所述第二VLAN值,确定用于传输所述第一封装报文的所述堆叠口;
所述封装模块,还用于删除所述第一封装报文包括的第二VLAN值,得到第二封装报文;
所述传输模块,还用于将所述第二封装报文通过所述堆叠口发送至第二成员设备,以使所述第二成员设备通过所述第一VLAN值确定所述出接口,删除所述第二封装报文包括的所述第一VLAN值,得到所述第一报文,转发所述第一报文。
11.一种报文转发装置,其特征在于,应用于堆叠设备中的第二成员设备,所述装置包括:
接收模块,用于通过堆叠口接收第二封装报文,所述第二封装报文包括第一VLAN值;
判断模块,用于判断与所述堆叠口绑定的VLAN值中是否包括所述第一VLAN值;
删除模块,用于若所述判断模块的判断结果为是,则通过所述第一VLAN值确定出接口,并删除所述第二封装报文包括的所述第一VLAN值,得到第一报文;
传输模块,用于通过所述出接口转发所述第一报文。
12.一种报文转发装置,其特征在于,应用于堆叠设备中的第一成员设备,所述装置包括:
接收模块,用于接收第一报文;
确定模块,用于当确定所述堆叠设备发送所述第一报文的出接口未位于本成员设备时,确定将所述第一报文发送至所述出接口的传输路径,所述传输路径包括依次经过的第二成员设备;
获取模块,用于获取与所述出接口绑定的第一VLAN值以及与各成员设备发送报文的堆叠口绑定的第二VLAN值;
封装模块,用于将所述第一VLAN值和各第二VLAN值按照传输路径封装至所述第一报文的报文头,得到第一封装报文;
所述确定模块,还用于依据所述第一封装报文中的第一个第二VLAN值,确定所述第一成员设备用于与所述传输路径中的第一个第二成员设备连接的第一堆叠口;
所述封装模块,还用于删除所述第一封装报文包括的第一个第二VLAN值,得到第二封装报文;
发送模块,用于将所述第二封装报文通过所述第一堆叠口发送至第一个第二成员设备。
13.一种报文转发装置,其特征在于,应用于堆叠设备中的第二成员设备,所述装置包括:
接收模块,用于通过本地第一堆叠口接收第三封装报文,所述第三封装报文包括第一VLAN值以及与传输路径中各成员设备发送报文的堆叠口绑定的第二VLAN值,所述第一VLAN值与传输路径中最后接收报文的成员设备的出接口绑定;
确定模块,用于依据所述第三封装报文包括的第一个第二VLAN值,确定所述第二成员设备用于与传输路径中下一成员设备连接的第二堆叠口;
封装模块,用于删除所述第三封装报文包括的第一个第二VLAN值,得到第四封装报文;
发送模块,用于将所述第四封装报文通过所述第二堆叠口发送至所述传输路径中的下一成员设备,以使所述传输路径中的下一成员设备依据所述第四封装报文中第一个第二VLAN值或第一VLAN值传输所述第四封装报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811442790.3A CN109587027B (zh) | 2018-11-29 | 2018-11-29 | 一种报文转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811442790.3A CN109587027B (zh) | 2018-11-29 | 2018-11-29 | 一种报文转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109587027A CN109587027A (zh) | 2019-04-05 |
CN109587027B true CN109587027B (zh) | 2021-05-25 |
Family
ID=65925250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811442790.3A Active CN109587027B (zh) | 2018-11-29 | 2018-11-29 | 一种报文转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109587027B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6934292B1 (en) * | 1999-11-09 | 2005-08-23 | Intel Corporation | Method and system for emulating a single router in a switch stack |
US7093027B1 (en) * | 2002-07-23 | 2006-08-15 | Atrica Israel Ltd. | Fast connection protection in a virtual local area network based stack environment |
CN1866919A (zh) * | 2005-12-06 | 2006-11-22 | 华为技术有限公司 | 基于虚拟局域网堆叠的业务交换方法 |
CN1925456A (zh) * | 2005-09-01 | 2007-03-07 | 中兴通讯股份有限公司 | 多业务堆叠式虚拟局域网实现的***、方法及其应用方法 |
CN103581274A (zh) * | 2012-08-09 | 2014-02-12 | 杭州华三通信技术有限公司 | 一种堆叠***中报文转发方法和装置 |
CN106850385A (zh) * | 2017-01-18 | 2017-06-13 | 盛科网络(苏州)有限公司 | 堆叠***中二层转发表同步的检测方法及装置 |
-
2018
- 2018-11-29 CN CN201811442790.3A patent/CN109587027B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6934292B1 (en) * | 1999-11-09 | 2005-08-23 | Intel Corporation | Method and system for emulating a single router in a switch stack |
US7093027B1 (en) * | 2002-07-23 | 2006-08-15 | Atrica Israel Ltd. | Fast connection protection in a virtual local area network based stack environment |
CN1925456A (zh) * | 2005-09-01 | 2007-03-07 | 中兴通讯股份有限公司 | 多业务堆叠式虚拟局域网实现的***、方法及其应用方法 |
CN1866919A (zh) * | 2005-12-06 | 2006-11-22 | 华为技术有限公司 | 基于虚拟局域网堆叠的业务交换方法 |
CN103581274A (zh) * | 2012-08-09 | 2014-02-12 | 杭州华三通信技术有限公司 | 一种堆叠***中报文转发方法和装置 |
CN106850385A (zh) * | 2017-01-18 | 2017-06-13 | 盛科网络(苏州)有限公司 | 堆叠***中二层转发表同步的检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109587027A (zh) | 2019-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102579059B1 (ko) | 패킷 처리 방법 및 장치, 기기, 그리고 시스템 | |
EP3154227B1 (en) | Packet transmission method, node, path management server and storage medium | |
CN105207873B (zh) | 一种报文处理方法和装置 | |
US10439931B2 (en) | Data packet processing method, service node, and delivery node | |
CN110022264B (zh) | 控制网络拥塞的方法、接入设备和计算机可读存储介质 | |
CN110999265B (zh) | 管理云计算服务端点和虚拟机之间的网络连接性 | |
CN110061914B (zh) | 一种报文转发方法及装置 | |
US10461958B2 (en) | Packet transmission method and apparatus | |
CN112039796B (zh) | 数据包传输方法和装置、存储介质和电子设备 | |
CN112491701B (zh) | 转发报文方法和装置 | |
CN107948077B (zh) | 一种数据报文的转发方法及装置 | |
CN111371634B (zh) | 一种通信方法、装置及*** | |
CN110177010B (zh) | 一种链路切换方法及装置 | |
CN112788060A (zh) | 数据包传输方法和装置、存储介质和电子设备 | |
EP2880550A1 (en) | Connection mesh in mirroring asymmetric clustered multiprocessor systems | |
US11166188B2 (en) | Method for transmitting information, method for receiving information, PDCP entity, and computer storage medium | |
CN109600248B (zh) | 服务质量的确定方法、装置及存储介质 | |
CN112187584B (zh) | 路径故障探测方法、***、服务器及存储介质 | |
CN109587027B (zh) | 一种报文转发方法及装置 | |
CN111464443A (zh) | 基于服务功能链的报文转发方法、装置、设备及存储介质 | |
CN108337182B (zh) | 一种报负载分担方法及网络设备 | |
US20180107504A1 (en) | Setting method for server apparatus and server apparatus | |
CN113709016B (zh) | 通信***以及通信方法、装置、设备和存储介质 | |
CN112840623B (zh) | 数据报文传输方法及节点 | |
CN115361337B (zh) | 一种基于通信路由和星型网络的通信方法及*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |