CN107645433B - 报文转发方法及装置 - Google Patents
报文转发方法及装置 Download PDFInfo
- Publication number
- CN107645433B CN107645433B CN201710775859.3A CN201710775859A CN107645433B CN 107645433 B CN107645433 B CN 107645433B CN 201710775859 A CN201710775859 A CN 201710775859A CN 107645433 B CN107645433 B CN 107645433B
- Authority
- CN
- China
- Prior art keywords
- vxlan
- message
- vtep
- packet
- tunnel
- 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
Abstract
本公开涉及一种报文转发方法及装置,包括:接收VM发送的数据;获取与数据的tag对应的第一VXLAN ID;将数据封装成第一VXLAN报文,第一VXLAN报文携带有第一VXLAN ID;当确定将第一VXLAN报文发送至指定VTEP时,根据第二VXLAN ID对第一VXLAN报文进行二次封装,以获取第二VXLAN报文,第二VXLAN ID用于指示VXLAN报文通过专用VXLAN隧道传输;将第二VXLAN报文通过专用VXLAN隧道发送至指定VTEP。通过将不同tag的数据使用相同VXLAN隧道进行传输,根据本公开实施例的报文转发方法及装置能够节省VXLAN隧道的可用资源,减少配置工作量。
Description
技术领域
本公开涉及网络通信技术领域,尤其涉及一种报文转发方法及装置。
背景技术
为了提高VXLAN(Virtual eXtensible LAN,虚拟可扩展局域网)的可靠性,通常会在VXLAN网络中应用分布式聚合技术,分布式VTEP(VXLAN Tunnel End Point,VXLAN网络端点)之间可以通过VXLAN隧道进行数据报文的转发。图4a示出了一种分布式聚合的网络结构示意图,其中,VTEP1和VTEP3组成一个DR(Distributed Relay,分布式聚合)系统,VTEP1和VTEP3之间可以通过IPL链路(Intra Port Link,分布式聚合内部链路)发送控制报文,VTEP1和VTEP3通过DR口与VM1连接。VM1到VM2的流量转发可以经过分布式聚合的VTEP1或者VTEP3进行转发。
目前分布式聚合场景中,分布式VTEP需要将VXLAN业务与分布式VTEP之间的隧道都进行绑定才能够进行VXLAN报文的转发,如果VTEP上面VXLAN业务过多,分布式VTEP之间使用的VXLAN隧道数量也就较多,减少了正常VXLAN业务可使用的VXLAN隧道的数目、增加了配置工作量。
发明内容
有鉴于此,本公开提出了一种报文转发方法及装置,能够节省VXLAN隧道的可用资源,减少配置工作量。
根据本公开的一方面,提供了一种报文转发方法,该方法应用于VTEP,该方法包括:接收VM发送的数据;获取与所述数据的标签tag对应的第一VXLAN ID;将所述数据封装成第一VXLAN报文,所述第一VXLAN报文携带有所述第一VXLAN ID;当确定将所述第一VXLAN报文发送至指定VTEP时,根据第二VXLAN ID对所述第一VXLAN报文进行二次封装,以获取第二VXLAN报文,所述第二VXLAN ID用于指示VXLAN报文通过专用VXLAN隧道传输;将所述第二VXLAN报文通过所述专用VXLAN隧道发送至指定VTEP。
根据本公开的另一方面,提供了一种报文转发方法,该方法应用于DR系统中的第一VTEP,该方法包括:接收第一VM发送的数据,所述数据的目的地址为第二VTEP的第二VM,所述第二VTEP不属于所述DR系统;获取与所述数据的tag对应的第一VXLAN ID;将所述数据封装成第一VXLAN报文,所述第一VXLAN报文携带有所述第一VXLAN ID;当确定将所述第一VXLAN报文发送至第三VTEP时,根据第二VXLAN ID对所述第一VXLAN报文进行二次封装,以获取第二VXLAN报文,所述第三VTEP属于所述DR系统,所述第二VXLAN ID用于封装专用VXLAN隧道;将所述第二VXLAN报文通过所述专用VXLAN隧道发送至第三VTEP。
根据本公开的另一方面,提供一种报文转发装置,该装置应用于VTEP,包括:第一接收模块,用于接收虚拟机VM发送的数据;获取模块,用于获取与所述数据的标签tag对应的第一VXLAN ID;第一封装模块,用于将所述数据封装成第一VXLAN报文,所述第一VXLAN报文携带有所述第一VXLAN ID;第二封装模块,用于当确定将所述第一VXLAN报文发送至指定VTEP时,根据第二VXLAN ID对所述第一VXLAN报文进行二次封装,以获取第二VXLAN报文,所述第二VXLAN ID用于指示VXLAN报文通过专用VXLAN隧道传输;第一发送模块,用于将所述第二VXLAN报文通过所述专用VXLAN隧道发送至指定VTEP。
根据本公开的另一方面,提供一种报文转发装置,该装置应用于DR系统中的第一VTEP,该装置包括:第一接收模块,用于接收第一VM发送的数据,所述数据的目的地址为第二VTEP的第二VM,所述第二VTEP不属于所述DR系统;获取模块,用于获取与所述数据的tag对应的第一VXLAN ID;第一封装模块,用于将所述数据封装成第一VXLAN报文,所述第一VXLAN报文携带有所述第一VXLAN ID;第二封装模块,用于当确定将所述第一VXLAN报文发送至第三VTEP时,根据第二VXLAN ID对所述第一VXLAN报文进行二次封装,以获取第二VXLAN报文,所述第三VTEP属于所述DR系统,所述第二VXLAN ID用于封装专用VXLAN隧道;第一发送模块,用于将所述第二VXLAN报文通过所述专用VXLAN隧道发送至第三VTEP。
通过使用与数据的tag对应的第一VXLAN ID将VM发送的数据封装成第一VXLAN报文,当确定将所述第一VXLAN报文发送至指定VTEP时,使用第二VXLAN ID对第一VXLAN报文进行二次封装,以获取第二VXLAN报文,将第二VXLAN报文通过与第二VXLAN ID对应的专用VXLAN隧道发送至指定VTEP,根据本公开的各方面的报文转发方法及装置能够将不同tag对应的数据封装成的VXLAN报文,使用相同的第二VXLAN ID进行二次封装,使不同tag对应的数据可以通过同一条VXLAN隧道发送至指定VTEP,不再需要针对每个业务建立一个VXLAN隧道,节省了VXLAN隧道的可用资源,并减少了大量的、繁琐的VXLAN ID与VXLAN隧道的绑定操作,配置简单。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出根据本公开一实施例的报文转发方法的流程图;
图2示出根据本公开一实施例的报文转发方法的流程图;
图3示出根据本公开一实施例的报文转发方法的流程图;
图4a示出一种分布式聚合的网络结构示意图;
图4b示出根据本公开一个示例的分布式聚合的网络结构示意图;
图5示出根据本公开一实施例的报文转发方法的流程图;
图6示出根据本公开一实施例的报文转发方法的流程图;
图7示出根据本公开一实施例的报文转发装置的框图;
图8示出根据本公开一实施例的报文转发装置的框图;
图9示出根据本公开一实施例的报文转发装置的框图;
图10示出根据本公开一实施例的报文转发装置的框图;
图11示出根据本公开一实施例的报文转发装置的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出根据本公开一实施例的报文转发方法的流程图。该方法可以应用于VTEP,如图1所示,该方法包括:
步骤S101,接收VM发送的数据。
EVPN(Ethernet Virtual Private Network,以太网虚拟专用网络)是一种二层VPN技术,控制平面采用BGP(Border Gateway Protocol,边界网关协议)通告路由信息,数据平面采用VXLAN报文封装方式转发用户报文。
VTEP可以接收本地VM(Virtual Machine,虚拟机)发送的数据,并对VM发送的数据进行VXLAN封装和转发。
步骤S102,获取与所述数据的tag对应的第一VXLAN ID。
一个VTEP可以处理不同的VXLAN业务,可以使用VXLAN ID区分不同的VXLAN业务。VM发送的数据的tag,可以映射到VTEP上VXLAN ID为数据的tag(标签)的VXLAN业务。第一VXLAN ID可以用于表示与数据的tag对应的VXLAN ID。数据的tag不同,对应的第一VXLANID不同,对应的VXLAN业务不同。本地VTEP接收到数据后,可以获取与数据的tag对应的VXLAN ID,以便于对该数据进行封装和转发。
在一个示例中,数据的tag为10,数据可以映射到本地VTEP上VXLAN ID为10的VXLAN业务。本地VTEP接收到该数据后,可以获取到与tag10对应的第一VXLAN ID为10,从而可以将使用VXLAN ID 10对该数据进行封装和转发。
步骤S103,将所述数据封装成第一VXLAN报文,所述第一VXLAN报文携带有所述第一VXLAN ID。
本地VTEP可以使用获取的第一VXLAN ID将数据封装成第一VXLAN报文。第一VXLAN报文的报头的VXLAN ID设置为所述第一VXLAN ID。
步骤S104,当确定将所述第一VXLAN报文发送至指定VTEP时,根据第二VXLAN ID对所述第一VXLAN报文进行二次封装,以获取第二VXLAN报文,所述第二VXLAN ID用于指示VXLAN报文通过专用VXLAN隧道传输。
其中,指定VTEP可以为EVPN网络中与本地VTEP之间建立了专用VXLAN隧道的VTEP。专用VXLAN隧道可以为本地VTEP和指定VTEP之间建立的VXLAN隧道,用于满足本地VTEP和指定VTEP之间有特殊需求的业务,其中该特殊需求的业务可以理解为包括共享该VXLAN隧道的不同业务。
第二VXLAN ID可以为所述专用VXLAN隧道对应的VXLAN ID。第二VXLAN ID为与第一VXLAN ID不同的VXLAN ID。在一个示例中,第二VXLAN ID可以为任何未被占用的VXLANID。在一种可能的实现方式中,第二VXLAN ID可以作为保留VXLAN ID,专用于有特殊需求的业务,例如DR系统内转发的业务。
本地VTEP可以使用第二VXLAN ID对第一VXLAN报文进行二次封装,以获取第二VXLAN报文。第二VXLAN报文的报头包括第一VXLAN ID和第二VXLAN ID,并通过协议等方式规定,使设备在接收第二报文的时候可以优先识别处理第二VXLAN ID,例如在一种可能的实现方式中,可以将第二VXLAN ID放在第一VXLAN ID的外层。这样,在第二VXLAN ID被解封装出来之后,第一VXLAN ID可以被解封装出来,在第二VXLAN ID被解封装出来之前,第一VXLAN ID不可以被解封装出来。
步骤S105,将所述第二VXLAN报文通过所述专用VXLAN隧道发送至指定VTEP。
专用VXLAN隧道为本地VTEP与指定VTEP之间建立的隧道,且专用VXLAN隧道对应的VXLAN ID为第二VXLAN ID。本地VTEP上专用VXLAN隧道的源地址为本地VTEP的IP地址,本地VTEP上与指定VTEP间的专用VXLAN隧道的目的地址为指定VTEP的IP地址;指定VTEP上专用VXLAN隧道的源地址为指定VTEP的IP地址,指定VTEP上专用VXLAN隧道的目的地址为本地VTEP的IP地址。
本地VTEP与不同的VTEP之间可以分别建立专用VXLAN隧道,且所有的专用VXLAN隧道的封装VXLAN ID相同,均为第二VXLAN ID。本地VTEP上与不同VTEP之间的专用VXLAN隧道的源地址可以均为本地VTEP的IP地址,目的地址为各VTEP的IP地址。与本地VTEP建立专用VXLAN隧道的不同VTEP上专用VXLAN隧道的目的地址均为本地VTEP的IP地址。
在一种可能的实现方式中,本地VTEP可以根据所述第二VXLAN ID和所述指定VTEP的IP地址,从多条专用VXLAN隧道中确定出指定VTEP对应的专用VXLAN隧道。本地VTEP通过该专用VXLAN隧道发送第二VXLAN报文,可以将第二VXLAN报文发送至指定VTEP。
通过使用与数据的tag对应的第一VXLAN ID将VM发送的数据封装成第一VXLAN报文,当确定将所述第一VXLAN报文发送至指定VTEP时,使用第二VXLAN ID对第一VXLAN报文进行二次封装,以获取第二VXLAN报文,将第二VXLAN报文通过与第二VXLAN ID对应的专用VXLAN隧道发送至指定VTEP,根据本公开实施例的报文转发方法能够将不同tag对应的数据封装成的VXLAN报文,使用相同的第二VXLAN ID进行二次封装,使不同tag对应的数据可以通过同一条VXLAN隧道发送至指定VTEP,不再需要针对每个业务建立一个VXLAN隧道,节省了VXLAN隧道的可用资源,并减少了大量的、繁琐的VXLAN ID与VXLAN隧道的绑定操作,配置简单。
图2示出根据本公开一实施例的报文转发方法的流程图。该方法可以应用于VTEP,如图1所示,该方法包括:
步骤S201,接收第三VXLAN报文。
本地VTEP接收的第三VXLAN报文可能是上述的第一VXLAN报文,也可能是上述的第二VXLAN报文。其中,第一VXLAN报文可以表示VM发送的数据经过一次VXLAN封装得到的VXLAN报文,第二VXLAN报文可以表示对第一VXLAN报文进行二次封装得到的VXLAN报文。第一VXLAN报文可以在VXLAN ID为第一VXLAN ID的VXLAN隧道传输,第二VXLAN报文可以在VXLAN ID为第二VXLAN ID的VXLAN隧道传输。
步骤S202,解封装所述第三VXLAN报文,获取所述第三VXLAN报文的报头的VXLANID和第一报文。
当所述第三VXLAN报文为第一VXLAN报文时,解封装后可以得到VM发送的数据。本地VTEP可以直接对该数据进行封装转发。当第三VXLAN报文为第二VXLAN报文时,解封装后可以得到一个VXLAN报文,需要二次解封装。在本公开实施例中,本地VTEP可以根据解封第三VXLAN报文获取的第三VXLAN报文的报头的VXLAN ID是否为第二VXLAN ID,来确定是否需要二次解封装。
步骤S203,当所述第三VXLAN报文的报头的VXLAN ID为所述第二VXLAN ID时,对所述第一报文进行二次解封装,以获取第二报文,以及所述第二报文对应的VXLAN ID。
其中,第二VXLAN ID为本地VTEP和其他VTEP之间的专用VXLAN隧道对应的VXLANID,可以用于表示VXLAN报文是通过专用VXLAN隧道接收的。当接收到的第三VXLAN报文的报头的VXLAN ID为第二VXLAN ID时,本地VTEP可以确定该第三VXLAN报文是通过专用VXLAN隧道接收的,需要二次解封装。
步骤S204,根据所述第二报文对应的VXLAN ID,封装并转发所述第二报文。
在一个示例中,本地VTEP接收到的第三VXLAN报文是上述的第二VXLAN报文。本地VTEP执行步骤202解封装所述第三VXLAN报文,获取所述第三VXLAN报文的报头的VXLAN ID(第二VXLAN ID),以及第一报文。由于第三VXLAN报文的报头的VXLAN ID为第二VXLAN ID,第一VTEP执行步骤S203解封装所述第一报文,获取第二报文(VM发送的数据),以及与第二报文对应的VXLAN ID(第一VXLAN ID)。之后,第一VTEP执行步骤S204根据第一VXLAN ID,封装并转发数据。
这样,通过当一次解封装后获取的VXLAN ID为特定的第二VXLAN ID时,进行二次解封装,获取数据和与数据对应的VXLAN ID,根据本公开的报文转发方法能够区分同一VXLAN ID对应的隧道发送的VXLAN报文的不同业务,从而使得不同业务能够通过同一VXLANID对应的隧道进行传输成为可能,节省了VXLAN隧道的可用资源,并减少了大量的繁琐的VXLAN ID与VXLAN隧道的绑定操作、配置简单。
图3示出根据本公开一实施例的报文转发方法的流程图。如图3所示,在一种可能的实现方式中,该报文转发还包括:
步骤S205,当所述第三VXLAN报文的报头的VXLAN ID不是所述第二VXLAN ID时,根据所述第一报文对应的VXLAN ID,封装并转发所述第一报文。
当接收到的第三VXLAN报文的报头的VXLAN ID不是第二VXLAN ID时,本地VTEP可以确定该VXLAN报文不是通过专用VXLAN隧道接收的VXLAN报文,不需要二次解封装。
在一个示例中,本地VTEP接收到的第三VXLAN报文是上述的第二VXLAN报文。本地VTEP执行步骤202解封装所述第三VXLAN报文,获取所述第三VXLAN报文的报头的VXLAN ID(第一VXLAN ID),以及第一报文(VM发送的数据)。由于第三VXLAN报文的报头的VXLAN ID不是第二VXLAN ID,本地VTEP执行步骤S205根据所述第一VXLAN ID,封装并转发数据。
这样,通过当接收的VXLAN报文的报头的VXLAN ID不是所述第二VXLAN ID时,根据所述第一报文对应的VXLAN ID,封装并转发所述第一报文,根据本公开实施例的报文转发方法能够处理正常业务对应的VXLAN报文。
图4a示出一种分布式聚合的网络结构示意图,图4b示出根据本公开一个示例的分布聚合的网络结构示意图。
如图4a所示,VTEP1和VTEP3组成一个DR系统,VTEP1和VTEP3通过DR口与VM1连接。VTEP1和VTEP3通过路由设备连接VTEP2。VTEP1和VTEP3组成的DR系统与VTEP2建立BGP邻居关系,VTEP1和VTEP2使用相同的IP地址(聚合地址)与VTEP2建立VXLAN隧道。在一个示例中,假设正常情况下,VM1到VM2方向的数据报文的转发路径为VM1-VTEP1-VTEP2-VM2;在VTEP1与VTEP2之间的链路发生故障后,转发路径可以变更为VM1-VTEP1-VTEP3-VTEP2-VM2。相关技术中为每个业务绑定一个VXLAN隧道,如果VTEP1上面的业务过多,会导致VTEP1与VTEP3之间建立的VXLAN隧道数量较多,增加了配置工作量,减少了能够用于正常业务的VXLAN隧道的数量。
图1、图2和图3所示的报文转发方法可以应用于图4a所示的DR系统中的一个VTEP,专用VXLAN隧道可以为该VTEP与同一个DR系统中的另一个VTEP之间的VXLAN隧道,来解决分布式系统中存在VXLAN隧道资源浪费问题。下面以DR系统中的第一VTEP作为图1、图2和图3所示的报文转发方法中的本地VTEP,以同一个DR系统中的第三VTEP作为图1、图2和图3所示的报文转发方法中的指定VTEP为例,对报文转发方法进行说明。
图5示出根据本公开一实施例的报文转发方法的流程图。该方法可以应用于DR系统中的第一VTEP,如图5所示,该报文转发方法包括:
步骤S301,接收第一VM发送的数据,所述数据的目的地址为第二VTEP的第二VM,所述第二VTEP不属于所述DR系统。
在本实施例中,第一VTEP可以接收本地第一VM发送的数据,其中,该数据的目的地址为第二VTEP中的第二VM的地址,源地址为所述第一VM的地址。例如,第一VM的地址为VM-MAC1,第二VM的地址为VM-MAC2,则数据的目的地址为VM-MAC2,源地址为VM-MAC1。
其中,第二VTEP可以是某个DR系统中的一个VTEP设备,第二VTEP与所述第一VTEP不属于同一DR系统,或者,第二VTEP也可以不是某个DR系统中的一个VTEP设备。例如,图4b示出根据本公开一个示例的分布式聚合的网络结构示意图,如图4b所示,VTEP1和VTEP3均可以是第一VTEP设备,VTEP2可以为第二VTEP设备。
步骤S302,获取与所述数据的tag对应的第一VXLAN ID。
第一VTEP在接收到本地第一VM发送的数据后,可以根据数据的tag确定用于封装该数据的第一VXLAN ID,以便于封装并转发该数据。
步骤S303,将所述数据封装成第一VXLAN报文,所述第一VXLAN报文携带有所述第一VXLAN ID。
举例来说,第二VTEP可以通过BGP EVPN路由将第二VM的地址同步给第一VTEP,在第一VTEP上生成与第一VXLAN ID对应的到第二VM的MAC转发表项。第一VTEP可以使用第一VXLAN ID将收到的数据封装成第一VXLAN报文后,第一VTEP可以在与第一VXLAN ID对应的MAC转发表中,查找与第二VM的地址对应的VXLAN隧道,从而将第一VXLAN报文通过查找到的VXLAN隧道发送至第二VTEP。第二VTEP解封装收到的第一VXLAN报文得到该数据后,可以根据该数据的目的地址将该数据发送至第二VM。这样,就完成了第一VM到第二VM的方向上的数据发送。
步骤S304,当确定将所述第一VXLAN报文发送至第三VTEP时,根据第二VXLAN ID对所述第一VXLAN报文进行二次封装,以获取第二VXLAN报文,所述第三VTEP属于所述DR系统,所述第二VXLAN ID用于封装专用VXLAN隧道。
其中,第二VXLAN ID可以为第一VTEP和第三VTEP之间的专用VXLAN隧道对应的VXLAN ID,用于表示VXLAN报文是DR系统内转发业务的中转VXLAN报文。
在一种可能的实现方式中,可以当第一VTEP与第二VTEP之间的链路发生故障时,将所述第一VXLAN报文发送至第三VTEP。当第一VTEP与第二VTEP之间的链路发生故障时,第一VTEP无法直接将第一VXLAN报文发送至第二VTEP,此时,可以通过DR系统内进行业务转发。
在第一VXLAN报文通过DR系统内进行业务转发时,第一VTEP可以根据第二VXLANID对第一VXLAN报文进行二次封装,得到第二VXLAN报文。本步骤第二VXLAN报文以及二次封装的方式与步骤S103中的第二VXLAN报文相同,这里不再赘述。
步骤S305,将所述第二VXLAN报文通过所述专用VXLAN隧道发送至第三VTEP。
由于第一VTEP和第三VTEP属于同一DR系统,第二VTEP可以通过BGP EVPN路由将第二VM的地址同步给第一VTEP和第三VTEP,在第一VTEP和第三VTEP上分别生成第一VM到第二VM的MAC转发表项。因此,第一VTEP通过查找转发表确定与所述第二VXLAN ID对应的VXLAN隧道,并通过该VXLAN隧道将第二VXLAN报文发送至第三VTEP,第三VTEP接收所述第二VXLAN报文,可以将解封第二VXLAN报文后得到的数据发送至第二VM。
其中,第三VTEP可以是DR系统中与第一VTEP建立通信的VTEP。
图4b示出根据本公开一个示例的分布式聚合的网络结构示意图。如图4b所示,VTEP1收到任一VXLAN ID业务对应的VM1发送的数据时,可以使用该数据的tag对应的第一VXLAN ID将该数据封装为第一VXLAN报文。在VTEP1和VTEP2之间的链路发生故障时,VTEP1可以根据第二VXLAN ID对第一VXLAN报文进行二次封装,得到第二VXLAN报文,VTEP1和VTEP3建立了封装VXLAN ID为第二VXLAN ID的情况下,VTEP1通过专用VXLAN隧道可以将第二VXLAN报文发送至VTEP。例如,第二VXLAN ID为1234,VTEP1和VTEP3之间建立封装VXLANID为1234的专用VXLAN隧道。VTEP1收到VXLAN ID为10的业务对应的VM发送的数据后,将该数据封装为报头的VXLAN ID为10的第一VXLAN报文。在VTEP1和VTEP2之间的链路发生故障时,VTEP1将第一VXLAN报文二次封装为报头的第一层VXLAN ID为1234、第二层VXLAN ID为10的第二VXLAN报文,之后将第二VXLAN报文通过VXLAN ID为1234的VXLAN隧道发送至VTEP3。VTEP1收到VXLAN ID为100的业务对应的VM发送的数据后,将该数据封装为报头的VXLAN ID为100的第一VXLAN报文。在VTEP1和VTEP2之间的链路发生故障时,VTEP1同样可以将第一VXLAN报文二次封装为报头的第一层VXLAN ID为1234、第二层VXLAN ID为100的第二VXLAN报文,并将第二VXLAN报文通过VXLAN ID为1234的VXLAN隧道发送至VTEP3。这样,无论VTEP1上面业务的多少,VTEP1与VTEP3之间只建立一条与第二VXLAN ID对应的VXLAN隧道,节省了VXLAN隧道的可用资源,并减少了大量的繁琐的VXLAN ID与VXLAN隧道的绑定操作、配置简单。
需要说明的是,本公开采用术语第一、第二、第三等来描述不同的VTEP,但是这些信息不应限于这些术语。这些术语仅用于区分VTEP的角色,例如,在不脱离本公开范围的情况下,第一VTEP也可以被称为第三VTEP,类似的,第三VTEP也可以被称为第一VTEP。因此,第三VTEP上的报文转发与上述第一VTEP的处理方法类似,本文不再赘述。VTEP可以是一台独立的物理设备,也可以是虚拟机所在的服务器
通过使用与接收的数据的tag对应的第一VXLAN ID封装该数据获取第一VXLAN报文,当确定将所述第一VXLAN报文发送至第三VTEP时,使用第二VXLAN ID二次封装第一VXLAN报文获取第二VXLAN报文,将第二VXLAN报文通过与第二VXLAN ID对应的VXLAN隧道发送至第三VTEP,根据本公开的报文转发方法能够将对应不同VXLAN ID的第一VXLAN报文,使用相同的第二VXLAN ID进行二次封装,使分布式聚合系统的VTEP之间进行数据传输只需一条与第二VXLAN ID对应的隧道,不再需要很多的VXLAN隧道,节省了VXLAN隧道的可用资源,并减少了大量的繁琐的VXLAN ID与VXLAN隧道的绑定操作、配置简单。
图6示出根据本公开一实施例的报文转发方法的流程图。如图6所示,该报文转发方法包括:
步骤S401,接收第三VTEP发送的第三VXLAN报文。
步骤S402,解封装所述第三VXLAN报文,获取所述第三VXLAN报文的报头的VXLANID和第一报文。
步骤S403,当所述第三VXLAN报文的报头的VXLAN ID为所述第二VXLAN ID时,对所述第一报文进行二次解封装,以获取第二报文,以及所述第二报文对应的VXLAN ID。
步骤S404,根据所述第二报文对应的VXLAN ID,封装并转发所述第二报文。
步骤S401至步骤S404与步骤S201至步骤S204相同,不再赘述。
这样,通过当一次解封装后获取的VXLAN ID为特定的第二VXLAN ID时,再次进行解封装,获取数据和与数据对应的VXLAN ID,根据本公开的报文转发方法能够二次解封VXLAN报文,区分同一VXLAN ID对应的隧道发送的VXLAN报文对应的业务,从而使得不同业务能够通过同一VXLAN ID对应的隧道进行传输成为可能,节省了VXLAN隧道的可用资源,并减少了大量的繁琐的VXLAN ID与VXLAN隧道的绑定操作、配置简单。
需要说明的是,在DR系统中,第二VXLAN ID用于表示VXLAN报文是DR系统内转发的中转VXLAN报文。举例说明,当接收到的第三VXLAN报文的报头的VXLAN ID为第二VXLAN ID时,可以确定该第三VXLAN报文是通过DR系统内转发的中转VXLAN报文,需要二次解封装。
在图4b所示的DR系统中,第一VTEP的IP地址为1.1.1.1,第三VTEP的IP地址为3.3.3.3。在第一VTEP上专用VXLAN隧道的源地址为1.1.1.1,目的地址为3.3.3.3。在第三VTEP上专用VXLAN隧道的源地址为3.3.3.3,目的地址为1.1.1.1。
图7示出根据本公开一实施例的报文转发装置700的框图。该报文转发装置应用于VTEP,如图7所示,该装置700包括:第一接收模块701、获取模块702、第一封装模块703、第二封装模块704和第一发送模块705。
第一接收模块701,用于接收虚拟机VM发送的数据。
获取模块702,用于获取与所述数据的标签tag对应的第一VXLAN ID。
第一封装模块703,用于将所述数据封装成第一VXLAN报文,所述第一VXLAN报文携带有所述第一VXLAN ID。
第二封装模块704,用于当确定将所述第一VXLAN报文发送至指定VTEP时,根据第二VXLAN ID对所述第一VXLAN报文进行二次封装,以获取第二VXLAN报文,所述第二VXLANID用于指示VXLAN报文通过专用VXLAN隧道传输。
第一发送模块705,用于将所述第二VXLAN报文通过所述专用VXLAN隧道发送至指定VTEP。
图8示出根据本公开一实施例的报文转发装置700的框图。如图8所示,在一种可能的实现方式中,所述专用VXLAN隧道为本地VTEP与指定VTEP之间建立的隧道,所述专用VXLAN隧道对应的VXLAN ID为第二VXLAN ID。本地VTEP上专用VXLAN隧道的源地址为本地VTEP的IP地址,本地VTEP上专用VXLAN隧道的目的地址为指定VTEP的IP地址。指定VTEP上专用VXLAN隧道的源地址为指定VTEP的IP地址,指定VTEP上专用VXLAN隧道的目的地址为本地VTEP的IP地址。
在一种可能的实现方式中,所述第一发送模块705包括:
确定单元7051,用于根据所述第二VXLAN ID和所述指定VTEP的IP地址,确定专用VXLAN隧道。
发送单元7052,用于通过所述专用VXLAN隧道发送所述第二VXLAN报文。
在一种可能的实现方式中,所述装置700还包括:
第二接收模块706,用于接收第三VXLAN报文。
第一解封装模块707,用于解封装所述第三VXLAN报文,获取所述第三VXLAN报文的报头的VXLAN ID和第一报文。
第二解封装模块708,用于当所述第三VXLAN报文的报头的VXLAN ID为所述第二VXLAN ID时,对所述第一报文进行二次解封装,以获取第二报文,以及所述第二报文对应的VXLAN ID。
第二发送模块709,用于根据所述第二报文对应的VXLAN ID,封装并转发所述第二报文。
在一种可能的实现方式中,所述装置700还包括:
第三发送模块710,用于当所述第三VXLAN报文的报头的VXLAN ID不是所述第二VXLAN ID时,根据所述第一报文对应的VXLAN ID,封装并转发所述第一报文。
图9示出根据本公开一实施例的报文转发装置800的框图。该装置应用于DR系统中的第一VTEP,如图9所示,该装置800包括:
第一接收模块801,用于接收第一VM发送的数据,所述数据的目的地址为第二VTEP的第二VM,所述第二VTEP不属于所述DR系统。
获取模块802,用于获取与所述数据的tag对应的第一VXLAN ID。
第一封装模块803,用于将所述数据封装成第一VXLAN报文,所述第一VXLAN报文携带有所述第一VXLAN ID。
第二封装模块804,用于当确定将所述第一VXLAN报文发送至第三VTEP时,根据第二VXLAN ID对所述第一VXLAN报文进行二次封装,以获取第二VXLAN报文,所述第三VTEP属于所述DR系统,所述第二VXLAN ID用于封装专用VXLAN隧道。
第一发送模块805,用于将所述第二VXLAN报文通过所述专用VXLAN隧道发送至第三VTEP。
图10示出根据本公开一实施例的报文转发装置800的框图。如图10所示,在一种可能的实现方式中,该装置800还包括:
第二接收模块806,用于接收第三VTEP发送的第三VXLAN报文。
第一解封装模块807,用于解封装所述第三VXLAN报文,获取所述第三VXLAN报文的报头的VXLAN ID和第一报文。
第二解封装模块808,用于当所述第三VXLAN报文的报头的VXLAN ID为所述第二VXLAN ID时,对所述第一报文进行二次解封装,以获取第二报文,以及所述第二报文对应的VXLAN ID。
第二发送模块809,用于根据所述第二报文对应的VXLAN ID,封装并转发所述第二报文。
图11是根据一示例性实施例示出的一种报文转发装置900的框图。参照图11,该装置900可包括处理器901、存储有机器可执行指令的机器可读存储介质902。处理器901与机器可读存储介质902可经由系统总线903通信。并且,处理器901通过读取机器可读存储介质902中与报文转发逻辑对应的机器可执行指令以执行上文所述的报文转发方法。
本文中提到的机器可读存储介质902可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种报文转发方法,其特征在于,所述方法应用于虚拟可扩展局域网络隧道端点VTEP,包括:
接收虚拟机VM发送的数据;
获取与所述数据的标签tag对应的第一VXLAN ID;
将所述数据封装成第一VXLAN报文,所述第一VXLAN报文携带有所述第一VXLAN ID;
当确定将所述第一VXLAN报文发送至指定VTEP时,根据第二VXLAN ID对所述第一VXLAN报文进行二次封装,以获取第二VXLAN报文,所述第二VXLAN ID用于指示VXLAN报文通过专用VXLAN隧道传输;
将所述第二VXLAN报文通过所述专用VXLAN隧道发送至指定VTEP;
所述方法还包括:
接收第三VXLAN报文;
解封装所述第三VXLAN报文,获取所述第三VXLAN报文的报头的VXLAN ID和第一报文;
当所述第三VXLAN报文的报头的VXLAN ID为所述第二VXLAN ID时,对所述第一报文进行二次解封装,以获取第二报文,以及所述第二报文对应的VXLAN ID;
根据所述第二报文对应的VXLAN ID,封装并转发所述第二报文。
2.根据权利要求1所述的报文转发方法,其特征在于,所述专用VXLAN隧道为本地VTEP与指定VTEP之间建立的隧道,所述专用VXLAN隧道对应的VXLAN ID为第二VXLAN ID;
本地VTEP上专用VXLAN隧道的源地址为本地VTEP的IP地址,本地VTEP上专用VXLAN隧道的目的地址为指定VTEP的IP地址;
指定VTEP上专用VXLAN隧道的源地址为指定VTEP的IP地址,指定VTEP上专用VXLAN隧道的目的地址为本地VTEP的IP地址。
3.根据权利要求2所述的报文转发方法,其特征在于,将所述第二VXLAN报文通过所述专用VXLAN隧道发送至指定VTEP,包括:
根据所述第二VXLAN ID和所述指定VTEP的IP地址,确定专用VXLAN隧道;
通过所述专用VXLAN隧道发送所述第二VXLAN报文。
4.根据权利要求1所述的报文转发方法,其特征在于,所述方法包括:
当所述第三VXLAN报文的报头的VXLAN ID不是所述第二VXLAN ID时,根据所述第一报文对应的VXLAN ID,封装并转发所述第一报文。
5.一种报文转发方法,其特征在于,所述方法应用于分布式聚合DR系统中的第一VTEP,包括:
接收第一VM发送的数据,所述数据的目的地址为第二VTEP的第二VM,所述第二VTEP不属于所述DR系统;
获取与所述数据的tag对应的第一VXLAN ID;
将所述数据封装成第一VXLAN报文,所述第一VXLAN报文携带有所述第一VXLAN ID;
当确定将所述第一VXLAN报文发送至第三VTEP时,根据第二VXLAN ID对所述第一VXLAN报文进行二次封装,以获取第二VXLAN报文,所述第三VTEP属于所述DR系统,所述第二VXLANID用于封装专用VXLAN隧道;
将所述第二VXLAN报文通过所述专用VXLAN隧道发送至第三VTEP;
所述方法还包括:
接收第三VTEP发送的第三VXLAN报文;
解封装所述第三VXLAN报文,获取所述第三VXLAN报文的报头的VXLAN ID和第一报文;
当所述第三VXLAN报文的报头的VXLAN ID为所述第二VXLAN ID时,对所述第一报文进行二次解封装,以获取第二报文,以及所述第二报文对应的VXLAN ID;
根据所述第二报文对应的VXLAN ID,封装并转发所述第二报文。
6.一种报文转发装置,其特征在于,所述装置应用于VTEP,包括:
第一接收模块,用于接收虚拟机VM发送的数据;
获取模块,用于获取与所述数据的标签tag对应的第一VXLAN ID;
第一封装模块,用于将所述数据封装成第一VXLAN报文,所述第一VXLAN报文携带有所述第一VXLAN ID;
第二封装模块,用于当确定将所述第一VXLAN报文发送至指定VTEP时,根据第二VXLANID对所述第一VXLAN报文进行二次封装,以获取第二VXLAN报文,所述第二VXLAN ID用于指示VXLAN报文通过专用VXLAN隧道传输;
第一发送模块,用于将所述第二VXLAN报文通过所述专用VXLAN隧道发送至指定VTEP;
所述装置还包括:
第二接收模块,用于接收第三VXLAN报文;
第一解封装模块,用于解封装所述第三VXLAN报文,获取所述第三VXLAN报文的报头的VXLAN ID和第一报文;
第二解封装模块,用于当所述第三VXLAN报文的报头的VXLAN ID为所述第二VXLAN ID时,对所述第一报文进行二次解封装,以获取第二报文,以及所述第二报文对应的VXLANID;
第二发送模块,用于根据所述第二报文对应的VXLAN ID,封装并转发所述第二报文。
7.根据权利要求6所述的报文转发装置,其特征在于,所述专用VXLAN隧道为本地VTEP与指定VTEP之间建立的隧道,所述专用VXLAN隧道对应的VXLAN ID为第二VXLAN ID;
本地VTEP上专用VXLAN隧道的源地址为本地VTEP的IP地址,本地VTEP上专用VXLAN隧道的目的地址为指定VTEP的IP地址;
指定VTEP上专用VXLAN隧道的源地址为指定VTEP的IP地址,指定VTEP上专用VXLAN隧道的目的地址为本地VTEP的IP地址。
8.根据权利要求7所述的报文转发装置,其特征在于,所述第一发送模块包括:
确定单元,用于根据所述第二VXLAN ID和所述指定VTEP的IP地址,确定专用VXLAN隧道;
发送单元,用于通过所述专用VXLAN隧道发送所述第二VXLAN报文。
9.根据权利要求6所述的报文转发装置,其特征在于,所述装置包括:
第三发送模块,用于当所述第三VXLAN报文的报头的VXLAN ID不是所述第二VXLAN ID时,根据所述第一报文对应的VXLAN ID,封装并转发所述第一报文。
10.一种报文转发装置,其特征在于,所述装置应用于DR系统中的第一VTEP,包括:
第一接收模块,用于接收第一VM发送的数据,所述数据的目的地址为第二VTEP的第二VM,所述第二VTEP不属于所述DR系统;
获取模块,用于获取与所述数据的tag对应的第一VXLAN ID;
第一封装模块,用于将所述数据封装成第一VXLAN报文,所述第一VXLAN报文携带有所述第一VXLAN ID;
第二封装模块,用于当确定将所述第一VXLAN报文发送至第三VTEP时,根据第二VXLANID对所述第一VXLAN报文进行二次封装,以获取第二VXLAN报文,所述第三VTEP属于所述DR系统,所述第二VXLAN ID用于封装专用VXLAN隧道;
第一发送模块,用于将所述第二VXLAN报文通过所述专用VXLAN隧道发送至第三VTEP;
所述装置还包括:
第二接收模块,用于接收第三VTEP发送的第三VXLAN报文;
第一解封装模块,用于解封装所述第三VXLAN报文,获取所述第三VXLAN报文的报头的VXLAN ID和第一报文;
第二解封装模块,用于当所述第三VXLAN报文的报头的VXLAN ID为所述第二VXLAN ID时,对所述第一报文进行二次解封装,以获取第二报文,以及所述第二报文对应的VXLANID;
第二发送模块,用于根据所述第二报文对应的VXLAN ID,封装并转发所述第二报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710775859.3A CN107645433B (zh) | 2017-08-31 | 2017-08-31 | 报文转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710775859.3A CN107645433B (zh) | 2017-08-31 | 2017-08-31 | 报文转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107645433A CN107645433A (zh) | 2018-01-30 |
CN107645433B true CN107645433B (zh) | 2021-03-30 |
Family
ID=61110968
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710775859.3A Active CN107645433B (zh) | 2017-08-31 | 2017-08-31 | 报文转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107645433B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108600073B (zh) * | 2018-04-19 | 2020-12-29 | 新华三技术有限公司 | 一种动态隧道建立方法和装置 |
CN110474829B (zh) * | 2018-05-10 | 2021-07-20 | 华为技术有限公司 | 传输报文的方法和装置 |
CN108718269B (zh) * | 2018-05-18 | 2021-04-27 | 新华三技术有限公司 | 报文处理方法及装置 |
CN110620716B (zh) * | 2018-06-19 | 2021-10-01 | 华为技术有限公司 | 数据传输方法、相关装置及系统 |
CN110430116B (zh) * | 2019-07-26 | 2021-05-07 | 新华三技术有限公司成都分公司 | 数据转发方法及装置、边缘设备及可读存储介质 |
CN111541651B (zh) * | 2020-03-31 | 2022-10-21 | 新华三技术有限公司 | 一种通信方法及装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014028094A1 (en) * | 2012-08-14 | 2014-02-20 | Vmware, Inc. | Method and system for virtual and physical network integration |
CN104767666A (zh) * | 2015-04-15 | 2015-07-08 | 杭州华三通信技术有限公司 | 虚拟可扩展局域网隧道终端建立隧道方法和设备 |
CN106059923A (zh) * | 2016-05-30 | 2016-10-26 | 杭州华三通信技术有限公司 | 一种报文转发方法及装置 |
CN106453025A (zh) * | 2016-11-04 | 2017-02-22 | 杭州华三通信技术有限公司 | 一种隧道创建方法及装置 |
CN106878133A (zh) * | 2016-12-15 | 2017-06-20 | 新华三技术有限公司 | 报文转发方法及装置 |
CN106888144A (zh) * | 2017-01-16 | 2017-06-23 | 新华三技术有限公司 | 一种报文转发方法及装置 |
CN106899475A (zh) * | 2016-12-07 | 2017-06-27 | 新华三技术有限公司 | 一种整合隧道资源的方法、装置以及处理报文的方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106850379A (zh) * | 2015-12-04 | 2017-06-13 | 中国电信股份有限公司 | 用于实现子网互通的方法和系统 |
CN106878199B (zh) * | 2016-12-20 | 2020-02-11 | 新华三技术有限公司 | 一种接入信息的配置方法和装置 |
-
2017
- 2017-08-31 CN CN201710775859.3A patent/CN107645433B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014028094A1 (en) * | 2012-08-14 | 2014-02-20 | Vmware, Inc. | Method and system for virtual and physical network integration |
CN104767666A (zh) * | 2015-04-15 | 2015-07-08 | 杭州华三通信技术有限公司 | 虚拟可扩展局域网隧道终端建立隧道方法和设备 |
CN106059923A (zh) * | 2016-05-30 | 2016-10-26 | 杭州华三通信技术有限公司 | 一种报文转发方法及装置 |
CN106453025A (zh) * | 2016-11-04 | 2017-02-22 | 杭州华三通信技术有限公司 | 一种隧道创建方法及装置 |
CN106899475A (zh) * | 2016-12-07 | 2017-06-27 | 新华三技术有限公司 | 一种整合隧道资源的方法、装置以及处理报文的方法 |
CN106878133A (zh) * | 2016-12-15 | 2017-06-20 | 新华三技术有限公司 | 报文转发方法及装置 |
CN106888144A (zh) * | 2017-01-16 | 2017-06-23 | 新华三技术有限公司 | 一种报文转发方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107645433A (zh) | 2018-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107645433B (zh) | 报文转发方法及装置 | |
CN111885075B (zh) | 容器通信方法、装置、网络设备及存储介质 | |
CN108259291B (zh) | Vxlan报文处理方法、设备及系统 | |
CN103200069B (zh) | 一种报文处理的方法和设备 | |
CN107872542B (zh) | 一种数据传输的方法及网络设备 | |
CN107800602B (zh) | 一种报文处理方法、设备及系统 | |
CN113411243B (zh) | 数据传输方法及装置 | |
EP3197107B1 (en) | Message transmission method and apparatus | |
WO2016173271A1 (zh) | 报文处理方法、设备及系统 | |
CN107770026B (zh) | 租户网络数据传输方法、租户网络系统和相关设备 | |
CN104704778A (zh) | 用于虚拟和物理网络集成的方法和系统 | |
CN108718269B (zh) | 报文处理方法及装置 | |
CN108600074B (zh) | 组播数据报文的转发方法及装置 | |
CN102238230A (zh) | 用于在云计算中卸载隧道数据包的方法和系统 | |
CN108900414B (zh) | 转发表生成方法及装置 | |
CN110213148B (zh) | 一种数据传输的方法、系统及装置 | |
CN108924062B (zh) | 报文处理方法及装置 | |
WO2015113410A1 (zh) | 数据包的处理方法与装置 | |
CN107547344B (zh) | Vxlan报文处理方法及装置 | |
WO2022001835A1 (zh) | 发送报文的方法、装置、网络设备、系统及存储介质 | |
CN107659484B (zh) | 从vlan网络接入vxlan网络的方法、装置及系统 | |
CN110474829B (zh) | 传输报文的方法和装置 | |
JP2019521619A (ja) | パケット転送 | |
CN107547338B (zh) | 一种报文转发方法及装置 | |
CN112019433A (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 |