CN112187609B - 表项生成方法和装置 - Google Patents
表项生成方法和装置 Download PDFInfo
- Publication number
- CN112187609B CN112187609B CN202010997433.4A CN202010997433A CN112187609B CN 112187609 B CN112187609 B CN 112187609B CN 202010997433 A CN202010997433 A CN 202010997433A CN 112187609 B CN112187609 B CN 112187609B
- Authority
- CN
- China
- Prior art keywords
- tunnel
- address
- distributed gateway
- forwarding table
- host
- 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/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
- 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/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- 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/74—Address processing for routing
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
本申请提供一种表项生成方法和装置,该方法包括:在通过第一隧道接收到对端网络设备发送的数据报文时,通过聚合口将数据报文转发给第一主机;在第一分布式网关的转发表中添加转发表项,该转发表项的目的地址为第二主机的地址,该转发表项的出端口为第一隧道的隧道标识;向第二分布式网关发送表项同步消息,表项同步消息包括第二主机的地址和第一隧道的隧道信息,以使第二分布式网关根据表项同步消息在第二分布式网关的转发表中添加转发表项。通过本申请实施例的技术方案,第一分布式网关或第二分布式网关通过聚合口收到数据报文后,基于转发表项发送数据报文,从而正确转发数据报文。
Description
技术领域
本申请涉及通信技术领域,尤其是涉及一种表项生成方法和装置。
背景技术
VXLAN(Virtual eXtensible Local Area Network,可扩展虚拟局域网络)是基于IP网络、采用“MAC(Media Access Control,媒体访问控制)in UDP(User DatagramProtocol,用户数据报协议)”封装形式的二层VPN(Virtual Private Network,虚拟专用网络)技术。VXLAN可以基于已有的服务提供商或者企业IP网络,为分散的站点提供二层互联,并能够为不同的租户提供业务隔离。
为了提高VXLAN网络的可靠性,可以采用分布式聚合的VXLAN组网方式,参见图1所示,主机11的物理端口111和物理端口112加入聚合口A,VTEP(VXLAN Tunnel End Point,VXLAN隧道端点)12与VTEP13之间通过分布式聚合协议,将VTEP12的物理端口121和VTEP13的物理端口131加入到聚合口A。针对主机11发送给主机15的数据报文,主机11可以通过物理端口111或者物理端口112进行发送,VTEP12或者VTEP13在接收到数据报文之后,可以将数据报文转发给VTEP14,由VTEP14将数据报文发送给主机15。
在上述应用场景下,VTEP12在接收到该数据报文之后,若VTEP12没有与主机15匹配的转发表项,则VTEP12无法将该数据报文转发给VTEP14,导致VTEP14无法将该数据报文发送给主机15。或者,VTEP13在接收到该数据报文之后,若VTEP13没有与主机15匹配的转发表项,则VTEP13无法将该数据报文转发给VTEP14,导致VTEP14无法将该数据报文发送给主机15。
发明内容
有鉴于此,本申请提供一种表项生成方法和装置,能够正确转发数据报文。
第一方面,本申请提供一种表项生成方法,第一分布式网关和第二分布式网关中配置有相同的网关地址,第一分布式网关和第二分布式网关通过聚合口与第一主机连接,所述第一分布式网关与对端网络设备之间建立第一隧道,所述第二分布式网关与对端网络设备之间建立第二隧道,所述第一隧道的源地址与所述第二隧道的源地址相同,所述第一隧道的目的地址与所述第二隧道的目的地址相同,所述方法应用于第一分布式网关,包括:在通过所述第一隧道接收到对端网络设备发送的数据报文时,通过所述聚合口将所述数据报文转发给第一主机;其中,所述数据报文的源地址为第二主机的地址;
在第一分布式网关的转发表中添加转发表项,该转发表项的目的地址为第二主机的地址,该转发表项的出端口为所述第一隧道的隧道标识;
向第二分布式网关发送表项同步消息,所述表项同步消息包括第二主机的地址和所述第一隧道的隧道信息,以使所述第二分布式网关根据所述表项同步消息在所述第二分布式网关的转发表中添加转发表项,该转发表项的目的地址为第二主机的地址,该转发表项的出端口为所述第二隧道的隧道标识。
第二方面,本申请提供一种表项生成方法,第一分布式网关和第二分布式网关中配置有相同的网关地址,第一分布式网关和第二分布式网关通过聚合口与第一主机连接,所述第一分布式网关与对端网络设备之间建立第一隧道,所述第二分布式网关与对端网络设备之间建立第二隧道,所述第一隧道的源地址与所述第二隧道的源地址相同,所述第一隧道的目的地址与所述第二隧道的目的地址相同,所述方法应用于第二分布式网关,包括:
接收第一分布式网关发送的表项同步消息,所述表项同步消息包括第二主机的地址和第一隧道的隧道信息;其中,所述表项同步消息是第一分布式网关通过第一隧道接收到数据报文,从数据报文中获取第二主机的地址后发送的;
确定所述第一隧道的隧道信息对应的第二隧道;
在第二分布式网关的转发表中添加转发表项,该转发表项的目的地址为第二主机的地址,该转发表项的出端口为所述第二隧道的隧道标识;
在通过所述聚合口接收到第一主机发送的数据报文后,若该数据报文的目的地址为第二主机的地址,则从第二分布式网关的转发表中查询该数据报文命中的该转发表项,通过该转发表项的出端口转发该数据报文。
第三方面,本申请提供一种表项生成装置,第一分布式网关和第二分布式网关中配置有相同的网关地址,第一分布式网关和第二分布式网关通过聚合口与第一主机连接,所述第一分布式网关与对端网络设备之间建立第一隧道,所述第二分布式网关与对端网络设备之间建立第二隧道,所述第一隧道的源地址与所述第二隧道的源地址相同,所述第一隧道的目的地址与所述第二隧道的目的地址相同,所述装置应用于第一分布式网关,包括:接收模块,用于在通过所述第一隧道接收到对端网络设备发送的数据报文时,通过所述聚合口将所述数据报文转发给第一主机;其中,所述数据报文的源地址为第二主机的地址;
生成模块,用于在第一分布式网关的转发表中添加转发表项,转发表项的目的地址为第二主机的地址,转发表项的出端口为所述第一隧道的隧道标识;
发送模块,用于向第二分布式网关发送表项同步消息,所述表项同步消息包括第二主机的地址和所述第一隧道的隧道信息,由第二分布式网关根据所述表项同步消息在所述第二分布式网关的转发表中添加转发表项,该转发表项的目的地址为第二主机的地址,该转发表项的出端口为所述第二隧道的隧道标识。
第四方面,本申请提供一种表项生成装置,第一分布式网关和第二分布式网关中配置有相同的网关地址,第一分布式网关和第二分布式网关通过聚合口与第一主机连接,所述第一分布式网关与对端网络设备之间建立第一隧道,所述第二分布式网关与对端网络设备之间建立第二隧道,所述第一隧道的源地址与所述第二隧道的源地址相同,所述第一隧道的目的地址与所述第二隧道的目的地址相同,所述装置应用于第二分布式网关,包括:接收模块,用于接收第一分布式网关发送的表项同步消息,所述表项同步消息包括第二主机的地址和第一隧道的隧道信息;所述表项同步消息是第一分布式网关通过第一隧道接收到数据报文,从数据报文中获取第二主机的地址后发送的;
确定模块,用于确定所述第一隧道的隧道信息对应的第二隧道;
生成模块,用于在第二分布式网关的转发表中添加转发表项,转发表项的目的地址为第二主机的地址,转发表项的出端口为所述第二隧道的隧道标识;
发送模块,用于在通过所述聚合口接收到第一主机发送的数据报文后,若该数据报文的目的地址为第二主机的地址,则从第二分布式网关的转发表中查询该数据报文命中的转发表项,通过该转发表项的出端口转发该数据报文。
第五方面,本申请提供一种分布式网关(如上述第一分布式网关或者第二分布式网关),该分布式网关包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现上述的表项生成方法步骤。
第六方面,本申请提供一种机器可读存储介质,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被处理器调用和执行时,所述机器可执行指令可以促使所述处理器,实现上述的表项生成方法步骤。
由以上技术方案可见,本申请中,在分布式聚合的VXLAN组网下,通过在第一分布式网关和第二分布式网关之间传输表项同步消息,从而使第一分布式网关将主机的地址和隧道的隧道信息同步给第二分布式网关,使得第一分布式网关和第二分布式网关均可以生成转发表项,第一分布式网关或者第二分布式网关通过聚合口接收到数据报文后,可以基于转发表项发送数据报文,从而能够正确转发数据报文,解决聚合口接收到的数据报文可能断流的问题。
附图说明
图1是本申请一种实施方式中的分布式聚合的组网示意图;
图2是本申请一种实施方式中的应用场景示意图;
图3是本申请一种实施方式中的表项生成方法的流程图;
图4是本申请一种实施方式中的表项生成方法的流程图;
图5A和图5B是本申请一种实施方式中的表项生成装置的结构图;
图6是本申请一种实施方式中的分布式网关的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请实施例。本申请实施例和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请实施例范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
VXLAN是基于IP网络、采用“MAC in UDP”封装形式的一种二层VPN技术。VXLAN可以基于已有的服务提供商或者企业IP网络,为分散的站点提供二层互联,并能够为不同的租户提供业务隔离。VXLAN还可以通过部署VXLAN IP网关,为站点内的租户提供三层互联。VXLAN主要应用于数据中心网络。
VXLAN将已有的三层物理网络作为Underlay网络,在其上构建虚拟的二层网络,即Overlay网络。Overlay网络通过封装技术,利用Underlay网络提供的三层转发路径,实现租户二层报文跨越三层网络在不同站点间传递。对于租户来说,Underlay网络是透明的,同一租户的不同站点就像工作在局域网中。
关于VXLAN的典型网络模型,可以包括但不限于如下几个部分:
VM(Virtual Machine,虚拟机):在一台物理服务器上可以创建多台虚拟机,不同虚拟机可以属于不同VXLAN,属于相同VXLAN的虚拟机处于同一逻辑二层网络,彼此之间二层互通;属于不同VXLAN的虚拟机之间二层隔离。
VTEP(VXLAN Tunnel End Point,VXLAN隧道端点):VXLAN的边缘设备,VXLAN的相关处理可以在VTEP上进行,例如,VTEP识别数据报文所属的VXLAN、基于VXLAN对数据报文进行二层转发、封装/解封装数据报文等。VTEP可以是一台独立的物理服务器,也可以是虚拟机所在的物理服务器。
VXLAN隧道:两个VTEP之间的点到点逻辑隧道,VTEP为数据报文封装VXLAN头、UDP头和IP头后,通过VXLAN隧道将封装后的报文转发给远端VTEP,远端VTEP对其进行解封装,得到数据报文,并转发数据报文。
核心设备:IP核心网络中的网络设备,核心设备不参与VXLAN处理,仅需要根据封装后的数据报文的目的IP地址对数据报文进行三层转发。
VSI(Virtual Switch Instance,虚拟交换实例):VTEP上为VXLAN提供二层交换服务的虚拟交换实例,VSI可以看做是VTEP上的基于VXLAN进行二层转发的虚拟交换机,VSI具有传统以太网交换机的所有功能,包括但不限于源MAC地址学习、MAC地址老化、泛洪等,VSI与VXLAN一一对应。
VXLAN可以为分散的物理站点提供二层互联,如果需要为站点内的虚拟机提供三层业务,则需要在网络中部署VXLAN IP网关,以便虚拟机通过VXLAN IP网关与外界网络或者其它VXLAN网络内的虚拟机进行三层通信。
为了提高VXLAN网络的可靠性,提出了分布式聚合的概念,即采用分布式聚合的VXLAN组网。参见图1所示,主机11的物理端口111和物理端口112加入聚合口A,VTEP12与VTEP13之间通过分布式聚合协议,将VTEP12的物理端口121和VTEP13的物理端口131也加入聚合口A。在主机11看来,VTEP12和VTEP13是一台设备。对于VTEP14来说,VTEP12和VTEP13使用相同地址与VTEP14建立VXLAN隧道。综上所述,从Overlay层来看,VTEP14到VTEP12与VTEP13之间只有一条VXLAN隧道,而从Underlay层来看,VTEP14到VTEP12与VTEP13之间存在两条链路,这两条链路形成负载分担。
参见图1所示,通过分布式聚合协议,将VTEP12和VTEP13组成一台设备,将VTEP12和VTEP13上两个物理链路模拟成一个聚合口A。从图1可以看出,主机11到主机15的流量可以经过分布式聚合的任意一台设备(VTEP12或者VTEP13),当VTEP12故障时,主机11到主机15的流量可以经过VTEP13,当VTEP13故障时,主机11到主机15的流量可以经过VTEP12。显然,当VTEP12或者VTEP13故障时,主机11到主机15的流量仍然可以正常传输。
在分布式聚合的应用场景中,存在IPP(Intra Portal Port,内部控制链路端口)和DR(Distributed Relay,分布式聚合)端口。IPP是用于内部控制的二层聚合端口,IPP之间通过IPL(Intra Portal Link,内部控制链路)传输协议报文,VTEP12上与VTEP13连接的端口为IPP,VTEP13上与VTEP12连接的端口为IPP,且VTEP12与VTEP13之间的链路为IPL。DR端口是与外部设备相连的二层聚合端口,与外部设备上相同聚合组相连的DR端口属于同一DR组,参见图1所示,VTEP12上与主机11连接的二层聚合端口为DR端口,VTEP13上与主机11连接的二层聚合端口为DR端口,且这两个DR端口属于同一DR组。
在上述应用场景下,针对主机11发送给主机15的数据报文,由于物理端口111和物理端口112属于同一个聚合口A,因此,主机11可以通过物理端口111或者物理端口112进行发送,该数据报文可能发送给VTEP12或者VTEP13。
但是,VTEP12和VTEP13中只有一个VTEP存在与主机15匹配的转发表项,假设VTEP12存在与主机15匹配的转发表项,若VTEP12接收到该数据报文,则将该数据报文转发给VTEP14,由VTEP14将该数据报文转发给主机15。若VTEP13接收到该数据报文,由于VTEP13没有与主机15匹配的转发表项,则无法将该数据报文转发给VTEP14,导致VTEP14无法将该数据报文发送给主机15。同理,假设VTEP13存在与主机15匹配的转发表项,若VTEP12接收到该数据报文,由于VTEP12没有与主机15匹配的转发表项,VTEP12无法将该数据报文转发给VTEP14,导致VTEP14无法将该数据报文发送给主机15。
针对上述发现,本申请实施例中提出了一种表项生成方法,能够解决MLAG(Multi-Chassis Link Aggregation,多设备链路聚合)系统的设备间的转发表项同步,对VXLAN隧道上学习的转发表项进行同步。比如说,通过转发表项的同步,VTEP12和VTEP13均存在与主机15匹配的转发表项,针对主机11发送给主机15的数据报文,若VTEP12接收到该数据报文,能够将数据报文转发给VTEP14,由VTEP14将该数据报文转发给主机15。若VTEP13接收到该数据报文,能够将数据报文转发给VTEP14,由VTEP14将该数据报文转发给主机15。
以下结合具体实施例,对本申请实施例的技术方案进行说明。
本申请实施例中提出一种表项生成方法,该方法可以应用于包括至少两个分布式网关的网络,如基于VXLAN的MLAG网络等。其中,所有分布式网关上均需要创建VSI虚端口,且不同分布式网关创建相同的VSI虚端口,并为不同分布式网关的相同VSI虚端口配置相同的IP地址,该IP地址作为网络内主机的网关地址,也就是说,这些分布式网关中配置有相同的网关地址。
此外,通过分布式聚合协议,将所有分布式网关均加入到MLAG系统,每个分布式网关作为MLAG系统的成员设备,即所有分布式网关逻辑上是同一个设备,将所有分布式网关上与同一个主机连接的物理链路模拟成一个聚合口。
此外,针对每个分布式网关,可以与对端网络设备建立隧道(如VXLAN隧道),且所有分布式网关是通过相同地址与对端网络设备建立隧道。由于所有分布式网关采用相同地址与对端网络设备建立隧道,因此,不同分布式网关与对端网络设备之间的隧道相同,即隧道的源地址相同,隧道的目的地址相同。
为了方便描述,以两个分布式网关为例,将这两个分布式网关记为第一分布式网关和第二分布式网关,第一分布式网关和第二分布式网关是相对的,可以将任一分布式网关作为第一分布式网关,将另一个分布式网关作为第二分布式网关。当然,分布式网关的数量可以更多,将一个分布式网关作为第一分布式网关,将除第一分布式网关之外的其它分布式网关均作为第二分布式网关。
综上所述,第一分布式网关和第二分布式网关上均需要创建VSI虚端口,且创建相同的VSI虚端口,第一分布式网关和第二分布式的相同VSI虚端口配置相同的网关地址,即第一分布式网关和第二分布式中配置有相同的网关地址。
此外,第一分布式网关和第二分布式网关通过同一聚合口与第一主机(为了区分方便,将与分布式网关连接的主机记为第一主机)连接。
此外,第一分布式网关与对端网络设备的第一隧道和第二分布式网关与对端网络设备的第二隧道相同。例如,第一分布式网关和第二分布式网关可以具有相同地址(可以是网关地址,也可以是其它地址,如第一分布式网关和第二分布式网关配置有相同的环回口地址,对此不做限制),第一分布式网关通过该地址与对端网络设备建立第一隧道,第二分布式网关通过该地址与对端网络设备建立第二隧道,且第一隧道与第二隧道相同。例如,第一隧道的源地址(即该地址)与第二隧道的源地址(即该地址)相同,第一隧道的目的地址(即对端网络设备的地址)与第二隧道的目的地址即对端网络设备的地址)相同。
参见图2所示,为本申请实施例的应用场景示意图,针对主机21和主机25的通信过程,主机21为第一主机,主机25为第二主机,主机21可以是VM、终端设备、PC(PersonalComputer,个人计算机)、物理服务器等,对此不做限制。主机25可以是VM、终端设备、PC、物理服务器等,对此不做限制。
为了对VXLAN站点内的主机21提供三层业务,需要在网络中部署VXLAN IP网关,本文将VXLAN IP网关记为分布式网关。参见图2所示,VTEP22和VTEP23为分布式网关,VTEP22为第一分布式网关时,VTEP23为第二分布式网关,VTEP23为第一分布式网关时,VTEP22为第二分布式网关。
VTEP22和VTEP23之间的链路为IPL,VTEP22上与主机21连接的端口为221,VTEP23上与主机21连接的端口为231,将端口221和端口231加入聚合口A,主机21的端口211和端口212属于聚合口A,因此,主机21可以通过端口211或端口212发送数据报文,该数据报文发送给VTEP22或VTEP23。
VTEP22和VTEP23上需要创建相同的VSI虚端口,并为VTEP22和VTEP23上相同的VSI虚端口配置相同的IP地址,该IP地址作为VXLAN内主机21的网关地址,即VTEP22和VTEP23配置有相同的网关地址,如10.1.1.1/24。
继续参见图2所示,主机21通过聚合接入的方式接入到VTEP22和VTEP23,VTEP22和VTEP23通过同一聚合口A与主机21连接,VTEP22和VTEP23之间建立IPL,形成MLAG系统,即VTEP22和VTEP23对于主机21是同一设备。
VTEP24是与每个分布式网关(如VTEP22和VTEP23)连接的对端网络设备,即VTEP24与VTEP22连接,VTEP24与VTEP23连接。VTEP22和VTEP23配置有相同地址,如1.2.3.4,VTEP22和VTEP23使用相同地址1.2.3.4与VTEP24建立隧道,例如,VTEP22使用地址1.2.3.4与VTEP24建立第一隧道,VTEP23使用地址1.2.3.4与VTEP24建立第二隧道。针对VTEP22,第一隧道的源地址为1.2.3.4,第一隧道的目的地址为VTEP24的地址3.3.3.3,针对VTEP23,第二隧道的源地址为1.2.3.4,第二隧道的目的地址为VTEP24的地址3.3.3.3。综上所述,对于VTEP22和VTEP23来说,第一隧道和第二隧道是相同的。
针对VTEP24,第一隧道的源地址为3.3.3.3,第一隧道的目的地址为1.2.3.4,第二隧道的源地址为3.3.3.3,第二隧道的目的地址为1.2.3.4,因此,VTEP24上只有一条隧道,源地址为3.3.3.3,目的地址为1.2.3.4,从IP层来看,实则有两条链路形成负载分担,即第一隧道和第二隧道是形成负载分担的两条链路。
在上述实施例中,第一隧道和第二隧道均可以为VXLAN隧道。
继续参见图2所示,可以在VTEP22、VTEP23和VTEP24上配置VXLAN业务,该VXLAN业务对应VXLAN标识10。例如,在VTEP22上,VXLAN标识10可以绑定第一隧道,在VTEP23上,VXLAN标识10可以绑定第二隧道,在VTEP24上,VXLAN标识10可以绑定第一隧道和第二隧道。
基于上述应用场景,本申请实施例中提出一种表项生成方法,参见图3所示,为该方法的流程示意图,该方法应用于第一分布式网关,该方法包括:
步骤301,在通过第一隧道接收到对端网络设备发送的数据报文时,通过第一分布式网关上与第一主机连接的聚合口将数据报文转发给第一主机。
示例性的,该数据报文是第二主机发送给第一主机的数据报文,且数据报文的源地址为第二主机的地址。
步骤302,在第一分布式网关的转发表中添加转发表项,该转发表项的目的地址为第二主机的地址,该转发表项的出端口为第一隧道的隧道标识。
具体的,第一分布式网关在通过第一隧道接收到数据报文时,判断第一分布式网关的转发表中是否存在与该数据报文匹配的转发表项,即目的地址为第二主机的地址(即数据报文的源地址)的转发表项。如果存在,则不在该转发表中添加转发表项,如果不存在,则在该转发表中添加转发表项,该转发表项的目的地址为第二主机的地址,该转发表项的出端口为第一隧道的隧道标识。
步骤303,向第二分布式网关发送表项同步消息,该表项同步消息包括第二主机的地址和第一隧道的隧道信息,以使第二分布式网关根据该表项同步消息在第二分布式网关的转发表中添加转发表项,即,根据第二主机的地址和第一隧道的隧道信息在第二分布式网关的转发表中添加转发表项,该转发表项的目的地址为第二主机的地址,该转发表项的出端口为第二隧道的隧道标识。
示例性的,第二分布式网关在接收到表项同步消息后,从该表项同步消息中解析出第二主机的地址和第一隧道的隧道信息,并确定第一隧道的隧道信息对应的第二隧道,并在第二分布式网关的转发表中添加转发表项,该转发表项的目的地址为第二主机的地址,该转发表项的出端口为第二隧道的隧道标识。
第二分布式网关在通过第二分布式网关上与第一主机连接的聚合口接收到第一主机发送的数据报文后,若该数据报文的目的地址为第二主机的地址,则从第二分布式网关的转发表中查询该数据报文命中的该转发表项,通过该转发表项的出端口转发该数据报文,即通过第二隧道转发该数据报文。
由以上技术方案可见,本申请中,在分布式聚合的VXLAN组网下,通过在第一分布式网关和第二分布式网关之间传输表项同步消息,从而使第一分布式网关将主机的地址和隧道的隧道信息同步给第二分布式网关,使得第一分布式网关和第二分布式网关均可以生成转发表项,第一分布式网关或者第二分布式网关通过聚合口接收到数据报文后,可以基于转发表项发送数据报文,从而能够正确转发数据报文,解决聚合口接收到的数据报文可能断流的问题。
可选地,针对步骤303,在一种可能的实施方式中,第二分布式网关确定第一隧道的隧道信息对应的第二隧道,可以包括但不限于如下情况:
情况一、第一隧道的隧道信息为第一隧道的隧道标识,第二分布式网关从第二分布式网关的所有隧道中查询与该隧道标识对应的第二隧道。
比如说,由于第一分布式网关与对端网络设备的第一隧道和第二分布式网关与对端网络设备的第二隧道相同,因此,第一隧道的隧道标识与第二隧道的隧道标识相同,第二分布式网关在获知第一隧道的隧道标识后,可以从第二分布式网关的所有隧道中查询出与该隧道标识对应的第二隧道。
情况二、第一隧道的隧道信息为第一隧道的隧道地址,第二分布式网关从第二分布式网关的所有隧道中查询与该隧道地址对应的第二隧道。
比如说,由于第一分布式网关与对端网络设备的第一隧道和第二分布式网关与对端网络设备的第二隧道相同,因此,第一隧道的隧道地址与第二隧道的隧道地址相同,第二分布式网关在获知第一隧道的隧道地址后,可以从第二分布式网关的所有隧道中查询出与该隧道地址对应的第二隧道。
情况三、第一隧道的隧道信息为第一隧道绑定的网络标识和第一隧道的隧道地址,第二分布式网关可以从第二分布式网关的所有隧道中查询该网络标识绑定的第二隧道;若查询出的该第二隧道的隧道地址与第一隧道的隧道地址相同,则将该第二隧道确定为第一隧道的隧道信息对应的第二隧道。
比如说,由于第一分布式网关与对端网络设备的第一隧道和第二分布式网关与对端网络设备的第二隧道相同,因此,第一隧道的隧道地址与第二隧道的隧道地址相同,第一隧道绑定的网络标识与第二隧道绑定的网络标识相同,第二分布式网关在获知第一隧道绑定的网络标识和第一隧道的隧道地址后,可以从第二分布式网关的所有隧道中查询该网络标识绑定的第二隧道,若该第二隧道的隧道地址与第一隧道的隧道地址相同,则将该第二隧道确定为第一隧道的隧道信息对应的第二隧道,即得到与第一隧道的隧道信息对应的第二隧道。
可选地,针对步骤303,在一种可能的实施方式中,第二分布式网关确定第一隧道的隧道信息对应的第二隧道后,若第二分布式网关不存在第一隧道的隧道信息对应的第二隧道,则禁止在第二分布式网关的转发表中添加该转发表项。
比如说,可以先在第一分布式网关建立第一隧道,然后在第二分布式网关建立第二隧道,若建立第一隧道之后,建立第二隧道之前,第一分布式网关向第二分布式网关发送上述表项同步消息,则第二分布式网关接收到表项同步消息,从该表项同步消息中解析出第二主机的地址和第一隧道的隧道信息后,由于第二分布式网关不存在第一隧道的隧道信息对应的第二隧道,因此,不会在第二分布式网关的转发表中添加转发表项,即禁止在转发表中添加该转发表项。
第二分布式网关不存在第一隧道的隧道信息对应的第二隧道,包括:针对情况一,第二分布式网关的所有隧道中不存在与第一隧道的隧道标识对应的第二隧道。针对情况二,第二分布式网关的所有隧道中不存在与第一隧道的隧道地址对应的第二隧道。针对情况三,第二分布式网关的所有隧道中不存在与第一隧道的网络标识绑定的第二隧道;或第二分布式网关的所有隧道存在与第一隧道的网络标识绑定的隧道,但该隧道的隧道地址与第一隧道的隧道地址不同。
可选地,在一种可能的实施方式中,第二分布式网关创建第二隧道后,向第一分布式网关发送表项请求消息,该表项请求消息包括第二隧道的隧道信息。
第一分布式网关在接收到该表项请求消息后,从第一分布式网关的转发表中查询与第二隧道的隧道信息匹配的转发表项,该转发表项的出端口是与该隧道信息对应的第一隧道的隧道标识,并从该转发表项中获取第二主机的地址。
第一分布式网关向第二分布式网关发送表项同步消息,该表项同步消息包括第二主机的地址和第一隧道的隧道信息。第二分布式网关接收到该表项同步消息后,根据该表项同步消息生成转发表项,转发表项的生成过程参见步骤303。
可选地,在一个例子中,第一分布式网关从第一分布式网关的转发表中查询与第二隧道的隧道信息匹配的转发表项,可以包括但不限于如下情况:
情况1、第二隧道的隧道信息为第二隧道的隧道标识,第一分布式网关从第一分布式网关的转发表中查询出端口为该隧道标识的转发表项。显然,该转发表项的目的地址为第二主机的地址,出端口为第一隧道的隧道标识。
比如说,由于第一隧道和第二隧道相同,第一隧道的隧道标识与第二隧道的隧道标识相同,因此,第一分布式网关获知第二隧道的隧道标识后,可以从转发表中查询出端口为该隧道标识(即第一隧道的隧道标识)的转发表项。
情况2、第二隧道的隧道信息为第二隧道的隧道地址,第一分布式网关从第一分布式网关的所有隧道中查询与该隧道地址对应的第一隧道,并从第一分布式网关的转发表中查询出端口为该第一隧道的隧道标识的转发表项。显然,该转发表项的目的地址为第二主机的地址,出端口为第一隧道的隧道标识。
比如说,由于第一隧道和第二隧道相同,第一隧道的隧道地址与第二隧道的隧道地址相同,因此,第一分布式网关在获知第二隧道的隧道地址后,可以从第一分布式网关的所有隧道中查询与该第二隧道的隧道地址对应的第一隧道,并从转发表中查询出端口为该第一隧道的隧道标识的转发表项。
情况3、第二隧道的隧道信息为第二隧道绑定的网络标识和第二隧道的隧道地址,第一分布式网关从第一分布式网关的所有隧道中查询该网络标识绑定的第一隧道;若该第一隧道的隧道地址与第二隧道的隧道地址相同,则从第一分布式网关的转发表中查询出端口为该第一隧道的隧道标识的转发表项。显然,该转发表项的目的地址为第二主机的地址,出端口为第一隧道的隧道标识。
比如说,由于第一隧道和第二隧道相同,第一隧道的隧道地址与第二隧道的隧道地址相同,第一隧道绑定的网络标识与第二隧道绑定的网络标识相同,因此,第一分布式网关在获知第二隧道绑定的网络标识和第二隧道的隧道地址后,可以从第一分布式网关的所有隧道中查询该网络标识绑定的第一隧道;若该第一隧道的隧道地址与第二隧道的隧道地址相同,则可以从第一分布式网关的转发表中查询出端口为该第一隧道的隧道标识的转发表项。
基于与上述方法同样的构思,本申请实施例提出一种表项生成方法,应用于第二分布式网关,参见图4所示,为该方法的流程示意图,该方法包括:
步骤401,接收第一分布式网关发送的表项同步消息,该表项同步消息包括第二主机的地址和第一隧道的隧道信息;该表项同步消息是第一分布式网关通过第一隧道接收到数据报文,从该数据报文中获取第二主机的地址后发送的。
步骤402,确定第一隧道的隧道信息对应的第二隧道。
具体的,若第一隧道的隧道信息为第一隧道的隧道标识,则从第一分布式网关的所有隧道中查询与该隧道标识对应的第二隧道。或者,若第一隧道的隧道信息为第一隧道的隧道地址,则从第一分布式网关的所有隧道中查询与该隧道地址对应的第二隧道。或者,若第一隧道的隧道信息为第一隧道绑定的网络标识和第一隧道的隧道地址,则从第一分布式网关的所有隧道中查询该网络标识绑定的第二隧道;若该第二隧道的隧道地址与第一隧道的隧道地址相同,则将该第二隧道确定为第一隧道的隧道信息对应的第二隧道。
步骤403,在第二分布式网关的转发表中添加转发表项,该转发表项的目的地址为第二主机的地址,该转发表项的出端口为第二隧道的隧道标识。
步骤404,在通过聚合口接收到第一主机发送的数据报文后,若该数据报文的目的地址为第二主机的地址,则从第二分布式网关的转发表中查询该数据报文命中的该转发表项,并通过该转发表项的出端口转发该数据报文。
可选地,针对步骤402,确定第一隧道的隧道信息对应的第二隧道时,若第二分布式网关不存在第一隧道的隧道信息对应的第二隧道,则禁止在第二分布式网关的转发表中添加该转发表项;在创建第二隧道后,向第一分布式网关发送表项请求消息,该表项请求消息包括第二隧道的隧道信息,以使第一分布式网关从转发表中查询该隧道信息匹配的转发表项,从该转发表项中获取第二主机的地址。接收第一分布式网关发送的表项同步消息,该表项同步消息包括第二主机的地址和第一隧道的隧道信息,并根据该表项同步消息生成转发表项。
以下结合具体应用场景,对本申请实施例的上述技术方案进行说明。
本应用场景,参见图2所示,以主机25向主机21发送数据报文为例,针对数据报文的传输过程,本申请实施例的转发表项生成方法,可以包括:
步骤S1、主机25向VTEP24发送数据报文1,数据报文1的源IP地址为主机25的IP地址10.1.1.30,目的IP地址为主机21的IP地址10.1.1.20。
步骤S2、VTEP24接收到数据报文1后,为数据报文1封装VXLAN隧道头,VXLAN隧道头包括VXLAN标识10,得到数据报文2,并通过第一隧道将数据报文2发送给VTEP22,或通过第二隧道将数据报文2发送给VTEP23。
示例性的,VTEP24的转发表包括与10.1.1.20匹配的转发表项,本文对该转发表项的生成过程不做限制,该转发表项的目的IP地址为10.1.1.20,出端口为VXLAN标识10对应的VXLAN隧道,该VXLAN隧道的源地址为3.3.3.3,目的地址为1.2.3.4。参见上述实施例,由于第一隧道和第二隧道的源地址均为3.3.3.3,目的地址均为1.2.3.4,因此,第一隧道和第二隧道是形成该VXLAN隧道的两条链路,也就是说,VTEP24可以通过第一隧道或者第二隧道发送数据报文2,为了方便描述,以通过第一隧道将数据报文2发送给VTEP22为例。
步骤S3、VTEP22在通过第一隧道接收到VTEP24发送的数据报文2后,去除数据报文2的VXLAN隧道头,得到数据报文1。然后,VTEP22通过VTEP22上与主机21连接的聚合口A将数据报文1发送给主机21。
示例性的,VTEP22的转发表包括与10.1.1.20匹配的转发表项,本文对该转发表项的生成过程不做限制,该转发表项的目的IP地址为10.1.1.20,出端口为聚合口A(VTEP22上与主机21连接的端口221和VTEP23上与主机21连接的端口231均加入聚合口A),则通过聚合口A将数据报文1发送给主机21。
步骤S4、VTEP22判断转发表中是否存在与10.1.1.30(即数据报文1的源地址)匹配的转发表项,如果不存在,则在该转发表中添加转发表项,该转发表项的目的地址为10.1.1.30(即主机25的地址),转发表项的出端口为第一隧道的隧道标识(如隧道标识X)。参见表1所示,为VTEP22的转发表的示例。
表1
目的IP地址 | 出端口 |
10.1.1.30 | 隧道标识X |
… | … |
当然,表1只是一个示例,除了目的IP地址和出端口之外,该转发表项还可以包括其它内容,对此转发表项不做限制,例如,该转发表项可以为ARP表项,该转发表项还可以包括MAC地址(即VTEP22的网关MAC地址)、VSI、老化时间、类型等字段,参见表2所示,为该转发表项的另一个示例。
表2
目的IP地址 | MAC地址 | VSI | 出端口 | 老化时间 | 类型 |
10.1.1.30 | 0001-0001-0001 | vpna | 隧道标识X | 1146 | D |
… | … | … | … | … | … |
步骤S5、主机21通过聚合口A接收到数据报文1后,判断转发表中是否存在与10.1.1.30匹配的转发表项。如果不存在,则在该转发表中添加转发表项,该转发表项的目的地址为10.1.1.30,出端口为聚合口A,参见表3所示。
表3
目的IP地址 | 出端口 |
10.1.1.30 | 聚合口A |
… | … |
当然,表3只是一个示例,除了目的IP地址和出端口之外,该转发表项还可以包括其它内容,对此转发表项不做限制,例如,该转发表项可以为ARP表项,该转发表项还可以包括MAC地址、VSI、老化时间、类型等字段。
步骤S6、主机21向主机25发送数据报文3(如针对数据报文1的响应报文),数据报文3的源地址为10.1.1.20,目的地址为10.1.1.30,参见表3所示,由于10.1.1.30对应的出端口为聚合口A,因此,通过聚合口A发送数据报文3。
主机21在通过聚合口A发送数据报文3时,由于主机21的端口211和端口212均属于聚合口A,因此,主机21可以通过端口211发送数据报文3,主机21也可以通过端口212发送数据报文3,以主机21通过端口212发送数据报文3为例,即,主机21通过聚合口A将数据报文3发送给VTEP23。
步骤S7、VTEP22在转发表中添加转发表项后,VTEP22还向VTEP23发送表项同步消息,该表项同步消息包括主机25的地址10.1.1.30、第一隧道绑定的网络标识(即VXLAN标识,如VXLAN标识10)、第一隧道的源地址(如1.2.3.4),第一隧道的目的地址(如3.3.3.3),参见表4所示,为表项同步消息的示例。
表4
Massage type(消息类型) | ARP add |
IP地址 | 10.1.1.30 |
网络标识(VXLAN标识) | VXLAN标识10 |
隧道源地址(Tunnel source IP) | 1.2.3.4 |
隧道目的地址(Tunnel destination IP) | 3.3.3.3 |
示例性的,Massage type为ARP add(增加),ARP add表示当前消息是表项同步消息,需要根据该表项同步消息中的内容添加转发表项(即ARP表项)。
示例性的,VTEP22与VTEP23之间存在IPL链路,VTEP22可以通过IPL链路向VTEP23发送表项同步消息。比如说,在该IPL链路上创建一个表项同步通道,VTEP22可以通过该表项同步通道向VTEP23发送表项同步消息。
步骤S8、VTEP23接收到表项同步消息后,从表项同步消息中解析10.1.1.30、VXLAN标识10、第一隧道的源地址1.2.3.4,第一隧道的目的地址3.3.3.3。
若VTEP23存在与VXLAN标识10绑定的第二隧道,且第二隧道的源地址与第一隧道的源地址1.2.3.4相同,第二隧道的目的地址与第一隧道的目的地址3.3.3.3相同,则VTEP23在转发表中添加转发表项,该转发表项的目的地址为10.1.1.30,该转发表项的出端口可以为第二隧道的隧道标识(如隧道标识X,与第一隧道的隧道标识相同)。参见表5所示,为VTEP23的转发表的示例。
表5
目的IP地址 | 出端口 |
10.1.1.30 | 隧道标识X |
… | … |
当然,表5只是一个示例,除了目的IP地址和出端口之外,该转发表项还可以包括其它内容,对此转发表项不做限制,例如,该转发表项可以为ARP表项,该转发表项还可以包括MAC地址(即VTEP23的网关MAC地址)、VSI、老化时间、类型等字段,参见表6所示,为该转发表项的另一个示例。
表6
目的IP地址 | MAC地址 | VSI | 出端口 | 老化时间 | 类型 |
10.1.1.30 | 0001-0001-0001 | vpna | 隧道标识X | 1500 | D |
… | … | … | … | … | … |
步骤S9、VTEP23在通过聚合口A接收到主机21发送的数据报文3后,通过数据报文3的目的IP地址10.1.1.30查询表5所示的转发表,得到出端口为隧道标识X,通过隧道标识X对应的第二隧道将数据报文3发送给VTEP24。
VTEP23在通过第二隧道将数据报文3发送给VTEP24时,还可以为数据报文3封装VXLAN隧道头,该VXLAN隧道头可以包括VXLAN标识10。
VTEP24接收到封装有VXLAN隧道头的数据报文3后,去除VXLAN隧道头,得到数据报文3,并将数据报文3发送给主机25,完成报文传输过程。
可选地,在一种可能的实施方式中,针对上述步骤S8、若VTEP23不存在与VXLAN标识10绑定的隧道,或者,虽然VTEP23存在与VXLAN标识10绑定的隧道,但是该隧道的源地址与第一隧道的源地址1.2.3.4不同和/或该隧道的目的地址与第一隧道的目的地址3.3.3.3不同,则VTEP23不形成转发表项。
当VTEP23创建第二隧道,且将第二隧道与VXLAN标识10进行绑定之后,VTEP23还可以通过IPL(如表项同步通道)向VTEP22发送表项请求消息,该表项请求消息包括第二隧道绑定的VXLAN标识10,第二隧道的源地址1.2.3.4,第二隧道的目的地址3.3.3.3。参见表7所示,为表项请求消息的示例。
表7
Massage type(消息类型) | ARP request |
网络标识(VXLAN标识) | VXLAN标识10 |
隧道源地址(Tunnel source IP) | 1.2.3.4 |
隧道目的地址(Tunnel destination IP) | 3.3.3.3 |
示例性的,Massage type为ARP request(请求),ARP request表示当前消息是表项请求消息,需要根据该表项请求消息中的内容同步主机的IP地址。
VTEP22在接收到该表项请求消息后,从该表项请求消息中解析出VXLAN标识10、第二隧道的源地址1.2.3.4,第二隧道的目的地址3.3.3.3。若VTEP22存在与VXLAN标识10绑定的第一隧道,且第一隧道的源地址与第二隧道的源地址1.2.3.4相同,第一隧道的目的地址与第二隧道的目的地址3.3.3.3相同,则确定出第一隧道的隧道标识X。参见表1所示,VTEP22从转发表中查询出端口为隧道标识X的转发表项,从该转发表项中获取到主机25的地址10.1.1.30。
然后,VTEP22可以向VTEP23发送表项同步消息,该表项同步消息包括主机25的地址10.1.1.30、第一隧道绑定的VXLAN标识10、第一隧道的源地址1.2.3.4、第一隧道的目的地址3.3.3.3。VTEP23在接收到表项同步消息后,在转发表中添加转发表项,该转发表项的目的地址为10.1.1.30,该转发表项的出端口可以为第二隧道的隧道标识X,具体实现过程参见步骤S7和步骤S8。
由以上技术方案可见,本申请中,在分布式聚合的VXLAN组网下,通过在第一分布式网关和第二分布式网关之间传输表项同步消息,从而使第一分布式网关将主机的地址和隧道的隧道信息同步给第二分布式网关,使得第一分布式网关和第二分布式网关均可以生成转发表项,第一分布式网关或者第二分布式网关通过聚合口接收到数据报文后,可以基于转发表项发送数据报文,从而能够正确转发数据报文,解决聚合口接收到的数据报文可能断流的问题。上述方式能够实现MLAG组网中,MLAG设备间同步VXLAN业务隧道上学习的ARP表项,从而解决了聚合接入侧通过不同的链路转发报文可能断流的问题。
相应地,基于与上述方法同样的申请构思,本申请实施例还提出一种表项生成装置,第一分布式网关和第二分布式网关中配置有相同的网关地址,第一分布式网关和第二分布式网关通过聚合口与第一主机连接,所述第一分布式网关与对端网络设备之间建立第一隧道,所述第二分布式网关与对端网络设备之间建立第二隧道,所述第一隧道的源地址与所述第二隧道的源地址相同,所述第一隧道的目的地址与所述第二隧道的目的地址相同,所述装置应用于第一分布式网关,参见图5A所示,所述装置可以包括:接收模块511,用于在通过所述第一隧道接收到对端网络设备发送的数据报文时,通过所述聚合口将所述数据报文转发给第一主机;其中,所述数据报文的源地址为第二主机的地址;生成模块512,用于在第一分布式网关的转发表中添加转发表项,转发表项的目的地址为第二主机的地址,转发表项的出端口为所述第一隧道的隧道标识;发送模块513,用于向第二分布式网关发送表项同步消息,所述表项同步消息包括第二主机的地址和所述第一隧道的隧道信息,以使第二分布式网关根据所述表项同步消息在所述第二分布式网关的转发表中添加转发表项,该转发表项的目的地址为第二主机的地址,该转发表项的出端口为所述第二隧道的隧道标识。
可选地,在一个例子中,所述接收模块511,还用于接收第二分布式网关发送的表项请求消息,所述表项请求消息包括所述第二隧道的隧道信息,所述表项请求消息是第二分布式网关创建所述第二隧道后发送的;
所述装置还包括:处理模块,用于从第一分布式网关的转发表中查询与所述隧道信息匹配的转发表项,该转发表项的出端口是与所述隧道信息对应的第一隧道的隧道标识,并从该转发表项中获取第二主机的地址;
所述发送模块513,还用于向所述第二分布式网关发送表项同步消息,所述表项同步消息包括第二主机的地址和所述第一隧道的隧道信息。
可选地,在一个例子中,所述处理模块从第一分布式网关的转发表中查询与所述隧道信息匹配的转发表项时具体用于:
若所述第二隧道的隧道信息为所述第二隧道的隧道标识,则从第一分布式网关的转发表中查询出端口为该隧道标识的转发表项;或者,
若所述第二隧道的隧道信息为所述第二隧道的隧道地址,则从第一分布式网关的所有隧道中查询与该隧道地址对应的第一隧道,并从第一分布式网关的转发表中查询出端口为该第一隧道的隧道标识的转发表项;或者,
若所述第二隧道的隧道信息为所述第二隧道绑定的网络标识和所述第二隧道的隧道地址,则从第一分布式网关的所有隧道中查询所述网络标识绑定的第一隧道;若该第一隧道的隧道地址与所述第二隧道的隧道地址相同,则从第一分布式网关的转发表中查询出端口为该第一隧道的隧道标识的转发表项。
相应地,基于与上述方法同样的申请构思,本申请实施例还提出一种表项生成装置,第一分布式网关和第二分布式网关中配置有相同的网关地址,第一分布式网关和第二分布式网关通过聚合口与第一主机连接,所述第一分布式网关与对端网络设备之间建立第一隧道,所述第二分布式网关与对端网络设备之间建立第二隧道,所述第一隧道的源地址与所述第二隧道的源地址相同,所述第一隧道的目的地址与所述第二隧道的目的地址相同,所述装置应用于第二分布式网关,参见图5B所示,所述装置可以包括:接收模块521,用于接收第一分布式网关发送的表项同步消息,所述表项同步消息包括第二主机的地址和第一隧道的隧道信息;所述表项同步消息是第一分布式网关通过第一隧道接收到数据报文,从数据报文中获取第二主机的地址后发送的;
确定模块522,用于确定所述第一隧道的隧道信息对应的第二隧道;
生成模块523,用于在第二分布式网关的转发表中添加转发表项,转发表项的目的地址为第二主机的地址,转发表项的出端口为所述第二隧道的隧道标识;
发送模块524,用于在通过所述聚合口接收到第一主机发送的数据报文后,若该数据报文的目的地址为第二主机的地址,则从第二分布式网关的转发表中查询该数据报文命中的转发表项,通过该转发表项的出端口转发该数据报文。
可选地,在一个例子中,所述确定模块522确定所述第一隧道的隧道信息对应的第二隧道时具体用于:若所述第一隧道的隧道信息为所述第一隧道的隧道标识,则从第二分布式网关的所有隧道中查询与该隧道标识对应的第二隧道;或者,若所述第一隧道的隧道信息为所述第一隧道的隧道地址,则从第二分布式网关的所有隧道中查询与该隧道地址对应的第二隧道;或者,
若所述第一隧道的隧道信息为所述第一隧道绑定的网络标识和所述第一隧道的隧道地址,则从第二分布式网关的所有隧道中查询所述网络标识绑定的第二隧道;若该第二隧道的隧道地址与所述第一隧道的隧道地址相同,则将该第二隧道确定为所述第一隧道的隧道信息对应的第二隧道。
可选地,在一个例子中,所述发送模块524,还用于若第二分布式网关不存在所述第一隧道的隧道信息对应的第二隧道,则禁止在第二分布式网关的转发表中添加该转发表项;在创建所述第二隧道后,向第一分布式网关发送表项请求消息,所述表项请求消息包括所述第二隧道的隧道信息,以使第一分布式网关从转发表中查询该隧道信息匹配的转发表项,从该转发表项中获取第二主机的地址;所述接收模块521,还用于接收第一分布式网关发送的表项同步消息,所述表项同步消息包括第二主机的地址和第一隧道的隧道信息。
本申请实施例提供的分布式网关(如上述第一分布式网关或者第二分布式网关),从硬件层面而言,硬件架构示意图可以参见图6所示,该分布式网关可以包括:机器可读存储介质和处理器,其中:
机器可读存储介质:存储指令代码。
处理器:与机器可读存储介质通信,读取和执行机器可读存储介质中存储的所述指令代码,实现本申请上述示例公开的表项生成操作。
这里,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(RadomAccess Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (12)
1.一种表项生成方法,其特征在于,第一分布式网关和第二分布式网关中配置有相同的网关地址,第一分布式网关和第二分布式网关通过聚合口与第一主机连接,所述第一分布式网关与对端网络设备之间建立第一隧道,所述第二分布式网关与对端网络设备之间建立第二隧道,所述第一隧道的源地址与所述第二隧道的源地址相同,所述第一隧道的目的地址与所述第二隧道的目的地址相同,所述方法应用于第一分布式网关,包括:
在通过所述第一隧道接收到对端网络设备发送的数据报文时,通过所述聚合口将所述数据报文转发给第一主机;其中,所述数据报文的源地址为第二主机的地址;
在第一分布式网关的转发表中添加转发表项,该转发表项的目的地址为第二主机的地址,该转发表项的出端口为所述第一隧道的隧道标识;
向第二分布式网关发送表项同步消息,所述表项同步消息包括第二主机的地址和所述第一隧道的隧道信息,以使所述第二分布式网关根据所述表项同步消息在所述第二分布式网关的转发表中添加转发表项,该转发表项的目的地址为第二主机的地址,该转发表项的出端口为所述第二隧道的隧道标识。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收第二分布式网关发送的表项请求消息,所述表项请求消息包括所述第二隧道的隧道信息,所述表项请求消息是第二分布式网关创建所述第二隧道后发送的;
从第一分布式网关的转发表中查询与所述第二隧道的隧道信息匹配的转发表项,该转发表项的出端口是与所述第二隧道的隧道信息对应的第一隧道的隧道标识;
从该转发表项中获取第二主机的地址,并向第二分布式网关发送表项同步消息,所述表项同步消息包括第二主机的地址和所述第一隧道的隧道信息。
3.根据权利要求2所述的方法,其特征在于,所述从第一分布式网关的转发表中查询与所述第二隧道的隧道信息匹配的转发表项,包括:
若所述第二隧道的隧道信息为所述第二隧道的隧道标识,则从第一分布式网关的转发表中查询出端口为所述第二隧道的隧道标识的转发表项;或者,
若所述第二隧道的隧道信息为所述第二隧道的隧道地址,则从第一分布式网关的所有隧道中查询与所述第二隧道的隧道地址对应的第一隧道,并从第一分布式网关的转发表中查询出端口为该第一隧道的隧道标识的转发表项;或者,
若所述第二隧道的隧道信息为所述第二隧道绑定的网络标识和所述第二隧道的隧道地址,则从第一分布式网关的所有隧道中查询所述网络标识绑定的第一隧道;若该第一隧道的隧道地址与所述第二隧道的隧道地址相同,则从第一分布式网关的转发表中查询出端口为该第一隧道的隧道标识的转发表项。
4.一种表项生成方法,其特征在于,第一分布式网关和第二分布式网关中配置有相同的网关地址,第一分布式网关和第二分布式网关通过聚合口与第一主机连接,所述第一分布式网关与对端网络设备之间建立第一隧道,所述第二分布式网关与对端网络设备之间建立第二隧道,所述第一隧道的源地址与所述第二隧道的源地址相同,所述第一隧道的目的地址与所述第二隧道的目的地址相同,所述方法应用于第二分布式网关,包括:
接收第一分布式网关发送的表项同步消息,所述表项同步消息包括第二主机的地址和第一隧道的隧道信息;其中,所述表项同步消息是第一分布式网关通过第一隧道接收到数据报文,从数据报文中获取第二主机的地址后发送的;其中,所述数据报文的源地址为所述第二主机的地址;
确定所述第一隧道的隧道信息对应的第二隧道;
在第二分布式网关的转发表中添加转发表项,该转发表项的目的地址为第二主机的地址,该转发表项的出端口为所述第二隧道的隧道标识;
在通过所述聚合口接收到第一主机发送的数据报文后,若该数据报文的目的地址为第二主机的地址,则从第二分布式网关的转发表中查询该数据报文命中的该转发表项,通过该转发表项的出端口转发该数据报文。
5.根据权利要求4所述的方法,其特征在于,
所述确定所述第一隧道的隧道信息对应的第二隧道,包括:
若所述第一隧道的隧道信息为所述第一隧道的隧道标识,则从第二分布式网关的所有隧道中查询与所述第一隧道的隧道标识对应的第二隧道;或者,
若所述第一隧道的隧道信息为所述第一隧道的隧道地址,则从第二分布式网关的所有隧道中查询与所述第一隧道的隧道地址对应的第二隧道;或者,
若所述第一隧道的隧道信息为所述第一隧道绑定的网络标识和所述第一隧道的隧道地址,则从第二分布式网关的所有隧道中查询所述网络标识绑定的第二隧道;若该第二隧道的隧道地址与所述第一隧道的隧道地址相同,则将该第二隧道确定为所述第一隧道的隧道信息对应的第二隧道。
6.根据权利要求4或5所述的方法,其特征在于,
所述确定所述第一隧道的隧道信息对应的第二隧道之后,还包括:
若第二分布式网关不存在所述第一隧道的隧道信息对应的第二隧道,则禁止在第二分布式网关的转发表中添加该转发表项;
在创建所述第二隧道后,向第一分布式网关发送表项请求消息,所述表项请求消息包括所述第二隧道的隧道信息,以使第一分布式网关从转发表中查询所述第二隧道的隧道信息匹配的转发表项,从该转发表项中获取第二主机的地址;
接收第一分布式网关发送的表项同步消息,所述表项同步消息包括第二主机的地址和第一隧道的隧道信息,根据所述表项同步消息生成转发表项。
7.一种表项生成装置,其特征在于,第一分布式网关和第二分布式网关中配置有相同的网关地址,第一分布式网关和第二分布式网关通过聚合口与第一主机连接,所述第一分布式网关与对端网络设备之间建立第一隧道,所述第二分布式网关与对端网络设备之间建立第二隧道,所述第一隧道的源地址与所述第二隧道的源地址相同,所述第一隧道的目的地址与所述第二隧道的目的地址相同,所述装置应用于第一分布式网关,包括:
接收模块,用于在通过所述第一隧道接收到对端网络设备发送的数据报文时,通过所述聚合口将所述数据报文转发给第一主机;其中,所述数据报文的源地址为第二主机的地址;
生成模块,用于在第一分布式网关的转发表中添加转发表项,转发表项的目的地址为第二主机的地址,转发表项的出端口为所述第一隧道的隧道标识;
发送模块,用于向第二分布式网关发送表项同步消息,所述表项同步消息包括第二主机的地址和所述第一隧道的隧道信息,由第二分布式网关根据所述表项同步消息在所述第二分布式网关的转发表中添加转发表项,该转发表项的目的地址为第二主机的地址,该转发表项的出端口为所述第二隧道的隧道标识。
8.根据权利要求7所述的装置,其特征在于,所述接收模块,还用于接收第二分布式网关发送的表项请求消息,所述表项请求消息包括所述第二隧道的隧道信息,所述表项请求消息是第二分布式网关创建所述第二隧道后发送的;
所述装置还包括:处理模块,用于从第一分布式网关的转发表中查询与所述第二隧道的隧道信息匹配的转发表项,该转发表项的出端口是与所述第二隧道的隧道信息对应的第一隧道的隧道标识,并从该转发表项中获取第二主机的地址;
所述发送模块,还用于向所述第二分布式网关发送表项同步消息,所述表项同步消息包括第二主机的地址和所述第一隧道的隧道信息。
9.根据权利要求8所述的装置,其特征在于,所述处理模块从第一分布式网关的转发表中查询与所述第二隧道的隧道信息匹配的转发表项时具体用于:
若所述第二隧道的隧道信息为所述第二隧道的隧道标识,则从第一分布式网关的转发表中查询出端口为所述第二隧道的隧道标识的转发表项;或者,
若所述第二隧道的隧道信息为所述第二隧道的隧道地址,则从第一分布式网关的所有隧道中查询与所述第二隧道的隧道地址对应的第一隧道,并从第一分布式网关的转发表中查询出端口为该第一隧道的隧道标识的转发表项;或者,
若所述第二隧道的隧道信息为所述第二隧道绑定的网络标识和所述第二隧道的隧道地址,则从第一分布式网关的所有隧道中查询所述网络标识绑定的第一隧道;若该第一隧道的隧道地址与所述第二隧道的隧道地址相同,则从第一分布式网关的转发表中查询出端口为该第一隧道的隧道标识的转发表项。
10.一种表项生成装置,其特征在于,第一分布式网关和第二分布式网关中配置有相同的网关地址,第一分布式网关和第二分布式网关通过聚合口与第一主机连接,所述第一分布式网关与对端网络设备之间建立第一隧道,所述第二分布式网关与对端网络设备之间建立第二隧道,所述第一隧道的源地址与所述第二隧道的源地址相同,所述第一隧道的目的地址与所述第二隧道的目的地址相同,所述装置应用于第二分布式网关,包括:
接收模块,用于接收第一分布式网关发送的表项同步消息,所述表项同步消息包括第二主机的地址和第一隧道的隧道信息;所述表项同步消息是第一分布式网关通过第一隧道接收到数据报文,从数据报文中获取第二主机的地址后发送的;其中,所述数据报文的源地址为所述第二主机的地址;
确定模块,用于确定所述第一隧道的隧道信息对应的第二隧道;
生成模块,用于在第二分布式网关的转发表中添加转发表项,转发表项的目的地址为第二主机的地址,转发表项的出端口为所述第二隧道的隧道标识;
发送模块,用于在通过所述聚合口接收到第一主机发送的数据报文后,若该数据报文的目的地址为第二主机的地址,则从第二分布式网关的转发表中查询该数据报文命中的转发表项,通过该转发表项的出端口转发该数据报文。
11.根据权利要求10所述的装置,其特征在于,
所述确定模块确定所述第一隧道的隧道信息对应的第二隧道时具体用于:
若所述第一隧道的隧道信息为所述第一隧道的隧道标识,则从第二分布式网关的所有隧道中查询与所述第一隧道的隧道标识对应的第二隧道;或者,
若所述第一隧道的隧道信息为所述第一隧道的隧道地址,则从第二分布式网关的所有隧道中查询与所述第一隧道的隧道地址对应的第二隧道;或者,
若所述第一隧道的隧道信息为所述第一隧道绑定的网络标识和所述第一隧道的隧道地址,则从第二分布式网关的所有隧道中查询所述网络标识绑定的第二隧道;若该第二隧道的隧道地址与所述第一隧道的隧道地址相同,则将该第二隧道确定为所述第一隧道的隧道信息对应的第二隧道。
12.根据权利要求10或11所述的装置,其特征在于,
所述发送模块,还用于若第二分布式网关不存在所述第一隧道的隧道信息对应的第二隧道,则禁止在第二分布式网关的转发表中添加该转发表项;在创建所述第二隧道后,向第一分布式网关发送表项请求消息,所述表项请求消息包括所述第二隧道的隧道信息,以使第一分布式网关从转发表中查询所述第二隧道的隧道信息匹配的转发表项,从该转发表项中获取第二主机的地址;
所述接收模块,还用于接收第一分布式网关发送的表项同步消息,所述表项同步消息包括第二主机的地址和第一隧道的隧道信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010997433.4A CN112187609B (zh) | 2020-09-21 | 2020-09-21 | 表项生成方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010997433.4A CN112187609B (zh) | 2020-09-21 | 2020-09-21 | 表项生成方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112187609A CN112187609A (zh) | 2021-01-05 |
CN112187609B true CN112187609B (zh) | 2022-01-25 |
Family
ID=73956803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010997433.4A Active CN112187609B (zh) | 2020-09-21 | 2020-09-21 | 表项生成方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112187609B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113328937B (zh) * | 2021-04-08 | 2022-05-24 | 新华三技术有限公司 | 分布式聚合的实现方法及装置 |
CN113472667B (zh) * | 2021-06-29 | 2022-06-21 | 新华三信息安全技术有限公司 | 一种报文转发方法、装置、节点设备及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161248A (zh) * | 2015-04-27 | 2016-11-23 | 杭州华三通信技术有限公司 | 一种vxlan网络中报文转发方法及装置 |
CN106878183A (zh) * | 2017-01-22 | 2017-06-20 | 新华三技术有限公司 | 流量转发方法及装置 |
CN108259299A (zh) * | 2017-06-23 | 2018-07-06 | 新华三技术有限公司 | 一种转发表项生成方法、装置及机器可读存储介质 |
CN108259295A (zh) * | 2017-03-24 | 2018-07-06 | 新华三技术有限公司 | Mac地址同步方法及装置 |
CN109617817A (zh) * | 2019-01-22 | 2019-04-12 | 新华三技术有限公司 | 一种mlag组网的转发表项的生成方法及装置 |
CN109756424A (zh) * | 2019-03-25 | 2019-05-14 | 北京智芯微电子科技有限公司 | 业务流表聚合方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243318B (zh) * | 2014-09-29 | 2018-10-09 | 新华三技术有限公司 | Vxlan网络中的mac地址学习方法及装置 |
-
2020
- 2020-09-21 CN CN202010997433.4A patent/CN112187609B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106161248A (zh) * | 2015-04-27 | 2016-11-23 | 杭州华三通信技术有限公司 | 一种vxlan网络中报文转发方法及装置 |
CN106878183A (zh) * | 2017-01-22 | 2017-06-20 | 新华三技术有限公司 | 流量转发方法及装置 |
CN108259295A (zh) * | 2017-03-24 | 2018-07-06 | 新华三技术有限公司 | Mac地址同步方法及装置 |
CN108259299A (zh) * | 2017-06-23 | 2018-07-06 | 新华三技术有限公司 | 一种转发表项生成方法、装置及机器可读存储介质 |
CN109617817A (zh) * | 2019-01-22 | 2019-04-12 | 新华三技术有限公司 | 一种mlag组网的转发表项的生成方法及装置 |
CN109756424A (zh) * | 2019-03-25 | 2019-05-14 | 北京智芯微电子科技有限公司 | 业务流表聚合方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112187609A (zh) | 2021-01-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10333836B2 (en) | Convergence for EVPN multi-homed networks | |
US10348672B2 (en) | Using a virtual internet protocol address to represent dually connected hosts in an internet protocol overlay network | |
EP3471347B1 (en) | Vxlan packet processing method, device and system | |
CN106936939B (zh) | 一种报文处理方法、相关装置及nvo3网络系统 | |
CN107612808B (zh) | 隧道建立方法和装置 | |
CN107819677B (zh) | 一种报文转发方法及装置 | |
US10193707B2 (en) | Packet transmission method and apparatus | |
CN108259299B (zh) | 一种转发表项生成方法、装置及机器可读存储介质 | |
CN111901244B (zh) | 一种网络报文转发系统 | |
CN108574616A (zh) | 一种处理路由的方法、设备及系统 | |
US11165693B2 (en) | Packet forwarding | |
WO2017215390A1 (zh) | 一种纵向堆叠系统的数据转发端口选择方法及装置 | |
CN103166874A (zh) | 一种报文转发方法及设备 | |
CN108718269B (zh) | 报文处理方法及装置 | |
CN108600109B (zh) | 一种报文转发方法和装置 | |
CN109474507B (zh) | 一种报文转发方法及装置 | |
CN112187609B (zh) | 表项生成方法和装置 | |
EP3301868B1 (en) | Symmetric intersubnet traffic load balancing in multihomed networks | |
CN111132170A (zh) | 虚拟防火墙的通信方法和装置、虚拟防火墙及拓扑结构 | |
CN107682261B (zh) | 流量转发方法及装置 | |
CN108718276A (zh) | 一种报文转发方法和装置 | |
CN113328937B (zh) | 分布式聚合的实现方法及装置 | |
CN112822097A (zh) | 报文转发的方法、第一网络设备以及第一设备组 | |
WO2015175675A1 (en) | Active-active access to transparent interconnection of lots of links (trill) edges | |
CN116418632A (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 |