一种VXLAN中的报文转发方法及装置与流程

文档序号:18570910发布日期:2019-08-31 01:16阅读:147来源:国知局
一种VXLAN中的报文转发方法及装置与流程

本发明涉及通信技术领域,特别是涉及一种VXLAN中的报文转发方法及装置。



背景技术:

VXLAN(Virtual eXtensible LAN,虚拟可扩展局域网)是一个将二层报文用三层协议进行封装的技术,可以对二层网络在三层网络范围内进行扩展。

VTEP(VXLAN Tunnel End Point,VXLAN隧道终端节点)为VXLAN中的边缘设备,VXLAN中的相关业务均在VTEP上进行,例如:识别以太网数据帧所属的VXLAN、基于VXLAN对数据帧进行二层转发以及封装/解封装报文等业务。其中,VTEP可以是一台独立的物理设备,也可以是由虚拟服务器虚拟出来的设备。

目前,基于VXLAN技术的VMware认证组网应用通常是采用冗余的方式进行系统搭建,源VTEP可通过与其相连接的认证服务器将报文转发至目的VTEP,从而实现VTEP间的报文交互。



技术实现要素:

本发明实施例所要解决的技术问题是提供一种VXLAN中的报文转发方法及装置,以提升报文转发的安全性、可靠性以及用户体验。

为了解决上述问题,本发明实施例公开了一种VXLAN中的报文转发方法,应用于认证服务器,包括:

对接收到的来自第一VXLAN隧道终端节点VTEP的第一报文进行检测;

若检测到第一报文中未携带缓存标识,且认证服务器的本地缓存中存在与第一VTEP相匹配的第二报文,则将第二报文与第一报文发送至第二VTEP;

若检测到第一报文中携带有缓存标识,则缓存第一报文。

本发明的另一个实施例中还公开了一种VXLAN中的报文转发方法,应用于VTEP,包括:

向两个或两个以上认证服务器发送报文;

其中,向发送至两个或两个以上认证服务器中的至少一个服务器的报文中添加缓存标识,缓存标识用于指示接收到携带有缓存标识的报文的认证服务器在检测到缓存标识时,缓存报文。

相应的,本发明实施例还公开了一种VXLAN中的报文转发装置,该装置应用于认证服务器,包括:

检测模块,用于对接收到的来自第一VXLAN隧道终端节点VTEP的第一报文进行检测;

第一发送模块,用于若检测到第一报文中未携带缓存标识,且认证服务器的本地缓存中存在与第一VTEP相匹配的第二报文,则将第二报文与第一报文发送至第二VTEP;

缓存模块,用于若检测到第一报文中携带有缓存标识,则缓存第一报文。

在本发明的另一个实施例中还公开了一种VXLAN中的报文转发装置,该装置应用于VTEP,包括:

第二发送模块,用于向两个或两个以上认证服务器发送报文;

添加模块,用于向发送至两个或两个以上认证服务器中的至少一个服务器的报文中添加缓存标识,缓存标识用于指示接收到携带有缓存标识的报文的认证服务器在检测到缓存标识时,缓存报文。

综上所述,本发明实施例中的技术方案,通过对接收到的来自第一VXLAN隧道终端节点VTEP的第一报文进行检测;若检测到第一报文中未携带缓存标识,且认证服务器的本地缓存中存在与第一VTEP相匹配的第二报文,则将第二报文与第一报文发送至第二VTEP;若检测到第一报文中携带有缓存标识,则缓存第一报文。从而能够保证在主认证服务器发生故障时,仍然保证业务不中断,同时避免了丢包的风险,有效地提高了报文转发的可靠性及安全性。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是基于VXLAN技术的认证组网应用中的网络连接示意图;

图2是本发明的一种VXLAN中的报文转发方法实施例的步骤流程图之一;

图3是本发明的一种VXLAN中的报文转发方法实施例的步骤流程图之二;

图4是本发明实施例中的网络架构图;

图5是本发明的一种VXLAN中的报文转发装置实施例的结构框图之一;

图6是本发明的一种VXLAN中的报文转发装置实施例的结构框图之二;

图7是本发明的一种VXLAN中的报文转发装置实施例的结构框图之三;

图8是本发明的一种VXLAN中的报文转发装置实施例的结构框图之四。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。

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

参照图1,示出了基于VXLAN技术的认证组网应用中的网络连接示意图。在图1中:

源终端(图示为VTEP1)与VM1(Virtual Machine,虚拟机)相连。并且,VTEP1与认证服务器1-3分别相连。

目的终端(图示为VTEP2)与VM2相连。并且,VTEP2同样与认证服务器1-3分别相连。

在一种实施例中,VTEP与相连接的每个VMware服务器会建立有连接通道,如图1中所示的隧道tunnel1、tunnel2、tunnel3。其中,VTEP1在接收到VM1发来的报文时,VTEP1根据自身制定的规则,从相连接的隧道中选择出用于转发该报文的主隧道,例如:tunnel1为主隧道,tunnel2和tunnel3为备用隧道。VTEP1通过主隧道tunnel1将报文发送至VMware服务器1,VMware服务器1再将报文转发至VTEP2。当VTEP1与VMware服务器1之间发生通信故障时,VTEP1从备用隧道中选择出接替主隧道tunnel1的隧道,例如tunnel2。VTEP1将业务切换到备用隧道tunnel2,通过tunnel2将报文发送至备用VMware服务器2,再由VMware服务器2将报文转发至VTEP2。

因此,在该实施例中如果主认证服务器与VTEP1之间的通信链路发生故障,主认证服务器上正在进行的业务将会被切换到备认证服务器,在切换过程中业务会发生中断,并且存在丢包的风险。

针对该技术问题,本发明实施例的核心构思之一在于,提出一种VXLAN中的报文转发方法及装置,以克服业务切换时存在的丢包和业务中断的问题,有效地提升报文转发的安全性以及可靠性。

参照图2,示出了本发明的一种VXLAN中的报文转发方法实施例的步骤流程图,该方法应用于认证服务器,具体可以包括如下步骤:

步骤201,对接收到的来自第一VXLAN隧道终端节点VTEP的第一报文进行检测。

具体的,认证服务器对接收到的来自第一VTEP的第一报文进行检测。其中,该第一报文由VM(Virtual Machine,虚拟机)发送至该第一VTEP。

步骤202,若检测到第一报文中未携带缓存标识,且认证服务器的本地缓存中存在与第一VTEP相匹配的第二报文,则将第二报文与第一报文发送至第二VTEP。

具体的,如果认证服务器检测到第一报文中未携带缓存标识,则查找本地缓存中是否存在与第一VTEP相匹配的第二报文。在本发明的一个优选的实施例中,认证服务器可通过查找本地缓存中是否存在与第一VTEP对应的标识信息(标识信息可以为VTEP的地址信息等用于唯一确定VTEP的信息),从而通过该标识信息查找出与第一VTEP相匹配的第二报文。并且,如果存在与第一VTEP相匹配的第二报文,则确认自身为其它认证服务器的备用服务器,并且,此时,主认证服务器与第一VTEP之间的通信链路已发生故障。所以,本发明实施例中的认证服务器将接收到的第一报文与缓存中的第二报文发送至第二VTEP。由此可见,通过本发明的技术方案,在主认证服务器与第一VTEP之间的通信链路发生故障并进行业务切换时,如果存在第一VTEP已将报文发送至主认证服务器,但是主认证服务器还未将报文转发至第二VTEP的场景,由于备用认证服务器的缓存中缓存有该报文,因此,当备用认证服务器将当前接收到的报文与缓存中的报文一同发送至第二VTEP时,能够有效得避免丢包导致的业务中断的现象发生。

在本发明的一个优选的实施例中,如果认证服务器检测到第一报文中未携带缓存标识,并且在本地存储中也未查找到与第一VTEP相匹配的第二报文,则认证服务器确认自身为主服务器,并将第一报文转发至第二VTEP。

步骤203,若检测到第一报文中携带有缓存标识,则缓存第一报文。

具体的,认证服务器若检测到第一报文中携带有缓存标识,则直接将该第一报文缓存到本地缓存中。其中,在缓存第一报文的时,还记录第一报文与第一VTEP的对应关系。

综上所述,本发明实施例中的技术方案,通过对接收到的来自第一VXLAN隧道终端节点VTEP的第一报文进行检测;若检测到第一报文中未携带缓存标识,且认证服务器的本地缓存中存在与第一VTEP相匹配的第二报文,则将第二报文与第一报文发送至第二VTEP;若检测到第一报文中携带有缓存标识,则缓存第一报文。从而能够保证在主认证服务器发生故障时,防止因主备认证服务器间的切换而导致的业务中断的问题,同时避免了丢包的风险,有效地提高了报文转发的可靠性及安全性。

可选的,在本发明的一个优选的实施例中,步骤203还可以包括:若检测到第一报文中未携带缓存标识,则检索本地存储的报文与VTEP之间的匹配关系;若检索出与第一VTEP匹配的第二报文,则将第二报文与第一报文发送至第二VTEP。

在本发明的一个优选的实施例中,若检索出与第一VTEP匹配的第二报文的步骤,具体包括:检索本地存储的索引信息,其中,索引信息中记录有本地缓存中的缓存池与VTEP的标识信息之间的对应关系,并且,缓存池中存储有报文。在本发明的一个优选的实施例中,若认证服务器检索到索引信息中存在第一VTEP的标识信息,则可确定该条记录有第一VTEP的标识信息的索引信息为目标索引信息,然后,认证服务器可根据该目标索引信息,确定与第一VTEP对应的目标缓存池,并将目标缓存池中缓存的报文(即第二报文)以及第一报发送至第二VTEP。

在本发明的另一个实施例中还提供了一种VXLAN中的报文转发方法,参照图3,示出了该VXLAN中的报文转发方法实施例的步骤流程图,具体可以包括如下步骤:

步骤301,向两个或两个以上认证服务器发送报文。

其中,向发送至两个或两个以上认证服务器中的至少一个认证服务器的报文中添加缓存标识,缓存标识用于指示接收到携带有缓存标识的报文的认证服务器在检测到缓存标识时,缓存报文。

具体的,VTEP向与其进行通信连接的两个或两个以上认证服务器发送来自VM的报文。

其中,VTEP在发送报文的过程中,将从上述两个或两个以上认证服务器中选择一个认证服务器作为主认证服务器,向该主认证服务器直接发送该报文,并且,将除主认证服务器以外的至少一个认证服务器作为备用服务器。

VTEP在至少一个认证服务器(备用服务器)发送的报文中添加缓存标识。使接收到携带缓存标识报文的认证服务器在检测到缓存标识时,将会存储该报文。

可选的,在本发明的一个优选的实施例中,上述步骤中还可以包括:在两个或两个以上认证服务器中选择符合预定规则的至少一个认证服务器。

具体的,VTEP根据预定规则,在上述两个或两个以上服务器中,选择出用于接收未携带缓存标识的报文的认证服务器以及用于接收携带缓存标识的报文的认证服务器。

为了更好的理解本发明,下面以具体实施例进行详细阐述。

参照图4,示出了本发明实施例中的网络架构图。在图4中:VTEP1通过隧道tunnel1、tunnel2、tunnel3分别与认证服务器1、认证服务器2、认证服务器3相连。VTEP1与VM1相连、VTEP2与VM2相连。

在本发明的实施例中,在业务开始之前,VTEP1根据预设规则,从与其进行通信连接的多个认证服务器(认证服务器1-3)中,选择出主认证服务器,以及备认证服务器。在本实施例中,以认证服务器1作为主认证服务器,以认证服务器2作为备认证服务器。在其他实施例中,也可以选择认证服务器2和3同时作为认证服务器1的备认证服务器。用户可根据实际需要进行主备认证服务器的选择,本发明对此不做限定。

需要说明的是:本发明实施例中的VTEP为VXLAN中的边缘设备,VXLAN中的相关业务均在VTEP上进行,例如:识别以太网数据帧所属的VXLAN、基于VXLAN对数据帧进行二层转发以及封装/解封装报文等业务。其中,VTEP可以是一台独立的物理设备,也可以是由虚拟服务器虚拟出来的设备。在本实施例中,以VTEP为物理设备进行详细阐述。

继续参照图4,在网络环境正常的状态下,VTEP1接收来自VM1的报文,并将报文复制为两份。其中一份进行正常封装,并将封装后的报文发送至认证服务器1。而另一个份需要在封装后的报文中添加缓存标识。

在本发明的一个优选的实施例中,向报文添加缓存标识的方式可以是在封装包头,从而使认证服务器能够对缓存标识进行识别。

修改标志位或者保留字段的具体方法可以为:

1)将指定的比特位置0。在本实施例中,指定的R比特位为报文头部的最后一个比特位,在其他实施例中也可以是其它比特位。并且,在其他实施例中,也可以将比特位置1作为缓存标识。

2)修改至少一个Reserved字段。其中,位于上方的Reserved字段具有4个字节,位于下方的Reserved字段具有1个字节,用户可自行设置Reserved字段的修改方式。本发明对此不做限定。

在本发明的实施例中,以第1种方式为例,即,VTEP1在封装后的报文中,将VXLAN Header中的最后一个比特位置0(即,0为缓存标识)。继续参照图4,认证服务器1对VTEP1发来的报文进行解封装,并对解封装后的报文进行检测。当检测到VXLAN Header中的最后一个比特位为1时,则将该报文转发至VTEP2。

认证服务器2同样对VTEP1发来的报文进行解封装,并对解封装后的报文进行检测。当检测到VXLAN Header中的最后一个比特位为0时,认证服务器2将该报文存储至本地缓存池。在本发明的实施例中,每个VTEP与缓存池一一对应,例如:VTEP1与缓存池1对应,VTEP2与缓存池2对应。当认证服务器2接收到VTEP1发来的携带缓存标识的报文时,认证服务器2将该报文缓存至与VTEP1对应的缓存池1中。同时,在索引列表中记录与该缓存池相关联的索引信息。索引信息中包括VTEP1的标识信息与缓存池之间的对应关系。其中,标识信息包括但不限于:VTEP的IP地址。

此外,在一个实施例中,缓存池的大小可由用户进行设置。在另一个实施例中,缓存池中的报文是以队列的方式进行排列。在本发明的一个优选的实施例中,认证服务器2将接收到新的报文缓存至缓存池中,新报文将会置于缓存队列的尾部。当缓存池的大小超过预设值时,则位于缓存队列首位的报文将被丢弃。

继续参照图4,如果VTEP1与认证服务器1之间的通信链路发生故障,即,tunnel1发生故障,则VTEP1将当前接收到的来自VM1的报文直接发送至认证服务器2。其中,如果已经将报文封装好并添加缓存标识,则需要将缓存标识取消,再进行发送。在一个实施例中,由于备认证服务器(认证服务器2)已变为主认证服务器,则VTEP1将根据预定规则重新选择备用认证服务器。在本发明的实施例中,以认证服务器3作为认证服务器2的备认证服务器。当VTEP1将报文发送至认证服务器2的同时,VTEP1还会通过tunnel3向认证服务器3发送携带缓存标识的报文。后续步骤与上述内容类似,此处不再赘述。

认证服务器2接收到VTEP1发来的报文之后,通过检测发现该报文中VLAN Header中的最后一个比特位为1,则确定比特位发生变化。认证服务器2通过检索索引列表中的所有索引信息,查找出带有VTEP1的标识信息的索引信息,并通过该索引信息查找到与VTEP1相关联的缓存池。认证服务器2提取出该缓存池中的所有报文,并将提取出的报文与新接收到的报文一同转发至VTEP2。从而有效得避免了主备认证服务器切换过程中存在的丢包的风险。

在本发明的另一个优选的实施例中,如果认证服务器1存在多个认证服务器,举例说明:如果认证服务器2和3均为认证服务器1的备认证服务器。则VTEP1在将未携带缓存标识的报文发送至认证服务器1的同时,还会将带有缓存标识的报文发送至认证服务器2和3。如果VTEP1与认证服务器1发生故障,则VTEP1会根据预定规则从认证服务器2和3中选择出作为接替认证服务器1作为主认证服务器的认证服务器。假设,认证服务器2作为接替认证服务器1的主认证服务器,则VTEP1会向认证服务器2发送未携带缓存标识的报文。同时,VTEP1还会从其它相连接的认证服务器中再选择一个认证服务器与认证服务器3一同作为认证服务器2的备认证服务器,并向新选择出的备认证服务器和认证服务器3同时发送携带缓存标识的报文。本实施例中通过多个备认证服务器对主认证服务器做备份,从而能够在主认证服务器和其中一个备认证服务器同时出现故障的情况下,仍然能够保证业务的正常运转,进一步提高了报文转发的安全性和可靠性。

在上述实施例的基础上,本实施还提供了一种VXLAN中的报文转发装置。

参照图5,示出了本发明一种VXLAN中的报文转发装置实施例的结构框图,该装置应用于认证服务器,具体可以包括如下模块:

检测模块51,用于对接收到的来自第一VXLAN隧道终端节点VTEP的第一报文进行检测。

第一发送模块52,用于若检测到第一报文中未携带缓存标识,且认证服务器的本地缓存中存在与第一VTEP相匹配的第二报文,则将第二报文与第一报文发送至第二VTEP。

缓存模块53,用于若检测到第一报文中携带有缓存标识,则缓存第一报文。

可选的,如图6所示,在本发明的一个优选的实施例中,在图5的基础上,第一发送模块52还可以包括:

检索子模块521,用于若检测到第一报文中未携带缓存标识,则检索本地存储的报文与VTEP之间的匹配关系.

发送子模块522,用于若检索出与第一VTEP匹配的第二报文,则将第二报文与第一报文发送至第二VTEP。

可选的,参照图7,在本发明的一个优选的实施例中,在图6的基础上,发送子模块522还可以包括:

检索单元522a,用于检索本地存储的索引信息,其中,索引信息中记录有本地缓存中的缓存池与VTEP的标识信息之间的对应关系,并且,缓存池中存储有报文。

确定单元522b,用于若检索到索引信息中存在记录有第一VTEP的标识信息的目标索引信息,则根据目标索引信息,确定与第一VTEP对应的目标缓存池。

发送单元522c,用于将目标缓存池中缓存的报文以及第一报发送至第二VTEP。

在上述实施例的基础上,本实施还提供了一种VXLAN中的报文转发装置。

参照图8,示出了本发明一种VXLAN中的报文转发装置实施例的结构框图,该装置应用于VTEP中,具体可以包括如下模块:

第二发送模块81,用于向两个或两个以上认证服务器发送报文;

添加模块82,用于向发送至两个或两个以上认证服务器中的至少一个认证服务器的报文中添加缓存标识,缓存标识用于指示接收到携带有缓存标识的报文的认证服务器在检测到缓存标识时,缓存报文。

可选的,添加模块82还可以包括:

选择子模块821,用于在两个或两个以上认证服务器中选择符合预定规则的至少一个认证服务器。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

综上所述,本发明实施例中的技术方案,通过引入缓存机制,从而在第一认证服务器切换到第二认证服务器时,保证了业务不中断。并且,第二认证服务器作为第一认证服务器的备用服务器,在报文转发过程中,第一VTEP通过将相同内容的报文分别向第一认证服务器和第二认证服务器发送,从而在业务切换的过程中,避免了丢包的风险,有效地提高了报文转发的可靠性及安全性。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本发明所提供的一种VXLAN中的报文转发方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

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