CN116781453A - 报文隔离方法及装置 - Google Patents

报文隔离方法及装置 Download PDF

Info

Publication number
CN116781453A
CN116781453A CN202210241418.6A CN202210241418A CN116781453A CN 116781453 A CN116781453 A CN 116781453A CN 202210241418 A CN202210241418 A CN 202210241418A CN 116781453 A CN116781453 A CN 116781453A
Authority
CN
China
Prior art keywords
message
tunnel
port
network device
vxlan
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.)
Pending
Application number
CN202210241418.6A
Other languages
English (en)
Inventor
殷拔群
徐国梁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202210241418.6A priority Critical patent/CN116781453A/zh
Publication of CN116781453A publication Critical patent/CN116781453A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • H04L45/245Link aggregation, e.g. trunking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供一种报文隔离方法及装置,涉及通信领域,能够解决跨设备链路聚合组M‑LAG场景下报文转发形成流量环路从而造成资源利用率低的问题,可应用于M‑LAG中。该方法包括:M‑LAG中的第一网络设备接收来自该M‑LAG的第二网络设备的报文。该第一网络设备根据隧道指示信息确定该报文来自于VXLAN旁路隧道,该隧道指示信息根据该报文确定。当该报文的出端口为M‑LAG的成员端口时,该第一网络设备丢弃该报文。

Description

报文隔离方法及装置
技术领域
本申请涉及通信领域,尤其涉及一种报文隔离方法及装置。
背景技术
跨设备链路聚合组(multichassis link aggregation group,M-LAG)是一种实现跨设备链路聚合的机制,将两台交换机设备通过对等链路(peer-link)连接并以同一个状态和其他设备进行链路聚合协商,从而把链路可靠性从单板级提高到了设备级。M-LAG包括物理对等链路连接的M-LAG和虚拟对等链路连接的M-LAG。其中,虚拟对等链路连接的M-LAG没有物理对等链路连线,通过虚拟可扩展局域网(virtual extensible local areanetwork,VXLAN)旁路(bypass)隧道互通。
然而,在虚拟对等链路连接的M-LAG场景下,当M-LAG正常工作时,一侧M-LAG设备从设备侧或网络侧接收的报文不仅会从该侧M-LAG设备转发出去,也会通过VXLAN旁路隧道传输到另一侧M-LAG设备,再从M-LAG的成员端口转发出去,从而形成流量环路,这样会使得设备侧通过环路接收到不必要的报文,造成链路资源浪费,进而影响报文的转发效率。
发明内容
本申请提供一种报文隔离方法及装置,能够解决M-LAG场景下报文转发形成流量环路从而造成资源利用率低的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种报文隔离方法。该报文隔离方法包括:第一网络设备接收来自第二网络设备的报文,第一网络设备和第二网络设备属于同一个跨设备链路聚合组M-LAG,第一网络设备与第二网络设备通过虚拟扩展局域网VXLAN旁路隧道通信。第一网络设备根据隧道指示信息确定该报文来自于VXLAN旁路隧道。其中,隧道指示信息根据该报文确定。当该报文的出端口为M-LAG的成员端口时,第一网络设备丢弃该报文。
基于第一方面所述的报文隔离方法,第一网络设备可以根据隧道指示信息判断接收的报文是否来自于VXLAN旁路隧道,并判断该报文转发的出端口是否为M-LAG的成员端口,结合两者的判断结果对于来自于VXLAN旁路隧道且出端口为M-LAG的成员端口的报文进行丢弃,可以实现VXLAN旁路隧道和M-LAG的成员端口之间的单向隔离,从而可以避免报文转发形成流量环路,造成资源浪费的问题,提高资源利用率和提高报文转发效率。
一种可能的设计方案中,隧道指示信息可以根据报文的隧道源网际互连协议IP地址和隧道目的IP地址确定,隧道源IP地址与第二网络设备对应,隧道目的IP地址与第一网络设备对应。如此,第一网络设备可以根据第二网络设备为该报文封装的隧道源IP地址和隧道目的IP地址,确定隧道指示信息,从而判断该报文是否来自于VXLAN旁路隧道。
进一步地,隧道指示信息、隧道源IP地址和隧道目的IP地址存储在隧道终结表中。如此,隧道指示信息可以设置在隧道终结表中,第一网络设备可以根据隧道源IP地址和隧道目的IP地址确定对应的隧道终结表(不同VXLAN bypass隧道的隧道指示信息存储在不同的隧道终结表)或隧道终结表项(所有VXLAN bypass隧道的隧道指示信息存储在同一个隧道终结表中),查询该隧道指示信息。
另一种可能的设计方案中,隧道指示信息也可以携带在报文中。即,第二网络设备可以将隧道指示信息添加在发送给第一网络设备的报文中,例如,该隧道指示信息可以承载于该报文的报文头的保留字段中,这样第一网络设备可以直接通过报文获取隧道指示信息,提高报文转发效率。
一种可能的设计方案中,丢弃报文包括:首先,根据隧道指示信息确定为VXLAN旁路隧道分配的保留端口,再确定保留端口和出端口对应,从而确定丢弃报文。如此,第一网络设备根据隧道指示信息确定该报文来自于VXLAN旁路隧道后,利用为VXLAN旁路隧道分配的保留端口作为报文转发的源端口,从而可以避免因VXLAN旁路隧道与普通VXLAN隧道复用上行端口使得源端口相同,造成无法区分报文来源的问题,可以提高报文单向隔离的准确性。
进一步地,保留端口和出端口对应包括保留端口和出端口属于同一个端口隔离组。例如,第一网络设备可以将需要隔离的端口添加到同一端口隔离组,若能够在端口隔离组中查到该报文的入端口和出端口,则确定该报文需要丢弃,可以实现报文的单向隔离,从而提高报文的转发效率,避免浪费网络资源。
第二方面,提供一种报文隔离装置。该装置可以部署在跨设备链路聚合组M-LAG的第一网络设备上。该装置包括:收发模块和处理模块。其中,收发模块,用于接收来自第二网络设备的报文,第二网络设备属于M-LAG,第一网络设备和第二网络设备可以通过虚拟扩展局域网VXLAN旁路隧道通信。处理模块,用于根据隧道指示信息确定报文来自于虚拟扩展局域网VXLAN旁路隧道,隧道指示信息根据报文确定,以及用于当报文的出端口为M-LAG的成员端口时,丢弃报文。
一种可能的设计方案中,隧道指示信息根据报文的隧道源网际互连协议IP地址和隧道目的IP地址确定,隧道源IP地址与第二网络设备对应,隧道目的IP地址与报文隔离装置对应。
进一步地,隧道指示信息、隧道源IP地址和隧道目的IP地址存储在隧道终结表中。
在另一种可能的设计方案中,隧道指示信息携带在报文中。
一种可能的设计方案中,当丢弃该报文时,处理模块,用于执行如下步骤:根据隧道指示信息确定为VXLAN旁路隧道分配的保留端口,确定保留端口和出端口对应,丢弃报文。
进一步地,保留端口和出端口对应包括保留端口和出端口属于同一个端口隔离组。
可选地,第二方面所述的装置还可以包括存储模块,该存储模块存储有程序或指令。当处理模块执行该程序或指令时,使得第二方面所述的装置可以执行第一方面所述的方法。
需要说明的是,第二方面所述的装置可以是网络设备,也可以是可设置于网络设备中的芯片(系统)或其他部件或组件,还可以是包含网络设备的装置,本申请对此不做限定。
第三方面,提供一种报文隔离装置。该装置包括:处理器,处理器与存储器耦合。存储器存储有计算机程序代码或指令。处理器,用于执行存储器中存储的计算机程序代码或指令,以使得装置执行如第一方面所述的方法。
在一种可能的设计方案中,第三方面所述的装置还可以包括通信接口。该通信接口可以用于第三方面所述的装置与其他通信装置通信。
在本申请中,第三方面所述的报文隔离装置可以为第一方面中的第一网络设备,或者可设置于该第一网络设备中的芯片(系统)或其他部件或组件,或者包含该第一网络设备的装置。
此外,上述第二方面至第三方面所述的装置的技术效果可以参考第一方面所述的方法的技术效果,此处不再赘述。
第四方面,提供一种芯片。该芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行计算机程序代码或指令,以实现如第一方面所述的方法,通信接口用于与芯片之外的其它模块进行通信。
第五方面,提供一种通信系统。该通信系统可以包括一个或多个网络设备,如第一网络设备、第二网络设备。
第六方面,提供一种计算机可读存储介质。该计算机可读存储介质存储有计算机程序代码或指令,当计算机程序代码或指令在计算机上运行时,使得计算机执行如第一方面所述的方法。
第七方面,提供一种计算机程序产品。该计算机程序产品包括:计算机程序或指令,当计算机程序或指令在计算机上运行时,使得计算机执行如第一方面所述的方法。
附图说明
图1为本申请实施例提供的一种通信系统的架构示意图;
图2为本申请实施例提供的一种网络设备的结构示意图;
图3为本申请实施例提供的一种主控板的结构示意图;
图4为本申请实施例提供的一种接口板的结构示意图;
图5为本申请实施例提供的一种报文隔离方法的流程示意图;
图6为本申请实施例提供的一种VXLAN封装后的报文的结构示意图;
图7为本申请实施例提供的一种出端口查询的流程示意图;
图8为本申请实施例提供的报文隔离装置的结构示意图一;
图9为本申请实施例提供的报文隔离装置的结构示意图二。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一网络设备和第二网络仅仅是为了区分不同的网络设备,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
本申请将围绕可包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
另外,在本申请实施例中,“示例地”、“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本申请实施例描述的网络架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
为便于理解本申请实施例,首先以图1中示出的通信系统为例详细说明适用于本申请实施例的通信系统。示例性地,图1为本申请实施例提供的一种通信系统的网络架构示意图。该通信系统是基于叶-脊网络(spine-leaf network)构建,包括“脊”和“叶”两层网络,可以包括多个叶节点,以及多个脊节点,脊节点与叶节点之间全连接。
如图1所示,脊节点101和脊节点102与两个叶节点(叶节点103和叶节点104)全连接。其中,脊节点可以相当于传统三层网络架构中的核心交换机,叶节点可以相当于传统三层网络架构中的接入交换机。
具体地,叶节点103、叶节点104与服务器105进行跨设备链路聚合,叶节点103与叶节点104之间通过对等链路(peer-link)连通,形成M-LAG。其中,对等链路可以是物理连线的对等链路,也可以是虚拟连线的对等链路。相应地,M-LAG可以分为物理对等链路连接的M-LAG和虚拟对等链路连接的M-LAG。
值得说明的是,由于虚拟对等链路连接的M-LAG相比于物理对等链路连接的M-LAG,不需要物理对等链路连线,可以节省网络设备的端口资源,部署比较灵活。因此,本申请实施例提供的报文隔离方法主要应用于虚拟对等链路连接的M-LAG。即图1中的对等链路为虚拟对等链路,由于虚拟对等链路没有物理连线,可以通过VXLAN隧道对数据进行传输。其中,VXLAN隧道包括普通VXLAN隧道和VXLAN旁路隧道。本申请中以虚拟对等链路为VXLAN旁路隧道为例进行说明。
进一步地,叶节点103和叶节点104可以通过M-LAG的成员链路与服务器105连接。其中,叶节点103和叶节点104上分别连接服务器105的端口称为该M-LAG的成员端口,成员端口和服务器105之间的链路称为M-LAG的成员链路。该M-LAG的成员端口可以为以太网链路聚合(Eth-Trunk)端口,每个叶节点可以有多个M-LAG的成员端口。
应理解的是,叶节点与服务器连接的一侧可以称为用户侧,叶节点与脊节点连接的一侧可以称为网络侧。需要说明的是,叶节点与服务器可以通过虚拟局域网(virtuallocal area network,VLAN)进行通信,叶节点之间可以通过VXLAN进行通信。
具体地,如图1所示,在下行广播、未知单播和组播(broadcast、unknown unicastand multicast,BUM)报文传输过程中,叶节点103可以从脊节点101或脊节点102接收BUM报文,叶节点103再向服务器105发送该BUM报文,同时叶节点103会通过VXLAN旁路隧道向叶节点104发送该BUM报文,而发送给叶节点104的BUM报文会从M-LAG的成员端口转发出去,从而服务器105再次收到该BUM报文,此时形成流量环路。此外,在上行BUM报文传输过程中,服务器105向叶节点103发送BUM报文,叶节点103也会通过VXLAN旁路隧道向叶节点104发送该BUM报文,导致该BUM报文又从叶节点104的M-LAG的成员端口转发给服务器105,此时服务器105会收到其发送出去的报文,形成流量环路。
因此,为避免M-LAG场景下的流量形成环路,本申请实施例提供了一种报文隔离方法,能够实现VXLAN旁路隧道与M-LAG的成员端口之间的单方向的流量隔离(单向隔离),具体可以参见下述图5示出的报文隔离方法,在此不再赘述。
可以理解的是,需要隔离的数据是M-LAG场景下通过VXLAN旁路隧道传输,并从M-LAG的成员端口转发出去形成流量环路的数据,如上述BUM报文。
可选地,脊节点101和脊节点102可以位于通信网络中,该通信网络可以是以太网网络、VXLAN网络或网际互连协议(Internet Protocol,IP)网络等。
可选地,脊节点101和脊节点102也可以对于任意一个叶节点进行跨设备链路聚合,形成M-LAG。
可选地,上述服务器105还可以替换为交换机或其他用户侧设备。
需要说明的是,上述脊节点和叶节点均属于网络设备,可以是交换机或路由器等。该网络设备可以包括硬件结构、软件结构。该网络设备可以以硬件结构、软件模块、或硬件结构加软件模块的形式来实现各种通信功能(如下述本申请实施例中的报文隔离方法对应的功能)。
示例性地,图2为本申请实施例提供的一种网络设备的结构示意图。如图2所示,该网络设备200可以包括:主控板201,以及与主控板201连接的接口板202。其中,主控板201用于实现控制面的功能,例如M-LAG成员端口协商主备、双主检测和M-LAG信息同步等。接口板202用于实现转发面的功能,例如以太网交换芯片(例如,LAN switch,LSW)的初始化、业务表项下发、协议报文收发、各类中断处理(包括上行链路和下行链路的中断处理)。
可选地,主控板201和接口板202可以分开设置,也可以集成在一起。
示例性地,图3为本申请实施例提供的一种主控板的结构示意图。该主控板201包括:处理器2011,以及与处理器2011连接的存储器2012、以太网接口芯片2013。
其中,处理器2011为主控板201的控制单元,存储器2012存储有计算机程序或软件代码或指令,处理器2011可通过运行或调用存储器2012中的计算机程序或软件代码或指令,完成控制面的数据处理,以太网接口芯片2013可以用于与接口板202或其他通信设备之间的通信。
进一步地,图4为本申请实施例提供的一种接口板的结构示意图。该接口板202包括:处理器2021,以及与处理器2021连接的存储器2022、以太网接口芯片2023、以太网交换芯片2024。其中,存储器2022存储有计算机程序或软件代码或指令,处理器2021可通过运行或调用存储器2022中的计算机程序或软件代码或指令,完成数据面的数据处理,以太网接口芯片2023用于实现与主控板之间的通信,以太网交换芯片2024可以用于表项下发或查找、协议报文收发等数据处理。
可选地,以太网交换芯片2024还可以连接有存储器2025,该存储器2025可以用于存放转发报文内容。
可选地,以太网交换芯片2024还可以连接有以太网物理层(physical layer,PHY)接口芯片(图4中未示出),以太网PHY接口芯片可以用于与服务器或其他用户设备之间的通信。
上述处理器2011和处理器2021可以是中央处理器(central processing unit,CPU)、通用处理器、网络处理器(network processor,NP)、数字信号处理器(digitalsignal processing,DSP)、微处理器、微控制器、可编程逻辑器件(programmable logicdevice,PLD)或它们的任意组合。处理器2011和处理器2021还可以是其它具有处理功能的装置,例如电路、器件或软件模块,不予限制。
存储器2012和存储器2022可以是只读存储器(read-only memory,ROM)或可存储静态信息和/或指令的其他类型的静态存储设备,也可以是随机存取存储器(randomaccess memory,RAM)或可存储信息和/或指令的其他类型的动态存储设备,还可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或其他磁存储设备等,不予限制。
值得说明的是,存储器2012和/或存储器2022可以包括上述一种或多种。例如,存储器2021包括RAM和EEPROM,其中,RAM用于存储程序运行时执行的代码和数据,EEPROM用于存储运行的程序和静态配置参数。
以上对本申请实施例提供的通信系统和网络设备进行了介绍,下面为便于理解本申请实施例的技术方案,本申请实施例提供了一种报文隔离方法,可以解决M-LAG场景下报文转发形成流量环路从而造成资源利用率低的问题。下面结合图5-图7对本申请实施例提供的报文隔离方法进行具体描述。
图5为本申请实施例提供的一种报文隔离方法的流程示意图,该方法可以适用于图1所示出的通信系统,如可以在图2或图4所示的接口板中执行。
如图5所示,该报文隔离方法包括如下步骤:
S501、第一网络设备接收来自第二网络设备的报文。
对应地,第二网络设备向第一网络设备发送报文。该报文可以是单播报文,也可以是BUM报文,在此不做限定。
其中,第一网络设备和第二网络设备属于同一个跨设备链路聚合组,第一网络设备与第二网络设备通过VXLAN隧道通信,该VXLAN隧道可以包括VXLAN旁路隧道和普通VXLAN隧道。
值得说明的是,第一网络设备可以是图1示出的叶节点103,第二网络设备可以为图1示出的叶节点104。相应地,第一网络设备为叶节点104时,第二网络设备可以为叶节点103,本申请实施例对此不做限定。
可以理解的是,第二网络设备可以从图1示出的任意一个脊节点(脊节点101或脊节点102)获取报文,也可以从图1示出的服务器105获取报文。
进一步地,第二网络设备对获取的报文进行VXLAN封装,例如,第二网络设备可以为该报文封装VXLAN报文头、用户数据报协议(User Datagram Protocol,UDP)报文头、外层IP报文头和外层介质访问控制(media access control,MAC)报文头,该VXLAN封装后的报文结构如图6所示。可以理解的是,未进行VXLAN封装的报文为原始二层报文,该原始二层报文有对应的内层报文头,例如内层报文头包括内层MAC报文头,可以参照相关现有技术,此处不再赘述。
其中,VXLAN报文头包括虚拟网络标识(virtual network identifier,VNI),用于标识VXLAN网络。UDP报文头包括UDP目的端口号(UDP destination port),通常为4789,该UDP目的端口号用于指示内层封装报文为VXLAN报文。外层IP报文头包括外层源IP地址、外层目的IP地址和协议号,其中,外层源IP地址与第二网络设备对应,外层目的IP地址与第一网络设备对应,协议号通常为11,用于指示内层封装的是UDP报文。外层MAC报文头包括外层源MAC地址和外层目的MAC地址,其中,外层源MAC地址与第二网络设备对应,外层目的MAC地址与第一网络设备对应。
进一步地,第二网络设备向第一网络设备发送VXLAN封装后的报文。
具体地,第二网络设备可以通过普通VXLAN隧道或VXLAN旁路隧道向第一网络设备发送该VXLAN封装后的报文。
S502、第一网络设备根据隧道指示信息确定报文来自于VXLAN旁路隧道。
其中,该隧道指示信息用于指示所述报文是否来自于VXLAN旁路隧道,该隧道指示信息根据该报文确定。
一种可能的设计方案中,第一网络设备可以根据该报文的隧道源IP地址和隧道目的IP地址确定该报文来自于VXLAN旁路隧道。具体地,可以包括如下步骤1-1至步骤1-2:
步骤1-1、第一网络设备获取报文的隧道源IP地址和隧道目的IP地址。
具体地,第一网络设备对经过VXLAN封装后的报文进行解析,得到该报文的头部信息,所述头部信息可以包括上述外层MAC报文头、外层IP报文头、UDP报文头和VXLAN报文头中的信息。例如,第一网络设备解析得到该报文的头部信息可以包括UDP目的端口号为4789,协议号为11,外层源IP地址,外层目的IP地址等。第一网络设备可以根据该报文的头部信息确认是否对该报文进行隧道终结。
其中,外层IP报文头携带的外层源IP地址表示第二网络设备侧分配给VXLAN隧道的隧道源IP地址,外层目的IP地址表示第一网络设备侧分配给VXLAN隧道的隧道目的IP地址。
步骤1-2、第一网络设备根据隧道源IP地址和隧道目的IP地址确定隧道指示信息。
具体地,首先,第一网络设备可以根据UDP目的端口号为4789和协议号为11确定该报文为VXLAN报文。接着,第一网络设备解析该VXLAN报文,得到隧道源IP地址和隧道目的IP地址,然后,第一网络设备根据隧道源IP地址和隧道目的IP地址查找隧道指示信息。换言之,不同的隧道源IP地址和隧道目的IP地址可以对应不同的VXLAN隧道。
示例性地,隧道源IP地址、隧道目的IP地址与隧道指示信息的对应关系可以保存在隧道终结表中,该隧道终结表用于确定是否对报文进行隧道终结,对报文进行隧道终结可以理解为对该报文解封装,例如去掉该报文的外层MAC报文头、外层IP报文头、UDP报文头和VXLAN报文头。第一网络设备可以根据该报文的隧道源IP地址和隧道目的IP地址,查找到对应的隧道终结表(不同VXLAN bypass隧道的隧道指示信息存储在不同的隧道终结表)或隧道终结表项(所有VXLAN bypass隧道的隧道指示信息存储在同一个隧道终结表中),再在隧道终结表/隧道终结表项中查到该报文的隧道指示信息。
值得说明的是,隧道指示信息用于指示报文是否来自于VXLAN旁路隧道。示例性地,下述表1示出了一种隧道终结表,该隧道终结表可以根据报文的隧道源IP地址和隧道目的IP地址,得到源虚端口索引(SvpIndex)、水平分割(Hubspk)标识和虚拟对等链路标识(vPeerLinkFlag)等信息。
表1
源IP地址 目的IP地址 SvpIndex Hubspk vPeerLinkFlag
其中,SvpIndex表示源虚端口(virtual port,VP)索引信息,用于查找报文对应的源VP,例如,报文通过VXLAN旁路隧道传输到第一网络设备,第一网络设备可以根据该SvpIndex查找到该报文的源VP,该报文的源VP可以为VXLAN旁路隧道的VP,该VXLAN旁路隧道的VP基于VXLAN旁路隧道映射得到的。所述源VP用于MAC地址学习,即在MAC地址表建立源VP和MAC地址的对应关系。Hubspk表示水平分割信息,用于指示隧道与隧道之间的隔离,例如指示VXLAN旁路隧道与普通VXLAN隧道进行隔离。vPeerLinkFlag表示隧道指示信息,用于指示报文是否来自于VXLAN旁路隧道,若vPeerLinkFlag的值为真(TRUE),则表示报文来自于VXLAN旁路隧道;若vPeerLinkFlag的值为假(FALSE),则表示报文不是来自于VXLAN旁路隧道,或者是该报文来自普通VXLAN隧道。vPeerLinkFlag的值,可以是配置VXLAN旁路隧道时下发的。
另一种可能的设计方案中,从第二网络设备发送过来的VXLAN封装后的报文中可以携带有隧道指示信息,第一网络设备可以在对该报文解析后,直接获取隧道指示信息,该隧道指示信息可以为vPeerLinkFlag字段,该字段可以承载于该报文的报文头的保留字段中,隧道指示信息的具体位置可以根据实际需求设定,在此不做限定。
进一步地,第一网络设备根据隧道指示信息确定该报文来自于VXLAN旁路隧道。
示例性地,获取的隧道指示信息可以为上述vPeerLinkFlag字段,当vPeerLinkFlag字段值为真,确定该报文来自于VXLAN旁路隧道。
S503、当该报文的出端口为M-LAG的成员端口时,第一网络设备丢弃该报文。
上述的丢弃该报文,是指不向该出端口转发该报文。当该报文为BUM报文时,该报文对应的出端口还可以有其他的端口(例如,连接另一服务器的单归端口),此时,第一网络设备还需要通过该单归端口向该另一服务器发送该报文。
具体地,在执行完上述步骤S502后,第一网络设备去掉了该报文的外层MAC报文头、外层IP报文头、UDP报文头和VXLAN报文头,从而可以根据VNI和内层目的MAC确定该报文的出端口。
示例性地,图7示出了一种出端口查询的流程示意图,第一网络设备根据VNI查找VNI映射虚拟交换实例(virtual switching instance,VSI)表,得到VSI标识号(identity,ID),然后根据VSI ID查找VSI表得到桥接域接口(bridge-domain interface,BDIF)的MAC地址,如果查找到的BDIF MAC地址与报文的内层目的MAC地址不同,确定该报文进行二层转发,再根据VSI ID和内层目的MAC地址查找二层转发MAC表,得到目的VP的索引号,最后根据该目的VP的索引号确定该报文的出端口信息,根据该出端口信息确定该报文的出端口为M-LAG的成员端口。
可以理解的是,当查找到的BDIF MAC地址与报文的内层目的MAC地址相同时,对该报文进行三层路由转发。此外,本申请实施例提供的报文隔离方法是基于二层转发实现的。
值得说明的是,上述关于二层转发和三层路由转发的具体实现,请参考现有实现方式,本申请实施例不再赘述。
进一步地,第一网络设备丢弃该报文。具体地,丢弃该报文可以包括如下步骤2-1至步骤2-3:
步骤2-1、第一网络设备根据隧道指示信息确定为VXLAN旁路隧道分配的保留端口。
由于VXLAN旁路隧道与普通VXLAN隧道存在复用上行口的情况,因此为便于区分VXLAN旁路隧道与普通VXLAN隧道的端口,为VXLAN旁路隧道分配了保留端口。该保留端口的端口信息可以存储在寄存器中,例如第一网络设备新增一个全局scratch寄存器,用于保存分配的保留端口。该保留端口可以是配置VXLAN旁路隧道时申请的。
示例性地,若第一网络设备获取的隧道指示信息为上述vPeerLinkFlag字段,且该字段的值为真,则第一网络设备可以从全局scratch寄存器中选取为VXLAN旁路隧道分配的保留端口,用于实现端口隔离。
步骤2-2、第一网络设备确定保留端口与出端口对应。
具体地,保留端口与出端口对应表示该报文来自于VXLAN旁路隧道且转发出端口为M-LAG的成员端口。
进一步地,保留端口和出端口对应可以包括保留端口和出端口属于同一个端口隔离组。
示例性地,第一网络设备可以通过查找端口隔离组确定该保留端口与出端口是否对应,端口隔离组包括需要相互隔离的端口的信息,需要相互隔离的端口可以包括报文源端口和目的端口,或者是报文的入端口和出端口。第一网络设备可以使用端口隔离表来记录端口隔离组,端口隔离表的一个表项中的多个端口组成一个端口隔离组。第一网络设备可以使用为VXLAN旁路隧道分配的保留端口和出端口去查找端口隔离表,当能够在端口隔离表中查到包括保留端口和出端口的表项时,则表示该报文需要丢弃。该保留端口可以是在分配保留端口时下发到端口隔离表中的。
可以理解的是,此时查找端口隔离表的报文的源端口为保留端口,目的端口为出端口。
在一种可能的情形中,例如vPeerLinkFlag字段为假,即表示报文不是来自VXLAN旁路隧道,则第一网络设备可以利用该报文携带的源端口去查找端口隔离表。换言之,第一网络设备可以根据隧道指示信息确定是使用保留端口还是使用报文携带的源端口去查找端口隔离表。
在另一种可能的情形中,vPeerLinkFlag字段的值为假的报文也可以直接通过出端口转发出去。换言之,该报文无需查找端口隔离表。
步骤2-3、第一网络设备丢弃该报文。
示例性地,端口隔离表中保存有需要隔离的端口信息,也就是端口隔离表中保存有保留端口和M-LAG的成员端口的对应关系,例如,源端口为虚拟对等链路(virtual peer-link)保留端口,目的端口为M-LAG的成员端口,第一网络设备将满足端口隔离表中对应端口关系的报文丢弃,实现了VXLAN旁路隧道与M-LAG的成员端口之间的流量隔离。
值得说明的是,第一网络设备对该报文进行丢弃,可以是在报文解封装后的转发过程中实现的,上述隧道指示信息和出端口信息可以添加到该报文的转发报文头中,然后再根据转发报文头携带的信息执行步骤2-1至步骤2-3。该转发报文头中还可以携带VSIID、虚拟局域网(virtual local area network,VLAN)编辑信息等。
在一种可能的设计方案中,若该报文的转发报文头中无法携带隧道指示信息,则可以在源VP表增加保留端口。在对该报文解封装时,根据隧道终结表中的隧道指示信息确定该报文来自于VXLAN旁路隧道,从而将报文携带的源端口替换为源VP表中的保留端口,转发时根据替换的源端口查找端口隔离表进行报文隔离。
本申请中,虽然第一网络设备接收的报文(包括VXLAN封装)和处理后的报文(包括转发报文头)具有不同的报文头,但是它们的负载并没有变化,因此,仍然认为它们是相同的报文。
基于图5示出的报文隔离方法,第一网络设备可以根据隧道指示信息判断接收的报文是否来自于VXLAN旁路隧道,并判断该报文转发的出端口是否为M-LAG的成员端口,结合两者的判断结果确定丢弃来自于VXLAN旁路隧道且出端口为M-LAG的成员端口的报文,可以实现VXLAN旁路隧道和M-LAG的成员端口之间的单向隔离,从而可以避免报文转发形成流量环路造成的资源浪费的问题,提高资源利用率和提高报文转发效率。
以上结合图5-图7详细说明了本申请实施例提供的报文隔离方法。以下结合图8-图9详细说明用于执行本申请实施例提供的报文隔离方法的装置。
示例性地,图8是本申请实施例提供的报文隔离装置的结构示意图一。为了便于说明,图8仅示出了该报文隔离装置的主要部件。如图8所示,报文隔离800装置包括:收发模块801和处理模块802。
一些实施例中,报文隔离装置800可适用于图1中所示出的通信系统中,执行图5中所示出的报文隔离方法中第一网络设备的功能。该装置可以部署在图5中所示出的跨设备链路聚合组M-LAG的第一网络设备上。
其中,收发模块801,用于接收来自第二网络设备的报文。第二网络设备属于M-LAG,第一网络设备与第二网络设备通过虚拟扩展局域网VXLAN旁路隧道通信。
处理模块802,用于根据隧道指示信息确定报文来自于虚拟扩展局域网VXLAN旁路隧道,隧道指示信息根据报文确定。
处理模块802,还用于当报文的出端口为M-LAG的成员端口时,丢弃报文。
一种可能的设计方案中,隧道指示信息根据报文的隧道源网际互连协议IP地址和隧道目的IP地址确定,隧道源IP地址与第二网络设备对应,隧道目的IP地址与报文隔离装置对应。
进一步地,隧道指示信息、隧道源IP地址和隧道目的IP地址存储在隧道终结表中。
另一种可能的设计方案中,隧道指示信息携带在报文中。
一种可能的设计方案中,处理模块802,用于执行如下步骤:根据隧道指示信息确定为VXLAN旁路隧道分配的保留端口;确定保留端口和出端口对应;丢弃报文。
进一步地,保留端口和出端口对应包括保留端口和出端口属于同一个端口隔离组。
可选地,收发模块801可以包括接收模块和发送模块(图8中未示出)。其中,接收模块用于实现报文隔离装置800的接收功能,发送模块用于实现报文隔离装置800的发送功能。
需要说明的是,报文隔离装置800可以是网络设备,也可以是可设置于网络设备中的芯片(系统)或其他部件或组件,还可以是包含网络设备的装置,本申请对此不做限定。
此外,报文隔离装置800的技术效果可以参考图5中所示出的报文隔离方法的技术效果,此处不再赘述。
示例性地,图9为本申请实施例提供的报文隔离装置的结构示意图二。该报文隔离装置可以是网络设备,也可以是可设置于网络设备的芯片(系统)或其他部件或组件。如图9所示,报文隔离装置900可以包括处理器901。可选地,报文隔离装置900还可以包括存储器902和/或通信接口903。其中,处理器901与存储器902和通信接口903耦合,如可以通过通信总线连接。
下面结合图9对报文隔离装置900的各个构成部件进行具体的介绍:
其中,处理器901是报文隔离装置900的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器901是一个或多个中央处理器(central processingunit,CPU),也可以是特定应用集成电路(application-specific integrated circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个数字信号处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)。
可选地,处理器901可以通过执行存储在存储器902内的软件程序,以及调用存储在存储器902内的数据,执行报文隔离装置900的各种功能。
在具体的实现中,作为一种实施例,处理器901可以包括一个或多个CPU,例如图9中所示出的CPU0和CPU1。
在具体实现中,作为一种实施例,报文隔离装置900也可以包括多个处理器,例如图9中所示的处理器901和处理器904。这些处理器中的每一个可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。
其中,所述存储器902用于存储执行本申请方案的软件程序和所需要的数据,并由处理器901来控制执行,具体实现方式可以参考上述方法实施例,此处不再赘述。
可选地,存储器902可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、只读光盘(compactdisc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器902可以和处理器901集成在一起,也可以独立存在,并通过报文隔离装置900的总线系统与处理器901耦合,本申请实施例对此不作具体限定。
通信接口903,用于与其他通信装置之间的通信。例如,报文隔离装置900为网络设备,通信接口903可以用于与终端设备(例如服务器)通信,或者与另一个网络设备通信。
可选地,通信接口903可以包括接收器和发送器(图9中未单独示出)。其中,接收器用于实现接收功能,发送器用于实现发送功能。
可选地,通信接口903可以和处理器901集成在一起,也可以独立存在,并通过报文隔离装置900的总线系统与处理器901耦合,本申请实施例对此不作具体限定。
需要说明的是,图9中示出的报文隔离装置900的结构并不构成对该报文隔离装置的限定,实际的报文隔离装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
此外,报文隔离装置900的技术效果可以参考上述方法实施例所述的报文隔离方法的技术效果,此处不再赘述。
本申请实施例提供一种通信系统。该通信系统包括一个或多个网络设备,如上述第一网络设备和第二网络设备。
本申请实施例提供一种芯片。该芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行计算机程序代码或指令,以实现如图5中所示出的报文隔离方法,通信接口用于与芯片之外的其它模块进行通信。
本申请实施例提供一种计算机可读存储介质。该计算机可读存储介质存储有计算机程序代码或指令,当计算机程序代码或指令在计算机上运行时,使得计算机执行如图5中所示出的报文隔离方法。
本申请实施例提供一种计算机程序产品。该计算机程序产品包括:计算机程序代码或指令,当计算机程序代码或指令在计算机上运行时,使得计算机执行如图5中所示出的报文隔离方法。
上述实施例,可以全部或部分地通过软件、硬件(如电路)、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令或计算机程序。在计算机上加载或执行所述计算机指令或计算机程序时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,其中A,B可以是单数或者复数。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系,但也可能表示的是一种“和/或”的关系,具体可参考前后文进行理解。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。

Claims (15)

1.一种报文隔离方法,其特征在于,所述方法包括:
第一网络设备接收来自第二网络设备的报文,所述第一网络设备和所述第二网络设备属于同一个跨设备链路聚合组M-LAG,所述第一网络设备与所述第二网络设备通过虚拟扩展局域网VXLAN旁路隧道通信;
所述第一网络设备根据隧道指示信息确定所述报文来自于所述VXLAN旁路隧道,所述隧道指示信息根据所述报文确定;
当所述报文的出端口为所述M-LAG的成员端口时,所述第一网络设备丢弃所述报文。
2.根据权利要求1所述的方法,其特征在于,所述隧道指示信息根据所述报文的隧道源网际互连协议IP地址和隧道目的IP地址确定,所述隧道源IP地址与所述第二网络设备对应,所述隧道目的IP地址与所述第一网络设备对应。
3.根据权利要求2所述的方法,其特征在于,所述隧道指示信息、所述隧道源IP地址和所述隧道目的IP地址存储在隧道终结表中。
4.根据权利要求1所述的方法,其特征在于,所述隧道指示信息携带在所述报文中。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述丢弃所述报文包括:
根据所述隧道指示信息确定为所述VXLAN旁路隧道分配的保留端口;
确定所述保留端口和所述出端口对应;
丢弃所述报文。
6.根据权利要求5所述的方法,其特征在于,所述保留端口和所述出端口对应包括所述保留端口和所述出端口属于同一个端口隔离组。
7.一种报文隔离装置,其特征在于,所述装置部署在跨设备链路聚合组M-LAG的第一网络设备上,所述装置包括:收发模块和处理模块;
所述收发模块,用于接收来自第二网络设备的报文,所述第二网络设备属于所述M-LAG,所述第一网络设备与所述第二网络设备通过虚拟扩展局域网VXLAN旁路隧道通信;
所述处理模块,用于:
根据隧道指示信息确定所述报文来自于所述VXLAN旁路隧道,所述隧道指示信息根据所述报文确定;以及,
当所述报文的出端口为所述M-LAG的成员端口时,丢弃所述报文。
8.根据权利要求7所述的装置,其特征在于,所述隧道指示信息根据所述报文的隧道源网际互连协议IP地址和隧道目的IP地址确定,所述隧道源IP地址与所述第二网络设备对应,所述隧道目的IP地址与所述装置对应。
9.根据权利要求8所述的装置,其特征在于,所述隧道指示信息、所述隧道源IP地址和所述隧道目的IP地址存储在隧道终结表中。
10.根据权利要求7所述的装置,其特征在于,所述隧道指示信息携带在所述报文中。
11.根据权利要求7-10中任一项所述的装置,其特征在于,当丢弃所述报文时,所述处理模块用于:
根据所述隧道指示信息确定为所述VXLAN旁路隧道分配的保留端口;
确定所述保留端口和所述出端口对应;
丢弃所述报文。
12.根据权利要求11所述的装置,其特征在于,所述保留端口和所述出端口对应包括所述保留端口和所述出端口属于同一个端口隔离组。
13.一种芯片,其特征在于,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行计算机程序代码或指令,以实现如权利要求1-6中任一项所述的方法,所述通信接口用于与所述芯片之外的其它模块进行通信。
14.一种报文隔离装置,其特征在于,包括:处理器,所述处理器与存储器耦合;
所述存储器用于存储计算机程序代码或指令;
所述处理器,用于执行所述存储器中存储的计算机程序代码或指令,以使得所述装置执行如权利要求1-6中任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序代码或指令,当所述计算机程序代码或指令在计算机上运行时,使得所述计算机执行如权利要求1-6中任一项所述的方法。
CN202210241418.6A 2022-03-11 2022-03-11 报文隔离方法及装置 Pending CN116781453A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210241418.6A CN116781453A (zh) 2022-03-11 2022-03-11 报文隔离方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210241418.6A CN116781453A (zh) 2022-03-11 2022-03-11 报文隔离方法及装置

Publications (1)

Publication Number Publication Date
CN116781453A true CN116781453A (zh) 2023-09-19

Family

ID=87990191

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210241418.6A Pending CN116781453A (zh) 2022-03-11 2022-03-11 报文隔离方法及装置

Country Status (1)

Country Link
CN (1) CN116781453A (zh)

Similar Documents

Publication Publication Date Title
CN107819663B (zh) 一种实现虚拟网络功能服务链的方法和装置
CN108259291B (zh) Vxlan报文处理方法、设备及系统
CN109698788B (zh) 流量转发方法、装置及计算机可读介质
US9667541B2 (en) Virtual MAC address, mask-based, packet forwarding
US7944913B2 (en) Node, communication method, and program for node
CN112422393B (zh) 可扩展虚拟局域网报文发送方法、计算机设备和可读介质
CN110401599B (zh) 数据包的处理方法及装置、存储介质、电子装置
CN107317752B (zh) 一种转发数据报文的方法及装置
CN104869042A (zh) 报文转发方法和装置
CN109639552B (zh) 一种三层转发方法及装置
CN111371634B (zh) 一种通信方法、装置及系统
CN113923161A (zh) 一种报文转发方法及装置
US20110078181A1 (en) Communication device
CN106209554B (zh) 跨虚拟可扩展局域网的报文转发方法和设备
WO2021139288A1 (zh) 报文发送方法、装置及存储介质
CN113923158B (zh) 一种报文转发、路由发送和接收方法及装置
WO2021052381A1 (zh) 报文的发送方法和装置
WO2023093513A1 (zh) 路径感知方法、装置及系统
CN113726915A (zh) 网络系统及其中的报文传输方法和相关装置
CN116781453A (zh) 报文隔离方法及装置
CN114760248B (zh) 报文传输方法、设备及系统
CN117097818A (zh) 一种报文处理的方法及相关设备
WO2021129023A1 (zh) 报文发送的方法、设备和系统
EP3913865B1 (en) Message decapsulation method and device, message encapsulation method and device, electronic device, and storage medium
CN114401222A (zh) 一种基于策略路由的数据转发方法、装置及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication