一种报文的传输方法和装置与流程

文档序号:18373500发布日期:2019-08-07 01:55阅读:146来源:国知局
一种报文的传输方法和装置与流程

本发明涉及通信技术领域,尤其涉及一种报文的传输方法和装置。



背景技术:

EVPN(Ethernet Virtual Private Network,以太网虚拟专用网络)是为以太网业务引入的一种新模型,运营商可以在高带宽、复杂的QoS(Quality of Service,服务质量)和有保障的SLA(Service Level Agreement,服务等级协议)等方面,满足演进的需求。如图1所示,为EVPN的组网示意图。VTEP(VXLAN Tunnel End Point,VXLAN隧道端点)设备与站点(Site)内的主机(如VM(Virtual Machine,虚拟机等)连接,且各VTEP设备之间建立有邻居关系以及隧道,例如VXLAN(Virtual eXtensible Local Area Network,虚拟可扩展局域网)隧道。

在EVPN中,各站点内是二层网络,VTEP设备(如VTEP设备1)需要学习本站点内的各主机的ARP(Address Resolution Protocol,地址解析协议)转发表项,并将ARP转发表项同步给邻居VTEP设备(如VTEP设备2或者VTEP设备3)。同时,VTEP设备也可以接收邻居VTEP设备同步的ARP转发表项。



技术实现要素:

本发明提供一种报文的传输方法,应用于无状态网关组网中的VTEP设备上,所述方法包括:向网关设备发送第一报文,以使网关设备发送针对所述第一报文的响应报文;利用网关设备发送的响应报文,选择与VTEP设备通信的网关设备;接收来自主机的第二报文,并将第二报文发送给选择的网关设备。

本发明提供一种报文的传输方法,应用于无状态网关组网中的网关设备上,所述方法包括以下步骤:接收来自VTEP设备的第一报文;向所述VTEP设备发送针对所述第一报文的响应报文,以使所述VTEP设备利用网关设备发送的响应报文,选择与VTEP设备通信的网关设备。

本发明提供一种报文的传输装置,应用于无状态网关组网中的VTEP设备上,所述装置具体包括:第一发送模块,用于向网关设备发送第一报文,以使所述网关设备发送针对所述第一报文的响应报文;选择模块,用于利用网关设备发送的响应报文,选择与VTEP设备通信的网关设备;第二发送模块,用于接收来自主机的第二报文,并将所述第二报文发送给选择的网关设备。

本发明提供一种报文的传输装置,应用于无状态网关组网中的网关设备上,所述装置具体包括:接收模块,用于接收来自VTEP设备的第一报文;发送模块,用于向VTEP设备发送针对所述第一报文的响应报文,以使VTEP设备利用网关设备发送的响应报文,选择与VTEP设备通信的网关设备。

基于上述技术方案,本发明实施例中,可以利用各网关设备发送的响应报文,选择与本VTEP设备通信的网关设备,从而可以选择时延信息最小的网关设备作为与本VTEP设备通信的网关设备。在将第二报文发送给该网关设备时,可以保证第二报文的传输时延最小,尽量避免第二报文在拥塞路径上进行传输,并可以减少出现业务拥塞的情况,提高用户的业务使用体验。

附图说明

为了更加清楚地说明本发明实施例或者现有技术中的技术方案,下面将对本发明实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

图1是未部署网关设备的EVPN的组网示意图;

图2是部署网关设备的EVPN的组网示意图;

图3是本发明一种实施方式中的报文的传输方法的流程图;

图4是本发明另一种实施方式中的报文的传输方法的流程图;

图5是本发明一种实施方式中的VTEP设备的硬件结构图;

图6是本发明一种实施方式中的报文的传输装置的结构图;

图7是本发明一种实施方式中的网关设备的硬件结构图;

图8是本发明一种实施方式中的报文的传输装置的结构图。

具体实施方式

在本发明使用的术语仅仅是出于描述特定实施例的目的,而非限制本发明。本发明和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

在EVPN中,当VTEP设备与外部网络的外网设备通信时,通常部署网关设备,如图2所示,为部署网关设备的EVPN的组网示意图。针对VTEP设备之间的报文传输过程,报文不需要经过网关设备。针对VTEP设备与外网设备的报文传输过程,报文需要经过网关设备。本发明实施例中,是指VTEP设备与外网设备的报文传输过程。当EVPN存在多个VTEP设备时,各VTEP设备的处理流程相同,为了方便描述,在图2中,以一个VTEP设备为例进行说明。

为了对网关设备进行故障保护和负载分担,通常会部署多个网关设备,图2中以部署两个网关设备为例进行说明,实际应用中,还可以部署三个或者更多的网关设备,其处理流程与两个网关设备的处理流程相同,后续不再赘述。

本发明实施例,可以应用于无状态网关的组网环境下,该组网环境下包括两个或两个以上网关设备,且各网关设备是指无状态网关。无状态网关是指:所有网关设备(如图2中的网关设备1和网关设备2)的IP地址和MAC(Media Access Control,媒体访问控制)地址均相同,如网关设备1和网关设备2的IP地址均为1.1.1.1,MAC地址均为a-a-a。这样,对于VTEP设备来说,网关设备1和网关设备2就相当于一个网关设备,VTEP设备不用区分各网关设备。

此外,VTEP设备还需要学习本站点内的各主机的ARP转发表项,并将学习到的ARP转发表项同步给网关设备1和网关设备2,该ARP转发表项的IP地址为主机1的IP地址,MAC地址为VTEP设备的MAC地址。之后,网关设备1和网关设备2利用该ARP转发表项,在本地维护相应的MAC转发表项,该MAC转发表项的IP地址为主机1的IP地址,MAC地址为VTEP设备的MAC地址,出端口为网关设备1和网关设备2上的接收到ARP转发表项的端口。

其中,VTEP设备可以通过BGP(Border Gateway Protocol,边界网关协议)消息,将ARP转发表项同步到网关设备1和网关设备2。基于此,网关设备1和网关设备2上的接收到ARP转发表项的端口,就是收到BGP消息的端口。

在上述应用场景下,主机1发送给外网设备的报文1的处理流程为:VTEP设备在接收到来自主机1的报文1之后,根据实际需要,将报文1发送给网关设备1或者网关设备2。网关设备1或者网关设备2在接收到报文1之后,将报文1发送给外网设备。进一步的,外网设备发送给主机1的报文2的处理流程为:外网设备在接收到来自网关设备1的报文1之后,向网关设备1发送报文2。网关设备1在接收到报文2之后,基于报文2的目的IP地址(如主机1的IP地址),可以查找到上述的MAC转发表项,并将报文2的目的MAC地址修改为VTEP设备的MAC地址,并基于MAC转发表项的出端口,将报文2发送给VTEP设备。VTEP设备在接收到报文2后,将报文2发送给主机1。

为了实现上述报文传输过程,VTEP设备与网关设备之间建立VXLAN隧道,源地址为VTEP设备的IP地址,目的地址为网关设备的IP地址,而且各网关设备的IP地址相同。如图2所示,对于网关设备1和网关设备2来说,在VTEP设备上建立VXLAN隧道1,源地址为VTEP设备的IP地址2.2.2.2,目的地址为网关设备1/网关设备2的IP地址1.1.1.1,且对应VXLAN标识1。网关设备1上建立VXLAN隧道2,源地址为网关设备1的IP地址1.1.1.1,目的地址为VTEP设备的IP地址2.2.2.2,且对应VXLAN标识1。网关设备2上建立VXLAN隧道3,源地址为网关设备2的IP地址1.1.1.1,目的地址为VTEP设备的IP地址2.2.2.2,且对应VXLAN标识1。基于VXLAN隧道1,VTEP设备可以向网关设备1或者网关设备2发送报文。基于VXLAN隧道2,网关设备1可以向VTEP设备发送报文。基于VXLAN隧道3,网关设备2可以向VTEP设备发送报文。

基于上述处理流程,会出现如下情况:VTEP设备根据实际需要,可能将大量的报文发送给网关设备1,并将少量的报文发送给网关设备2,从而造成网关设备1比较繁忙,而网关设备2比较空闲。而且,VTEP设备与网关设备1之间的路径可能是拥塞的转发路径,即可能在某个时间段内,VTEP设备与网关设备1之间的路径出现拥塞情况,从而导致出现业务拥塞的情况。

针对上述发现,本发明实施例中提出一种报文的传输方法,该方法可以应用于无状态网关组网中,且该无状态网关组网中可以包括VTEP设备和多个网关设备。以图2为本发明实施例的应用场景示意图,以两个网关设备为例,网关设备1和网关设备2的IP地址和MAC地址均相同,如网关设备1和网关设备2的IP地址均为1.1.1.1,网关设备1和网关设备2的MAC地址均为a-a-a。

在本文中,涉及到本发明实施例中提出的用于检测时延信息的报文,以及现有技术中提出的主机发送给外网设备的报文。为了区分方便,将用于检测时延信息的报文称为第一报文,将主机发送给外网设备的报文称为第二报文。其中,第一报文是一种检测报文,可以为UDP(User Datagram Protocol,用户数据报协议)类型的检测报文。第二报文可以为数据报文或者协议报文等(需要说明的是,在特定的情况下,可以将第二报文作为第一报文用于检测时延信息)。

在上述应用场景下,如图3所示,本发明实施例中提出的报文的传输方法,可以应用于无状态网关组网中的VTEP设备上,且该方法可以包括以下步骤:

步骤301,向网关设备发送第一报文,以使网关设备发送针对第一报文的响应报文。例如,在图2所示的应用场景下,VTEP设备向网关设备1发送第一报文1,以使网关设备1发送针对第一报文1的响应报文1。VTEP设备向网关设备2发送第一报文2,以使网关设备2发送针对第一报文2的响应报文2。

步骤302,利用网关设备发送的响应报文,选择与VTEP设备通信的网关设备。例如,VTEP设备利用网关设备1发送的响应报文1、网关设备2发送的响应报文2,选择与VTEP设备通信的网关设备为网关设备1或者网关设备2。

步骤303,接收来自主机的第二报文,并将第二报文发送给选择的网关设备。例如,VTEP设备将第二报文发送给选择的网关设备1或者网关设备2。

在现有实现方式中,VTEP设备发送给网关设备的报文(即上述的第二报文),网关设备会将该第二报文发送给外网设备。在此基础上,针对步骤301,本发明实施例中,为了使网关设备在接收到来自VTEP设备的第一报文后,能够向VTEP设备发送针对第一报文的响应报文,而不是将第一报文发送给外网设备,则需要对现有的传输方式进行改进,即VTEP设备使有改进后的传输方式向网关设备发送第一报文,以使网关设备向VTEP设备发送针对第一报文的响应报文。

在一个例子中,第一报文中携带预设标识信息,该预设标识信息用于指示网关设备发送响应报文,即指示网关设备向VTEP设备发送针对第一报文的响应报文。基于此,网关设备在收到来自VTEP设备的第一报文后,如果从第一报文中解析出该预设标识信息,则向VTEP设备发送针对第一报文的响应报文,且该响应报文中还携带预设标识信息,该预设标识信息还用于标识该网关设备。

如图2所示,在一个例子中,VTEP设备可以通过VXLAN隧道1将第一报文发送给网关设备1,而为了使网关设备1向VTEP设备发送针对第一报文的响应报文,而不是将第一报文发送给外网设备,则在第一报文中可以携带预设标识信息,如该预设标识信息可以为与VXLAN标识1不同、且未被使用的一个VXLAN标识,如VXLAN标识100。基于此,网关设备1在接收到第一报文后,由于第一报文中携带该预设标识信息,且该预设标识信息用于指示网关设备1发送响应报文,因此,网关设备1向VTEP设备发送针对第一报文的响应报文。与此不同的是,网关设备1在接收到第二报文后,由于第二报文中未携带预设标识信息(即VXLAN100),因此,网关设备1向外网设备转发该第二报文。

与网关设备1的处理类似的是,VTEP设备可以通过VXLAN隧道1将第一报文发送给网关设备2,而为了使网关设备2向VTEP设备发送针对第一报文的响应报文,而不是将第一报文发送给外网设备,则在第一报文中可以携带预设标识信息,如该预设标识信息可以为与VXLAN标识1不同、且未被使用的一个VXLAN标识,如VXLAN标识200。基于此,网关设备2在接收到第一报文后,由于第一报文中携带该预设标识信息,且该预设标识信息用于指示网关设备2发送响应报文,因此,网关设备2向VTEP设备发送针对第一报文的响应报文。与此不同的是,网关设备2在接收到第二报文后,由于未携带预设标识信息(即VXLAN200),因此,网关设备2向外网设备转发该第二报文。

在上述方式下,第一报文的传输通道复用了现有的VXLAN隧道1,而为了与第二报文进行区分,则可以在第一报文中携带与VXLAN标识1不同的预设标识信息,因此,需要为网关设备申请预设标识信息,且该预设标识信息用于指示网关设备发送响应报文。此外,为了区分不同的网关设备,为不同的网关设备申请的预设标识信息不同。这样,网关设备发送的响应报文中还可以携带预设标识信息,VTEP设备就可以利用该预设标识信息区分出网关设备。

例如,VTEP设备针对网关设备1获取的预设标识信息为VXLAN标识100,针对网关设备2获取的预设标识信息为VXLAN标识200。VTEP设备可以从指定服务器申请到预设标识信息,也可以由用户在VTEP设备上配置预设标识信息。在为网关设备1获取到VXLAN标识100后,VTEP设备可以通过BGP消息,将VXLAN标识100发送给网关设备1,网关设备1可以维护VXLAN标识100与VXLAN隧道1的反向VXLAN隧道的对应关系,该反向VXLAN隧道即上述的VXLAN隧道2。VTEP设备可以通过BGP消息,将VXLAN标识200发送给网关设备2,网关设备2可以维护VXLAN标识200与VXLAN隧道1的反向VXLAN隧道的对应关系,该反向VXLAN隧道即上述的VXLAN隧道3。

这样,网关设备1在接收到第一报文后,从第一报文中解析出VXLAN标识100,并通过对应的VXLAN隧道2,向VTEP设备发送针对第一报文的响应报文。网关设备2在接收到第一报文后,从第一报文中解析出VXLAN标识200,并通过对应的VXLAN隧道3,向VTEP设备发送针对第一报文的响应报文。

网关设备1向VTEP设备发送的响应报文中还可以携带VXLAN标识100,基于该VXLAN标识100,VTEP设备可以获知该响应报文是网关设备1发送的。网关设备2向VTEP设备发送的响应报文中还可以携带VXLAN标识200,基于该VXLAN标识200,VTEP设备可以获知该响应报文是网关设备2发送的。

在一个例子中,在VTEP设备与网关设备之间还可以建立有指定VXLAN隧道(与现有的VXLAN隧道不同的一个新VXLAN隧道),该指定VXLAN隧道与不同的网关设备对应,且该指定VXLAN隧道用于指示网关设备从所述指定VXLAN隧道接收到第一报文时,发送响应报文,即指示网关设备向VTEP设备发送针对第一报文的响应报文。基于此,VTEP设备可以通过指定VXLAN隧道向网关设备传输第一报文,网关设备在通过指定VXLAN隧道接收到来自VTEP设备的第一报文后,由于第一报文是通过指定VXLAN隧道传输的,因此网关设备向VTEP设备发送针对第一报文的响应报文。

如图2所示,在一个例子中,为了使网关设备1向VTEP设备发送针对第一报文的响应报文,而不是将第一报文发送给外网设备,则VTEP设备可以通过与VXLAN隧道1不同的新VXLAN隧道(如指定VXLAN隧道10)将第一报文发送给网关设备1。基于此,网关设备1在通过指定VXLAN隧道10收到第一报文后,由于指定VXLAN隧道10用于指示网关设备1发送响应报文,因此网关设备1向VTEP设备发送针对第一报文的响应报文。与此不同的是,网关设备1通过VXLAN隧道1接收到第二报文后,向外网设备转发该第二报文。

与网关设备1的处理类似的是,为了使网关设备2向VTEP设备发送针对第一报文的响应报文,而不是将第一报文发送给外网设备,则VTEP设备可以通过与VXLAN隧道1不同的新VXLAN隧道(如指定VXLAN隧道11)将第一报文发送给网关设备2。基于此,网关设备2在通过指定VXLAN隧道11收到第一报文后,由于指定VXLAN隧道11用于指示网关设备2发送响应报文,因此网关设备2向VTEP设备发送针对第一报文的响应报文。与此不同的是,网关设备2通过VXLAN隧道1收到第二报文后,向外网设备转发第二报文。

在上述方式下,第一报文的传输通道使用了与现有的VXLAN隧道1不同的新VXLAN隧道,将该新VXLAN隧道称为指定VXLAN隧道。因此,需要在VTEP设备与网关设备之间建立指定VXLAN隧道,且该指定VXLAN隧道用于指示网关设备发送响应报文。此外,为了区分不同的网关设备,为不同的网关设备建立的指定VXLAN隧道不同。这样,VTEP设备在接收到响应报文时,就可以利用接收到该响应报文的指定VXLAN隧道区分出网关设备。

例如,VTEP设备针对网关设备1建立指定VXLAN隧道10,针对网关设备2建立指定VXLAN隧道11。而且,网关设备1会建立指定VXLAN隧道10的反向VXLAN隧道,如指定VXLAN隧道10’,网关设备2会建立指定VXLAN隧道11的反向VXLAN隧道,如指定VXLAN隧道11’。进一步的,网关设备1会维护指定VXLAN隧道10与指定VXLAN隧道10’的映射关系,网关设备2会维护指定VXLAN隧道11与指定VXLAN隧道11’的映射关系。

这样,网关设备1在通过指定VXLAN隧道10接收到第一报文后,由于指定VXLAN隧道10用于指示网关设备1发送响应报文,因此,网关设备1通过指定VXLAN隧道10对应的指定VXLAN隧道10’,向VTEP设备发送针对第一报文的响应报文。VTEP设备在通过指定VXLAN隧道10’接收到响应报文后,可以获知该响应报文是指定VXLAN隧道10’对应的网关设备1发送的。

网关设备2在通过指定VXLAN隧道11接收到第一报文后,由于指定VXLAN隧道11用于指示网关设备2发送响应报文,因此,网关设备2通过指定VXLAN隧道11对应的指定VXLAN隧道11’,向VTEP设备发送针对第一报文的响应报文。VTEP设备在通过指定VXLAN隧道11’接收到响应报文后,可以获知该响应报文是指定VXLAN隧道11’对应的网关设备2发送的。

在一个例子中,阐述了一种建立指定VXLAN隧道的示例,具体为,可以在各网关设备上配置IP子地址,且各网关设备的IP子地址不同。例如,网关设备1上配置IP子地址3.3.3.3,网关设备2上配置IP子地址4.4.4.4。为了在VTEP设备上建立网关设备1对应的指定VXLAN隧道10,网关设备2对应的指定VXLAN隧道11,在VTEP设备上配置与IP子地址3.3.3.3建立VXLAN隧道的命令,与IP子地址4.4.4.4建立VXLAN隧道的命令。

基于此,可以在VTEP设备上建立指定VXLAN隧道10,该指定VXLAN隧道10,对应VXLAN标识2000,源地址为VTEP设备的IP地址2.2.2.2,目的地址为网关设备1的IP子地址3.3.3.3。此外,还可以在VTEP设备上建立指定VXLAN隧道11,该指定VXLAN隧道11,对应VXLAN标识3000,源地址为VTEP设备的IP地址2.2.2.2,目的地址为网关设备1的IP子地址4.4.4.4。此外,还可以在网关设备1上建立指定VXLAN隧道10’,该指定VXLAN隧道10’,对应VXLAN标识2000,源地址为网关设备1的IP子地址3.3.3.3,目的地址为VTEP设备的IP地址2.2.2.2。此外,还可以在网关设备2上建立指定VXLAN隧道11’,该指定VXLAN隧道11’,对应VXLAN标识3000,源地址为网关设备2的IP子地址4.4.4.4,目的地址为VTEP设备的IP地址2.2.2.2。

在一个例子中,在VTEP设备与网关设备之间还可以建立有指定VXLAN隧道(与现有VXLAN隧道不同的一个新VXLAN隧道),该指定VXLAN隧道与不同的网关设备对应,而且,第一报文中携带预设标识信息。基于此,通过指定VXLAN隧道和预设标识信息来指示网关设备发送响应报文,即指示网关设备向VTEP设备发送针对第一报文的响应报文。例如,网关设备只有从指定VXLAN隧道接收到携带预设标识信息的第一报文,才发送响应报文。对于指定VXLAN隧道和预设标识信息的相关内容,已在上面介绍,在此不再赘述。

针对步骤302,在利用网关设备发送的响应报文,选择与VTEP设备通信的网关设备的过程中,VTEP设备可以利用网关设备发送的响应报文,确定VTEP设备与网关设备的时延信息;利用时延信息选择与VTEP设备通信的网关设备。

针对利用响应报文确定VTEP设备与网关设备的时延信息的过程:

在一个例子中,VTEP设备在发送第一报文时,在本地记录发送第一报文的时间戳T1。VTEP设备在接收到针对第一报文的响应报文时,在本地记录接收响应报文的时间戳T4。之后,利用时间戳T1和时间戳T4,确定VTEP设备与网关设备的时延信息,如时延信息可以为时间戳T4-时间戳T1。

在另一个例子中,VTEP设备在发送第一报文时,在第一报文中添加发送第一报文的时间戳T1。VTEP设备在接收到针对第一报文的响应报文时,在本地记录接收响应报文的时间戳T4。之后,利用时间戳T1和时间戳T4,确定VTEP设备与网关设备的时延信息,如时延信息可以为时间戳T4-时间戳T1。

在另一个例子中,VTEP设备在发送第一报文时,在第一报文中添加发送第一报文的时间戳T1。网关设备在发送针对第一报文的响应报文时,在响应报文中添加接收第一报文的时间戳T2、发送响应报文的时间戳T3。VTEP设备在接收到响应报文时,在本地记录接收响应报文的时间戳T4。之后,利用时间戳T1、时间戳T2、时间戳T3和时间戳T4,确定VTEP设备与网关设备的时延信息,如时延信息可以为(时间戳T4-时间戳T1)-(时间戳T3-时间戳T3)。

当然实际应用中,并不局限于上述检测VTEP设备与网关设备之间的时延信息的方式,所有能够检测到时延信息的方式,均在本发明保护范围之内。

本发明实施例中,在检测到VTEP设备与各网关设备之间的时延信息之后,VTEP设备还可以在本地存储介质(如内存等)中记录VTEP设备与各网关设备之间的时延信息。例如,VTEP设备与网关设备1之间的时延信息为时延A,VTEP设备与网关设备2之间的时延信息为时延B,且时延A小于时延B。

针对利用时延信息选择与VTEP设备通信的网关设备的过程:

基于在本地存储介质中记录的VTEP设备与各网关设备之间的时延信息,VTEP设备可以选择时延最小的网关设备作为与本VTEP设备通信的网关设备。例如,由于时延A小于时延B,时延A是最小的时延,因此,VTEP设备可以选择时延A对应的网关设备1作为与本VTEP设备通信的网关设备。

针对步骤303,VTEP设备在接收到来自主机的第二报文之后,将该第二报文发送给选择的网关设备,以使该选择的网关设备向外网设备转发该第二报文。例如,主机1发送给外网设备的报文1(即第二报文)的处理流程为:VTEP设备在接收到来自主机1的报文1之后,将该报文1发送给选择的网关设备(如时延最小的网关设备1)。在一个例子中,VTEP设备可以通过VXLAN隧道1将该报文1发送给网关设备1,具体发送方式在此不再赘述。网关设备1在通过VXLAN隧道1接收到报文1之后,将报文1发送给外网设备。

本发明实施例中,VTEP设备还可以将主机对应的转发表项同步给选择的网关设备,例如,VTEP设备可以通过BGP消息将转发表项同步给选择的网关设备。基于此,VTEP设备可以接收到该选择的网关设备发送的外网设备发送给主机的报文;其中,该报文是选择的网关设备利用该转发表项发送的。

例如,VTEP设备还可以学习本站点内各主机(如主机1)的转发表项(如ARP转发表项),并通过BGP消息将学习到的ARP转发表项同步给该网关设备1。其中,该ARP转发表项的IP地址为主机1的IP地址,MAC地址为VTEP设备的MAC地址。之后,网关设备1可以在本地维护相应的MAC转发表项,该MAC转发表项的IP地址为主机1的IP地址,MAC地址为VTEP设备的MAC地址,且出端口为网关设备1上的接收到该BGP消息的端口。

基于此,外网设备发送给主机1的报文2(即第二报文的响应报文)的处理流程为:外网设备在接收到来自网关设备1的报文1之后,向网关设备1发送报文1对应的响应报文,如报文2。网关设备1在接收到报文2之后,基于报文2的目的IP地址(如主机1的IP地址),可以查找到上述MAC转发表项,将报文2的目的MAC地址修改为VTEP设备的MAC地址,并基于MAC转发表项的出端口,通过VXLAN隧道2将报文2发送给VTEP设备。VTEP设备在通过VXLAN隧道2接收到报文2之后,将报文2发送给主机1。

基于上述技术方案,本发明实施例中,可以利用各网关设备发送的响应报文,选择与本VTEP设备通信的网关设备,从而可以选择时延信息最小的网关设备作为与本VTEP设备通信的网关设备。在将第二报文发送给该网关设备时,可以保证第二报文的传输时延最小,尽量避免第二报文在拥塞路径上进行传输,并可以减少出现业务拥塞的情况,提高用户的业务使用体验。

本发明实施例的上述过程可以是周期性进行的,即VTEP设备周期性的利用时延信息,选择与本VTEP设备通信的网关设备。如果时延最小的网关设备未发生变化,则VTEP设备继续向之前选择的网关设备发送第二报文,如果时延最小的网关设备发生变化,则VTEP设备向变化后的网关设备发送第二报文,并重新向变化后的网关设备同步主机对应的转发表项,以此类推。

因此,VTEP设备总是将第二报文发送给传输时延最小的网关设备,而且,传输时延最小的网关设备也是相对空闲的网关设备,从而可以避免出现有些网关设备比较繁忙,而有些网关设备比较空闲的问题,均衡各网关设备的负载。

本发明实施例中,针对VTEP设备通过BGP消息将转发表项同步给选择的网关设备的过程,VTEP设备还可以在BGP消息中添加主机对应的带宽值,例如,在BGP消息中添加带宽扩展团体属性,并通过该带宽扩展团体属性携带主机对应的带宽值。基于此,该网关设备可以从BGP消息中解析出带宽值(如从带宽扩展团体属性中解析出带宽值),并为主机预留该带宽值的带宽。

例如,当在某个时间段,如果主机1有特殊的业务带宽要求,则可以在VTEP设备上为该主机1配置对应的带宽要求,如为主机1配置需要的带宽值100M。基于此,VTEP设备在通过BGP消息向网关设备1同步转发表项时,可以在BGP消息中添加带宽扩展团体属性,并通过该带宽扩展团体属性携带主机对应的带宽值100M。网关设备1在接收到BGP消息后,可以从BGP消息的带宽扩展团体属性中解析出带宽值,并通过流量工程方法为主机1预留100M的带宽。

在实际应用中,VTEP设备还可以在该BGP消息的NLRI(Network Layer Reachability Information,网络层可达信息)字段中携带主机1对应的VSI(Virtual Switching Instance,虚拟交换实例)虚接口的IP地址(如111.1.1.2),以表示该BGP消息用于为该虚接口的IP地址对应的主机1预留100M带宽。

基于上述技术方案,在EVPN组网中,通过使用流量工程方法,可以为重要用户预留网关设备的带宽,从而满足重要用户的需求,更好的为用户服务。

在另一个例子中,如图4所示,本发明实施例中提出的报文的传输方法,可以应用于无状态网关组网中的网关设备上,且该方法可以包括以下步骤:

步骤401,接收来自VTEP设备的第一报文。

步骤402,向VTEP设备发送针对第一报文的响应报文,以使VTEP设备利用网关设备发送的响应报文,选择与VTEP设备通信的网关设备。

在一个例子中,上述第一报文中可以携带预设标识信息,且该预设标识信息用于指示本网关设备发送响应报文。基于此,网关设备向VTEP设备发送针对第一报文的响应报文的过程,具体可以包括但不限于:网关设备在从该第一报文中解析出预设标识信息后,向VTEP设备发送响应报文;其中,该响应报文中还可以携带该预设标识信息,且该预设标识信息还用于标识本网关设备。

在另一个例子中,在VTEP设备与本网关设备之间还建立有指定VXLAN隧道,该指定VXLAN隧道与不同的网关设备对应,所述指定VXLAN隧道用于使网关设备从所述指定VXLAN隧道接收到第一报文时,发送响应报文。基于此,网关设备向VTEP设备发送针对第一报文的响应报文的过程,具体可以包括但不限于:网关设备在通过指定VXLAN隧道接收到第一报文时,则可以向VTEP设备发送响应报文。

基于上述技术方案,本发明实施例中,可以利用各网关设备发送的响应报文,选择与本VTEP设备通信的网关设备,从而可以选择时延信息最小的网关设备作为与本VTEP设备通信的网关设备。在将第二报文发送给该网关设备时,可以保证第二报文的传输时延最小,尽量避免第二报文在拥塞路径上进行传输,并可以减少出现业务拥塞的情况,提高用户的业务使用体验。

基于与上述方法同样的发明构思,本发明实施例中还提供了一种报文的传输装置,应用在无状态网关组网中的VTEP设备上。该报文的传输装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的VTEP设备的处理器,读取非易失性存储器中对应的计算机程序指令形成的。从硬件层面而言,如图5所示,为本发明提出的报文的传输装置所在的VTEP设备的一种硬件结构图,除了图5所示的处理器、非易失性存储器外,VTEP设备还可以包括其他硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,该VTEP设备还可能是分布式设备,可能包括多个接口卡,以在硬件层面进行报文处理的扩展。

如图6所示,为本发明提出的报文的传输装置的结构图,所述装置包括:

第一发送模块11,用于向网关设备发送第一报文,以使所述网关设备发送针对所述第一报文的响应报文;选择模块12,用于利用网关设备发送的响应报文,选择与VTEP设备通信的网关设备;第二发送模块13,用于接收来自主机的第二报文,并将所述第二报文发送给选择的网关设备。

在一个例子中,所述选择模块12,具体用于在利用网关设备发送的响应报文,选择与VTEP设备通信的网关设备的过程中,利用网关设备发送的响应报文,确定所述VTEP设备与所述网关设备的时延信息;利用所述时延信息,选择与所述VTEP设备通信的网关设备。

在一个例子中,所述第一发送模块11发送的所述第一报文中携带预设标识信息,所述预设标识信息用于指示网关设备发送响应报文;所述响应报文中还携带所述预设标识信息,所述预设标识信息还用于标识所述网关设备。

在一个例子中,所述报文的传输装置还包括(在图中未体现):

建立模块14,用于在所述VTEP设备与网关设备之间建立指定可扩展局域网VXLAN隧道,所述指定VXLAN隧道与不同的网关设备对应,所述指定VXLAN隧道用于使网关设备从所述指定VXLAN隧道接收到第一报文时,发送响应报文;

所述第一发送模块11,用于通过所述指定VXLAN隧道传输所述第一报文。

基于与上述方法同样的发明构思,本发明实施例中还提供了一种报文的传输装置,应用在无状态网关组网中的网关设备上。该报文的传输装置可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在的网关设备的处理器,读取非易失性存储器中对应的计算机程序指令形成的。从硬件层面而言,如图7所示,为本发明提出的报文的传输装置所在的网关设备的一种硬件结构图,除了图7所示的处理器、非易失性存储器外,网关设备还可以包括其他硬件,如负责处理报文的转发芯片、网络接口、内存等;从硬件结构上来讲,该网关设备还可能是分布式设备,可能包括多个接口卡,以便在硬件层面进行报文处理的扩展。

如图8所示,为本发明提出的报文的传输装置的结构图,所述装置包括:

接收模块21,用于接收来自可扩展局域网隧道端点VTEP设备的第一报文;

发送模块22,用于向VTEP设备发送针对所述第一报文的响应报文,以使VTEP设备利用网关设备发送的响应报文,选择与VTEP设备通信的网关设备。

所述第一报文中携带预设标识信息,所述预设标识信息用于指示网关设备发送响应报文;所述发送模块22,具体用于在向所述VTEP设备发送针对所述第一报文的响应报文的过程中,在从所述第一报文中解析出所述预设标识信息后,向所述VTEP设备发送所述响应报文;其中,所述响应报文中还携带所述预设标识信息,所述预设标识信息还用于标识所述网关设备。

在所述VTEP设备与网关设备之间建立有指定可扩展局域网VXLAN隧道,所述指定VXLAN隧道与不同的网关设备对应,所述指定VXLAN隧道用于使网关设备从所述指定VXLAN隧道接收到第一报文时,发送响应报文;所述发送模块22,具体用于在向所述VTEP设备发送针对所述第一报文的响应报文的过程中,在通过所述指定VXLAN隧道接收到所述第一报文时,向所述VTEP设备发送所述响应报文。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。

本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

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