报文转发方法及装置与流程

文档序号:13577399阅读:201来源:国知局
报文转发方法及装置与流程

本公开涉及网络通信技术领域,尤其涉及一种报文转发方法及装置。



背景技术:

为了提高vxlan(virtualextensiblelan,虚拟可扩展局域网)的可靠性,通常会在vxlan网络中应用分布式聚合技术,分布式vtep(vxlantunnelendpoint,vxlan网络端点)之间可以通过vxlan隧道进行数据报文的转发。图4a示出了一种分布式聚合的网络结构示意图,其中,vtep1和vtep3组成一个dr(distributedrelay,分布式聚合)系统,vtep1和vtep3之间可以通过ipl链路(intraportlink,分布式聚合内部链路)发送控制报文,vtep1和vtep3通过dr口与vm1连接。vm1到vm2的流量转发可以经过分布式聚合的vtep1或者vtep3进行转发。

目前分布式聚合场景中,分布式vtep需要将vxlan业务与分布式vtep之间的隧道都进行绑定才能够进行vxlan报文的转发,如果vtep上面vxlan业务过多,分布式vtep之间使用的vxlan隧道数量也就较多,减少了正常vxlan业务可使用的vxlan隧道的数目、增加了配置工作量。



技术实现要素:

有鉴于此,本公开提出了一种报文转发方法及装置,能够节省vxlan隧道的可用资源,减少配置工作量。

根据本公开的一方面,提供了一种报文转发方法,该方法应用于vtep,该方法包括:接收vm发送的数据;获取与所述数据的标签tag对应的第一vxlanid;将所述数据封装成第一vxlan报文,所述第一vxlan报文携带有所述第一vxlanid;当确定将所述第一vxlan报文发送至指定vtep时,根据第二vxlanid对所述第一vxlan报文进行二次封装,以获取第二vxlan报文,所述第二vxlanid用于指示vxlan报文通过专用vxlan隧道传输;将所述第二vxlan报文通过所述专用vxlan隧道发送至指定vtep。

根据本公开的另一方面,提供了一种报文转发方法,该方法应用于dr系统中的第一vtep,该方法包括:接收第一vm发送的数据,所述数据的目的地址为第二vtep的第二vm,所述第二vtep不属于所述dr系统;获取与所述数据的tag对应的第一vxlanid;将所述数据封装成第一vxlan报文,所述第一vxlan报文携带有所述第一vxlanid;当确定将所述第一vxlan报文发送至第三vtep时,根据第二vxlanid对所述第一vxlan报文进行二次封装,以获取第二vxlan报文,所述第三vtep属于所述dr系统,所述第二vxlanid用于封装专用vxlan隧道;将所述第二vxlan报文通过所述专用vxlan隧道发送至第三vtep。

根据本公开的另一方面,提供一种报文转发装置,该装置应用于vtep,包括:第一接收模块,用于接收虚拟机vm发送的数据;获取模块,用于获取与所述数据的标签tag对应的第一vxlanid;第一封装模块,用于将所述数据封装成第一vxlan报文,所述第一vxlan报文携带有所述第一vxlanid;第二封装模块,用于当确定将所述第一vxlan报文发送至指定vtep时,根据第二vxlanid对所述第一vxlan报文进行二次封装,以获取第二vxlan报文,所述第二vxlanid用于指示vxlan报文通过专用vxlan隧道传输;第一发送模块,用于将所述第二vxlan报文通过所述专用vxlan隧道发送至指定vtep。

根据本公开的另一方面,提供一种报文转发装置,该装置应用于dr系统中的第一vtep,该装置包括:第一接收模块,用于接收第一vm发送的数据,所述数据的目的地址为第二vtep的第二vm,所述第二vtep不属于所述dr系统;获取模块,用于获取与所述数据的tag对应的第一vxlanid;第一封装模块,用于将所述数据封装成第一vxlan报文,所述第一vxlan报文携带有所述第一vxlanid;第二封装模块,用于当确定将所述第一vxlan报文发送至第三vtep时,根据第二vxlanid对所述第一vxlan报文进行二次封装,以获取第二vxlan报文,所述第三vtep属于所述dr系统,所述第二vxlanid用于封装专用vxlan隧道;第一发送模块,用于将所述第二vxlan报文通过所述专用vxlan隧道发送至第三vtep。

通过使用与数据的tag对应的第一vxlanid将vm发送的数据封装成第一vxlan报文,当确定将所述第一vxlan报文发送至指定vtep时,使用第二vxlanid对第一vxlan报文进行二次封装,以获取第二vxlan报文,将第二vxlan报文通过与第二vxlanid对应的专用vxlan隧道发送至指定vtep,根据本公开的各方面的报文转发方法及装置能够将不同tag对应的数据封装成的vxlan报文,使用相同的第二vxlanid进行二次封装,使不同tag对应的数据可以通过同一条vxlan隧道发送至指定vtep,不再需要针对每个业务建立一个vxlan隧道,节省了vxlan隧道的可用资源,并减少了大量的、繁琐的vxlanid与vxlan隧道的绑定操作,配置简单。

根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。

图1示出根据本公开一实施例的报文转发方法的流程图;

图2示出根据本公开一实施例的报文转发方法的流程图;

图3示出根据本公开一实施例的报文转发方法的流程图;

图4a示出一种分布式聚合的网络结构示意图;

图4b示出根据本公开一个示例的分布式聚合的网络结构示意图;

图5示出根据本公开一实施例的报文转发方法的流程图;

图6示出根据本公开一实施例的报文转发方法的流程图;

图7示出根据本公开一实施例的报文转发装置的框图;

图8示出根据本公开一实施例的报文转发装置的框图;

图9示出根据本公开一实施例的报文转发装置的框图;

图10示出根据本公开一实施例的报文转发装置的框图;

图11示出根据本公开一实施例的报文转发装置的框图。

具体实施方式

以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。

图1示出根据本公开一实施例的报文转发方法的流程图。该方法可以应用于vtep,如图1所示,该方法包括:

步骤s101,接收vm发送的数据。

evpn(ethernetvirtualprivatenetwork,以太网虚拟专用网络)是一种二层vpn技术,控制平面采用bgp(bordergatewayprotocol,边界网关协议)通告路由信息,数据平面采用vxlan报文封装方式转发用户报文。

vtep可以接收本地vm(virtualmachine,虚拟机)发送的数据,并对vm发送的数据进行vxlan封装和转发。

步骤s102,获取与所述数据的tag对应的第一vxlanid。

一个vtep可以处理不同的vxlan业务,可以使用vxlanid区分不同的vxlan业务。vm发送的数据的tag,可以映射到vtep上vxlanid为数据的tag(标签)的vxlan业务。第一vxlanid可以用于表示与数据的tag对应的vxlanid。数据的tag不同,对应的第一vxlanid不同,对应的vxlan业务不同。本地vtep接收到数据后,可以获取与数据的tag对应的vxlanid,以便于对该数据进行封装和转发。

在一个示例中,数据的tag为10,数据可以映射到本地vtep上vxlanid为10的vxlan业务。本地vtep接收到该数据后,可以获取到与tag10对应的第一vxlanid为10,从而可以将使用vxlanid10对该数据进行封装和转发。

步骤s103,将所述数据封装成第一vxlan报文,所述第一vxlan报文携带有所述第一vxlanid。

本地vtep可以使用获取的第一vxlanid将数据封装成第一vxlan报文。第一vxlan报文的报头的vxlanid设置为所述第一vxlanid。

步骤s104,当确定将所述第一vxlan报文发送至指定vtep时,根据第二vxlanid对所述第一vxlan报文进行二次封装,以获取第二vxlan报文,所述第二vxlanid用于指示vxlan报文通过专用vxlan隧道传输。

其中,指定vtep可以为evpn网络中与本地vtep之间建立了专用vxlan隧道的vtep。专用vxlan隧道可以为本地vtep和指定vtep之间建立的vxlan隧道,用于满足本地vtep和指定vtep之间有特殊需求的业务,其中该特殊需求的业务可以理解为包括共享该vxlan隧道的不同业务。

第二vxlanid可以为所述专用vxlan隧道对应的vxlanid。第二vxlanid为与第一vxlanid不同的vxlanid。在一个示例中,第二vxlanid可以为任何未被占用的vxlanid。在一种可能的实现方式中,第二vxlanid可以作为保留vxlanid,专用于有特殊需求的业务,例如dr系统内转发的业务。

本地vtep可以使用第二vxlanid对第一vxlan报文进行二次封装,以获取第二vxlan报文。第二vxlan报文的报头包括第一vxlanid和第二vxlanid,并通过协议等方式规定,使设备在接收第二报文的时候可以优先识别处理第二vxlanid,例如在一种可能的实现方式中,可以将第二vxlanid放在第一vxlanid的外层。这样,在第二vxlanid被解封装出来之后,第一vxlanid可以被解封装出来,在第二vxlanid被解封装出来之前,第一vxlanid不可以被解封装出来。

步骤s105,将所述第二vxlan报文通过所述专用vxlan隧道发送至指定vtep。

专用vxlan隧道为本地vtep与指定vtep之间建立的隧道,且专用vxlan隧道对应的vxlanid为第二vxlanid。本地vtep上专用vxlan隧道的源地址为本地vtep的ip地址,本地vtep上与指定vtep间的专用vxlan隧道的目的地址为指定vtep的ip地址;指定vtep上专用vxlan隧道的源地址为指定vtep的ip地址,指定vtep上专用vxlan隧道的目的地址为本地vtep的ip地址。

本地vtep与不同的vetp之间可以分别建立专用vxlan隧道,且所有的专用vxlan隧道的封装vxlanid相同,均为第二vxlanid。本地vtep上与不同vtep之间的专用vxlan隧道的源地址可以均为本地vtep的ip地址,目的地址为各vtep的ip地址。与本地vtep建立专用vxlan隧道的不同vtep上专用vxlan隧道的目的地址均为本地vtep的ip地址。

在一种可能的实现方式中,本地vtep可以根据所述第二vxlanid和所述指定vtep的ip地址,从多条专用vxlan隧道中确定出指定vtep对应的专用vxlan隧道。本地vtep通过该专用vxlan隧道发送第二vxlan报文,可以将第二vxlan报文发送至指定vtep。

通过使用与数据的tag对应的第一vxlanid将vm发送的数据封装成第一vxlan报文,当确定将所述第一vxlan报文发送至指定vtep时,使用第二vxlanid对第一vxlan报文进行二次封装,以获取第二vxlan报文,将第二vxlan报文通过与第二vxlanid对应的专用vxlan隧道发送至指定vtep,根据本公开实施例的报文转发方法能够将不同tag对应的数据封装成的vxlan报文,使用相同的第二vxlanid进行二次封装,使不同tag对应的数据可以通过同一条vxlan隧道发送至指定vtep,不再需要针对每个业务建立一个vxlan隧道,节省了vxlan隧道的可用资源,并减少了大量的、繁琐的vxlanid与vxlan隧道的绑定操作,配置简单。

图2示出根据本公开一实施例的报文转发方法的流程图。该方法可以应用于vtep,如图1所示,该方法包括:

步骤s201,接收第三vxlan报文。

本地vtep接收的第三vxlan报文可能是上述的第一vxlan报文,也可能是上述的第二vxlan报文。其中,第一vxlan报文可以表示vm发送的数据经过一次vxlan封装得到的vxlan报文,第二vxlan报文可以表示对第一vxlan报文进行二次封装得到的vxlan报文。第一vxlan报文可以在vxlanid为第一vxlanid的vxlan隧道传输,第二vxlan报文可以在vxlanid为第二vxlanid的vxlan隧道传输。

步骤s202,解封装所述第三vxlan报文,获取所述第三vxlan报文的报头的vxlanid和第一报文。

当所述第三vxlan报文为第一vxlan报文时,解封装后可以得到vm发送的数据。本地vtep可以直接对该数据进行封装转发。当第三vxlan报文为第二vxlan报文时,解封装后可以得到一个vxlan报文,需要二次解封装。在本公开实施例中,本地vtep可以根据解封第三vxlan报文获取的第三vxlan报文的报头的vxlanid是否为第二vxlanid,来确定是否需要二次解封装。

步骤s203,当所述第三vxlan报文的报头的vxlanid为所述第二vxlanid时,对所述第一报文进行二次解封装,以获取第二报文,以及所述第二报文对应的vxlanid。

其中,第二vxlanid为本地vtep和其他vtep之间的专用vxlan隧道对应的vxlanid,可以用于表示vxlan报文是通过专用vxlan隧道接收的。当接收到的第三vxlan报文的报头的vxlanid为第二vxlanid时,本地vtep可以确定该第三vxlan报文是通过专用vxlan隧道接收的,需要二次解封装。

步骤s204,根据所述第二报文对应的vxlanid,封装并转发所述第二报文。

在一个示例中,本地vtep接收到的第三vxlan报文是上述的第二vxlan报文。本地vtep执行步骤202解封装所述第三vxlan报文,获取所述第三vxlan报文的报头的vxlanid(第二vxlanid),以及第一报文。由于第三vxlan报文的报头的vxlanid为第二vxlanid,第一vtep执行步骤s203解封装所述第一报文,获取第二报文(vm发送的数据),以及与第二报文对应的vxlanid(第一vxlanid)。之后,第一vtep执行步骤s204根据第一vxlanid,封装并转发数据。

这样,通过当一次解封装后获取的vxlanid为特定的第二vxlanid时,进行二次解封装,获取数据和与数据对应的vxlanid,根据本公开的报文转发方法能够区分同一vxlanid对应的隧道发送的vxlan报文的不同业务,从而使得不同业务能够通过同一vxlanid对应的隧道进行传输成为可能,节省了vxlan隧道的可用资源,并减少了大量的繁琐的vxlanid与vxlan隧道的绑定操作、配置简单。

图3示出根据本公开一实施例的报文转发方法的流程图。如图3所示,在一种可能的实现方式中,该报文转发还包括:

步骤s205,当所述第三vxlan报文的报头的vxlanid不是所述第二vxlanid时,根据所述第一报文对应的vxlanid,封装并转发所述第一报文。

当接收到的第三vxlan报文的报头的vxlanid不是第二vxlanid时,本地vtep可以确定该vxlan报文不是通过专用vxlan隧道接收的vxlan报文,不需要二次解封装。

在一个示例中,本地vtep接收到的第三vxlan报文是上述的第二vxlan报文。本地vtep执行步骤202解封装所述第三vxlan报文,获取所述第三vxlan报文的报头的vxlanid(第一vxlanid),以及第一报文(vm发送的数据)。由于第三vxlan报文的报头的vxlanid不是第二vxlanid,本地vtep执行步骤s205根据所述第一vxlanid,封装并转发数据。

这样,通过当接收的vxlan报文的报头的vxlanid不是所述第二vxlanid时,根据所述第一报文对应的vxlanid,封装并转发所述第一报文,根据本公开实施例的报文转发方法能够处理正常业务对应的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对应的第一vxlanid。

第一vtep在接收到本地第一vm发送的数据后,可以根据数据的tag确定用于封装该数据的第一vxlanid,以便于封装并转发该数据。

步骤s303,将所述数据封装成第一vxlan报文,所述第一vxlan报文携带有所述第一vxlanid。

举例来说,第二vtep可以通过bgpevpn路由将第二vm的地址同步给第一vtep,在第一vtep上生成与第一vxlanid对应的到第二vm的mac转发表项。第一vtep可以使用第一vxlanid将收到的数据封装成第一vxlan报文后,第一vtep可以在与第一vxlanid对应的mac转发表中,查找与第二vm的地址对应的vxlan隧道,从而将第一vxlan报文通过查找到的vxlan隧道发送至第二vtep。第二vtep解封装收到的第一vxlan报文得到该数据后,可以根据该数据的目的地址将该数据发送至第二vm。这样,就完成了第一vm到第二vm的方向上的数据发送。

步骤s304,当确定将所述第一vxlan报文发送至第三vtep时,根据第二vxlanid对所述第一vxlan报文进行二次封装,以获取第二vxlan报文,所述第三vtep属于所述dr系统,所述第二vxlanid用于封装专用vxlan隧道。

其中,第二vxlanid可以为第一vtep和第三vtep之间的专用vxlan隧道对应的vxlanid,用于表示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可以通过bgpevpn路由将第二vm的地址同步给第一vtep和第三vtep,在第一vtep和第三vtep上分别生成第一vm到第二vm的mac转发表项。因此,第一vtep通过查找转发表确定与所述第二vxlanid对应的vxlan隧道,并通过该vxlan隧道将第二vxlan报文发送至第三vtep,第三vtep接收所述第二vxlan报文,可以将解封第二vxlan报文后得到的数据发送至第二vm。

其中,第三vtep可以是dr系统中与第一vtep建立通信的vtep。

图4b示出根据本公开一个示例的分布式聚合的网络结构示意图。如图4b所示,vtep1收到任一vxlanid业务对应的vm1发送的数据时,可以使用该数据的tag对应的第一vxlanid将该数据封装为第一vxlan报文。在vtep1和vtep2之间的链路发生故障时,vtep1可以根据第二vxlanid对第一vxlan报文进行二次封装,得到第二vxlan报文,vtep1和vtep3建立了封装vxlanid为第二vxlanid的情况下,vtep1通过专用vxlan隧道可以将第二vxlan报文发送至vtep。例如,第二vxlanid为1234,vtep1和vtep3之间建立封装vxlanid为1234的专用vxlan隧道。vtep1收到vxlanid为10的业务对应的vm发送的数据后,将该数据封装为报头的vxlanid为10的第一vxlan报文。在vtep1和vtep2之间的链路发生故障时,vtep1将第一vxlan报文二次封装为报头的第一层vxlanid为1234、第二层vxlanid为10的第二vxlan报文,之后将第二vxlan报文通过vxlanid为1234的vxlan隧道发送至vtep3。vtep1收到vxlanid为100的业务对应的vm发送的数据后,将该数据封装为报头的vxlanid为100的第一vxlan报文。在vtep1和vtep2之间的链路发生故障时,vtep1同样可以将第一vxlan报文二次封装为报头的第一层vxlanid为1234、第二层vxlanid为100的第二vxlan报文,并将第二vxlan报文通过vxlanid为1234的vxlan隧道发送至vtep3。这样,无论vtep1上面业务的多少,vtep1与vtep3之间只建立一条与第二vxlanid对应的vxlan隧道,节省了vxlan隧道的可用资源,并减少了大量的繁琐的vxlanid与vxlan隧道的绑定操作、配置简单。

需要说明的是,本公开采用术语第一、第二、第三等来描述不同的vtep,但是这些信息不应限于这些术语。这些术语仅用于区分vtep的角色,例如,在不脱离本公开范围的情况下,第一vtep也可以被称为第三vtep,类似的,第三vtep也可以被称为第一vtep。因此,第三vtep上的报文转发与上述第一vtep的处理方法类似,本文不再赘述。vtep可以是一台独立的物理设备,也可以是虚拟机所在的服务器

通过使用与接收的数据的tag对应的第一vxlanid封装该数据获取第一vxlan报文,当确定将所述第一vxlan报文发送至第三vtep时,使用第二vxlanid二次封装第一vxlan报文获取第二vxlan报文,将第二vxlan报文通过与第二vxlanid对应的vxlan隧道发送至第三vtep,根据本公开的报文转发方法能够将对应不同vxlanid的第一vxlan报文,使用相同的第二vxlanid进行二次封装,使分布式聚合系统的vtep之间进行数据传输只需一条与第二vxlanid对应的隧道,不再需要很多的vxlan隧道,节省了vxlan隧道的可用资源,并减少了大量的繁琐的vxlanid与vxlan隧道的绑定操作、配置简单。

图6示出根据本公开一实施例的报文转发方法的流程图。如图6所示,该报文转发方法包括:

步骤s401,接收第三vtep发送的第三vxlan报文。

步骤s402,解封装所述第三vxlan报文,获取所述第三vxlan报文的报头的vxlanid和第一报文。

步骤s403,当所述第三vxlan报文的报头的vxlanid为所述第二vxlanid时,对所述第一报文进行二次解封装,以获取第二报文,以及所述第二报文对应的vxlanid。

步骤s404,根据所述第二报文对应的vxlanid,封装并转发所述第二报文。

步骤s401至步骤s404与步骤s201至步骤s204相同,不再赘述。

这样,通过当一次解封装后获取的vxlanid为特定的第二vxlanid时,再次进行解封装,获取数据和与数据对应的vxlanid,根据本公开的报文转发方法能够二次解封vxlan报文,区分同一vxlanid对应的隧道发送的vxlan报文对应的业务,从而使得不同业务能够通过同一vxlanid对应的隧道进行传输成为可能,节省了vxlan隧道的可用资源,并减少了大量的繁琐的vxlanid与vxlan隧道的绑定操作、配置简单。

需要说明的是,在dr系统中,第二vxlanid用于表示vxlan报文是dr系统内转发的中转vxlan报文。举例说明,当接收到的第三vxlan报文的报头的vxlanid为第二vxlanid时,可以确定该第三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对应的第一vxlanid。

第一封装模块703,用于将所述数据封装成第一vxlan报文,所述第一vxlan报文携带有所述第一vxlanid。

第二封装模块704,用于当确定将所述第一vxlan报文发送至指定vtep时,根据第二vxlanid对所述第一vxlan报文进行二次封装,以获取第二vxlan报文,所述第二vxlanid用于指示vxlan报文通过专用vxlan隧道传输。

第一发送模块705,用于将所述第二vxlan报文通过所述专用vxlan隧道发送至指定vtep。

图8示出根据本公开一实施例的报文转发装置700的框图。如图8所示,在一种可能的实现方式中,所述专用vxlan隧道为本地vtep与指定vtep之间建立的隧道,所述专用vxlan隧道对应的vxlanid为第二vxlanid。本地vtep上专用vxlan隧道的源地址为本地vtep的ip地址,本地vtep上专用vxlan隧道的目的地址为指定vtep的ip地址。指定vtep上专用vxlan隧道的源地址为指定vtep的ip地址,指定vtep上专用vxlan隧道的目的地址为本地vtep的ip地址。

在一种可能的实现方式中,所述第一发送模块705包括:

确定单元7051,用于根据所述第二vxlanid和所述指定vtep的ip地址,确定专用vxlan隧道。

发送单元7052,用于通过所述专用vxlan隧道发送所述第二vxlan报文。

在一种可能的实现方式中,所述装置700还包括:

第二接收模块706,用于接收第三vxlan报文。

第一解封装模块707,用于解封装所述第三vxlan报文,获取所述第三vxlan报文的报头的vxlanid和第一报文。

第二解封装模块708,用于当所述第三vxlan报文的报头的vxlanid为所述第二vxlanid时,对所述第一报文进行二次解封装,以获取第二报文,以及所述第二报文对应的vxlanid。

第二发送模块709,用于根据所述第二报文对应的vxlanid,封装并转发所述第二报文。

在一种可能的实现方式中,所述装置700还包括:

第三发送模块710,用于当所述第三vxlan报文的报头的vxlanid不是所述第二vxlanid时,根据所述第一报文对应的vxlanid,封装并转发所述第一报文。

图9示出根据本公开一实施例的报文转发装置800的框图。该装置应用于dr系统中的第一vtep,如图9所示,该装置800包括:

第一接收模块801,用于接收第一vm发送的数据,所述数据的目的地址为第二vtep的第二vm,所述第二vtep不属于所述dr系统。

获取模块802,用于获取与所述数据的tag对应的第一vxlanid。

第一封装模块803,用于将所述数据封装成第一vxlan报文,所述第一vxlan报文携带有所述第一vxlanid。

第二封装模块804,用于当确定将所述第一vxlan报文发送至第三vtep时,根据第二vxlanid对所述第一vxlan报文进行二次封装,以获取第二vxlan报文,所述第三vtep属于所述dr系统,所述第二vxlanid用于封装专用vxlan隧道。

第一发送模块805,用于将所述第二vxlan报文通过所述专用vxlan隧道发送至第三vtep。

图10示出根据本公开一实施例的报文转发装置800的框图。如图10所示,在一种可能的实现方式中,该装置800还包括:

第二接收模块806,用于接收第三vtep发送的第三vxlan报文。

第一解封装模块807,用于解封装所述第三vxlan报文,获取所述第三vxlan报文的报头的vxlanid和第一报文。

第二解封装模块808,用于当所述第三vxlan报文的报头的vxlanid为所述第二vxlanid时,对所述第一报文进行二次解封装,以获取第二报文,以及所述第二报文对应的vxlanid。

第二发送模块809,用于根据所述第二报文对应的vxlanid,封装并转发所述第二报文。

图11是根据一示例性实施例示出的一种报文转发装置900的框图。参照图11,该装置900可包括处理器901、存储有机器可执行指令的机器可读存储介质902。处理器901与机器可读存储介质902可经由系统总线903通信。并且,处理器901通过读取机器可读存储介质902中与报文转发逻辑对应的机器可执行指令以执行上文所述的报文转发方法。

本文中提到的机器可读存储介质902可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radomaccessmemory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1