VTEP异常情况处理方法及装置转让专利

申请号 : CN201410401246.X

文献号 : CN104168140B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张建周

申请人 : 新华三技术有限公司

摘要 :

本发明提供一种VTEP异常情况处理方法及装置,应用于VXLAN组网系统中的第一VTEP设备,该方法包括:第一VTEP设备接收到所述第一VM请求所述第二VM的MAC地址的请求报文时,向查询服务器发送查询报文,获取所述第二VTEP设备的更新信息;根据所述第二VTEP设备的更新信息,判断所述第二VTEP设备是否异常,若异常,则停止向所述第一VM发送应答报文,若未异常,则向所述第一VM发送应答报文。通过本发明能够及时感知对端VTEP设备的异常情况,从而停止向异常VTEP设备转发报文,避免了VTEP设备的资源浪费,提高了网络带宽利用率。

权利要求 :

1.一种可扩展虚拟局域网络VXLAN隧道终端节点VTEP异常情况处理方法,应用于VXLAN组网系统中的第一VTEP设备,所述VXLAN组网系统包括第一虚拟机VM、第一VTEP设备、第二VM、第二VTEP设备以及查询服务器,其特征在于,该方法包括:第一VTEP设备接收到所述第一VM请求所述第二VM的MAC地址的请求报文时,向查询服务器发送查询报文,获取所述第二VTEP设备的更新信息;

根据所述第二VTEP设备的更新信息,判断所述第二VTEP设备是否异常,若异常,则停止向所述第一VM发送应答报文,若未异常,则向所述第一VM发送应答报文。

2.如权利要求1所述的方法,其特征在于,所述更新信息为所述第二VTEP设备按照预设的注册时间周期向所述查询服务器发送注册报文时的注册时间戳;

所述根据所述第二VTEP设备的更新信息,判断所述第二VTEP设备是否异常,具体包括:所述第一VTEP设备计算获取到所述注册时间戳时的当前时间与所述注册时间戳的差值,若所述差值大于预设的第一异常判断时长T1,则确认所述第二VTEP设备异常,否则,确认未异常。

3.如权利要求2所述的方法,其特征在于,所述方法还包括:

若所述差值大于预设的第二异常判断时长T1+T,则向所述查询服务器发送删除所述第二VTEP设备注册信息的报文。

4.如权利要求1所述的方法,其特征在于,所述方法还包括:

若所述第二VTEP设备异常,则将所述第二VM的IP地址和所属VXLAN标识添加到设备异常记录表中;

当接收到对所述第二VM的MAC地址的请求报文时,根据所述请求报文中的所述第二VM的IP地址和VXLAN标识,查询所述设备异常记录表,若存在对应记录,则不向所述查询服务器发送查询报文。

5.如权利要求1所述的方法,其特征在于,所述方法还包括:

当所述第一VTEP设备重启后,在首次接收到所述第一VM发送的DHCP request报文时,向对应DHCP服务器发送DHCP Discovery报文,以获取所述查询服务器的IP地址。

6.一种可扩展虚拟局域网络VXLAN隧道终端节点VTEP异常情况处理装置,应用于VXLAN组网系统中的第一VTEP设备,所述VXLAN组网系统包括第一虚拟机VM、第一VTEP设备、第二VM、第二VTEP设备以及查询服务器,其特征在于,该装置包括:信息获取单元,用于在接收到所述第一VM请求所述第二VM的MAC地址的请求报文时,向查询服务器发送查询报文,获取所述第二VTEP设备的更新信息;

异常判断单元,用于根据所述第二VTEP设备的更新信息,判断所述第二VTEP设备是否异常,若异常,则停止向所述第一VM发送应答报文,若未异常,则向所述第一VM发送应答报文。

7.如权利要求6所述的装置,其特征在于,所述更新信息为所述第二VTEP设备按照预设的注册时间周期向所述查询服务器发送注册报文时的注册时间戳;

所述异常判断单元根据所述第二VTEP设备的更新信息,判断所述第二VTEP设备是否异常,具体包括:所述异常判断单元计算获取到所述注册时间戳时的当前时间与所述注册时间戳的差值,若所述差值大于预设的第一异常判断时长T1,则确认所述第二VTEP设备异常,否则,确认未异常。

8.如权利要求7所述的装置,其特征在于,所述装置还包括:

信息删除单元,用于在所述差值大于预设的第二异常判断时长T1+T时,向所述查询服务器发送删除所述第二VTEP设备注册信息的报文。

9.如权利要求6所述的装置,其特征在于,所述装置还包括:

异常记录单元,用于在所述异常判断单元确认所述第二VTEP设备异常时,将所述第二VM的IP地址和所属VXLAN标识添加到设备异常记录表中;

所述信息获取单元进一步用于,当接收到对所述第二VM的MAC地址的请求报文时,根据所述请求报文中的所述第二VM的IP地址和VXLAN标识,查询所述设备异常记录表,若存在对应记录,则不向所述查询服务器发送查询报文。

10.如权利要求6所述的装置,其特征在于,所述装置还包括:

地址获取单元,用于当所述第一VTEP设备重启后,在首次接收到所述第一VM发送的DHCP request报文时,向对应DHCP服务器发送DHCP Discovery报文,以获取所述查询服务器的IP地址。

说明书 :

VTEP异常情况处理方法及装置

技术领域

[0001] 本发明涉及网络通讯技术领域,尤其涉及一种VTEP异常情况处理方法及装置。

背景技术

[0002] VXLAN(Virtual eXtensible LAN,可扩展虚拟局域网络)是一个将二层报文用三层协议进行封装的技术,可以对二层网络在三层网络范围内进行扩展。典型的VXLAN组网采用集中查询服务器方式,该VXLAN组网通常包括VM(Virtual Machine,虚拟机)、VTEP(VXLAN Tunnel End Point,VXLAN隧道终端节点)设备以及查询服务器。
[0003] 当本端VM向对端VM发送二层报文时,由本端VTEP对该报文进行三层封装,通过三层网络发送给对端VTEP,对端VTEP解封装后,还原成二层报文给对端VM。
[0004] 但是,当对端VTEP设备发生异常时,其无法再与对端VM通信,而本端VTEP在接收到本端VM访问对端VM的请求时,仍然通过本端VTEP设备向对端VTEP设备发送数据,从而占用了本端VTEP设备资源,降低了VTEP设备处理效率,同时,也导致不必要的网络带宽浪费。

发明内容

[0005] 有鉴于此,本发明提供了一种VTEP异常情况处理方法,应用于VXLAN组网系统中的第一VTEP设备,所述VXLAN组网系统包括第一虚拟机VM、第一VTEP设备、第二VM、第二VTEP设备以及查询服务器,该方法包括:
[0006] 第一VTEP设备接收到所述第一VM请求所述第二VM的MAC地址的请求报文时,向查询服务器发送查询报文,获取所述第二VTEP设备的更新信息;
[0007] 根据所述第二VTEP设备的更新信息,判断所述第二VTEP设备是否异常,若异常,则停止向所述第一VM发送应答报文,若未异常,则向所述第一VM发送应答报文。
[0008] 本发明还提供了一种VTEP异常情况处理装置,应用于VXLAN组网系统中的第一VTEP设备上,所述VXLAN组网系统包括第一VM、第一VTEP设备、第二VM、第二VTEP设备以及查询服务器,该装置包括:
[0009] 信息获取单元,用于在接收到所述第一VM请求所述第二VM的MAC地址的请求报文时,向查询服务器发送查询报文,获取所述第二VTEP设备的更新信息;
[0010] 异常判断单元,用于根据所述第二VTEP设备的更新信息,判断所述第二VTEP设备是否异常,若异常,则停止向所述第一VM发送应答报文,若未异常,则向所述第一VM发送应答报文。
[0011] 本发明通过查询对端VTEP设备的更新信息,判断对端VTEP设备是否异常,从而停止向异常VTEP设备转发报文,避免了VTEP设备的资源浪费,提高了网络带宽利用率。

附图说明

[0012] 图1是本发明一种实施方式中VXLAN组网示意图。
[0013] 图2是本发明一种实施方式中VTEP异常情况处理方法的流程图。
[0014] 图3是本发明具体实施例的处理流程图。
[0015] 图4是本发明一种实施方式中VTEP异常情况处理装置的结构示意图。
[0016] 图5是本发明一种实施方式中VTEP异常情况处理装置的基础硬件示意图。

具体实施方式

[0017] 为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图对本发明实施例作进一步地详细说明。
[0018] 图1所示为采用集中查询服务器方式的VXLAN组网示意图,该VXLAN组网主要包括VM、VTEP设备以及查询服务器。正常通讯时,例如,VM1访问VM4时,VM1首先查询本地的ARP(Address Resolution Protocol,地址解析协议)表,若本地无VM4的MAC(Media Access Control,介质访问控制)信息,则发送ARP请求报文请求VM4的MAC地址。VTEP A接收到该请求报文后,向查询服务器查询VM4的MAC地址以及VM4所属VTEP B设备的信息,VTEP A获得VM4的MAC地址后,向VM1发送ARP应答报文,告知VM4的MAC地址,则VM1与VM4可以进行正常通讯。
[0019] 在上述VXLAN组网中各网络设备需要注册。首先,VM需要将自身信息(例如:IP(Internet Protocol,互联网协议)地址、MAC地址以及所属VXLAN标识)发送给VTEP设备,VTEP设备携带上述信息向查询服务器注册,同样,VTEP设备亦将自身信息向查询服务器注册,查询服务器保存了网络中所有VTEP设备及VM的信息。当本端VM要查询对端VM的MAC地址时,即可通过本端VTEP设备向查询服务器进行查询,从而获得对端VM的MAC地址。
[0020] 在通讯过程中,若对端VTEP设备发生异常,本端VTEP设备无法感知,继续将从查询服务器获得的对端VM MAC地址发送给本端VM,进行数据转发,占用VTEP设备资源,降低了VTEP设备处理效率,同时,也导致不必要的网络带宽浪费。
[0021] 针对上述问题,本发明实施例提出了一种VTEP异常情况处理方法,应用于VXLAN组网系统中的第一VTEP设备,该VXLAN组网系统包括第一VM、第一VTEP设备、第二VM、第二VTEP设备以及查询服务器。参见图2,该方法包括以下步骤:
[0022] 步骤201,第一VTEP设备接收到所述第一VM请求所述第二VM的MAC地址的请求报文时,向查询服务器发送查询报文,获取所述第二VTEP设备的更新信息。
[0023] 第一VTEP设备在接收到第一VM请求第二VM MAC地址的报文时,向查询服务器发送查询报文,以获得第二VM的MAC地址,同时,查询服务器也会将第二VTEP设备的更新信息返回给第一VTEP设备。该更新信息可以为第二VTEP设备的最新状态,可通过定时发送注册信息,以保证查询服务器中保存VTEP和VM的最新状态。
[0024] 步骤202,根据所述第二VTEP设备的更新信息,判断所述第二VTEP设备是否异常,若异常,则停止向所述第一VM发送应答报文,若未异常,则向所述第一VM发送应答报文。
[0025] 第一VTEP设备在接收到查询服务器返回的第二VTEP设备信息后,可根据该信息判断第二VTEP设备是否发生异常。
[0026] 具体地,上述更新信息为第二VTEP设备按照预设的注册时间周期向查询服务器发送注册报文时的注册时间戳;第一VTEP设备计算获取到所述注册时间戳时的当前时间与所述注册时间戳的差值,若该差值大于预设的第一异常判断时长T1,则确认第二VTEP设备异常,否则,确认未异常。
[0027] 本实施例将第二VTEP设备向查询服务器注册时的注册时间戳信息作为判断依据,确定第二VTEP设备是否异常。通常,VXLAN组网中的网络设备时钟同步。当VTEP设备向查询服务器注册时,携带当前注册时的时间戳信息。查询服务器将所有VTEP设备发送的注册信息保存在本地,注册信息中包含了VTEP设备最后一次注册的时间戳。当第一VTEP设备接收到查询服务器返回的第二VTEP设备信息时,从该信息中获得第二VTEP设备最后一次注册的时间戳信息,通过与本地的当前时间进行比较,判断第二VTEP设备是否异常。
[0028] 在具体实现方式上,可通过计算第一VTEP设备的当前时间与第二VTEP设备最后一次注册的时间戳的差值,与预设的第一异常判断时长T1进行比较,若时间戳差值大于预设的第一异常判断时长T1,则认为第二VTEP设备异常。若第二VTEP设备工作正常,则该设备会以预定时间间隔向查询服务器发送注册信息,那么第一VTEP设备获取到的第二VTEP设备的时间戳信息与第一VTEP设备当前时间的间隔不会太长;若第二VTEP设备发生异常(例如,长时间断电或者故障),无法向查询服务器发送注册信息,则查询服务器中保存的第二VTEP设备信息(包括时间戳信息)不能及时更新,因此,第一VTEP设备获取到的第二VTEP设备的时间戳与本地时间的差值就会比较长。通过预设第一异常判断时长T1,将由于数据包丢失等非VTEP设备异常而导致的注册信息不能及时更新排除在外,当时间戳差值大于该预设第一异常判断时长T1,则认为第二VTEP设备异常。
[0029] 当第一VTEP设备确认第二VTEP设备异常时,则停止向第一VM发送ARP应答报文,第一VM与第二VM不会进行数据通讯;若第二VTEP设备正常,则向第一VM发送应答报文,第一VM与第二VM正常通讯。
[0030] 进一步地,若差值大于预设的第二异常判断时长T1+T,则向查询服务器发送删除第二VTEP设备注册信息的报文。
[0031] 若第二VTEP设备超过第二异常判断时长T1+T仍未更新注册信息,则认为该设备可能在短时间内无法修复,则第一VTEP设备构造一个删除报文,请求查询服务器删除第二VTEP设备的注册信息。查询服务器接收到该删除报文后,删除第二VTEP设备注册信息。
[0032] 进一步地,若第二VTEP设备异常,则第二VM的IP地址和所属VXLAN标识添加到设备异常记录表中;当接收到对第二VM的MAC地址的请求报文时,根据请求报文中的第二VM的IP地址和VXLAN标识,查询设备异常记录表,若存在对应记录,则不向查询服务器发送查询报文。
[0033] 当第一VTEP设备判断第二VTEP设备异常时,第一VTEP设备将此次异常结果保存在本地的设备异常记录表中,即本地保存此次无法访问的第二VM的IP地址和第二VM所属的VXLAN网络标识,以确认哪一个VXLAN中的哪一个IP地址的VM无法访问。当再发生对第二VM的访问时,先进行本地查询,若第二VM在本地有异常记录,则不需要向查询服务器进行查询,即可判断此次访问无法建立,加快了处理速度,同时,减少了对查询服务器的访问次数。
[0034] 进一步地,当第一VTEP设备重启后,在首次接收到第一VM发送的DHCP request报文时,向对应DHCP服务器发送DHCP Discovery报文,以获取查询服务器的IP地址。
[0035] 当第一VTEP设备重启时,由于VTEP设备没有记录查询服务器的地址,因此,在重启后,无法与查询服务器建立连接。现有技术中,VTEP设备是在VM发送DHCP Discovery报文时,获取查询服务器的IP地址,而VM在VTEP设备重启后,并不会重新发送DHCP Discovery报文,而是继续周期发送DHCP request报文。本例子中,第一VTEP设备重启后,首次接收到DHCPrequest报文时,查询本地是否存在查询服务器IP地址,若不存在,则主动构造一个DHCP Discovery报文,获取查询服务器的IP地址。当然,也可以在初始获取IP地址时,就将该IP地址存入非易失存储器中,当VTEP设备重启时即可直接从该存储器中获取。
[0036] 现以图1所示VXLAN组网为例,结合图3所示具体实施例流程图介绍VTEP异常的处理过程。
[0037] 首先,VTEP A与VTEP B以预设时间间隔T0向查询服务器注册本地信息,包括VTEP地址、对应VM的IP地址和MAC地址、VM所属VXLAN标识以及注册时的时间戳等信息。当VM1访问VM4时,查询本地ARP表,若无VM4的MAC地址,则发送ARP请求报文。VTEP A接收到该请求报文后,向查询服务器查询VM4的MAC地址。查询服务器将VM4的MAC地址返回给VTEP A,同时,将VM4所属VTEP B设备注册时的时间戳信息返回给VTEP A。VTEP A计算本地当前时间与获得的VTEP B注册时间戳的差值,若该差值大于预设的第一异常判断时长,则判断VTEP B设备异常。假设预设的第一异常判断时长为T1,即VTEP B设备超过T1未向查询服务器更新注册信息,则认为VTEP B设备异常。
[0038] 若VTEP B设备未异常,则发送ARP应答报文;若VTEP B设备异常,且时间差值大于T1,但小于等于T1+T,则VTEP A设备不再发送ARP应答报文给VM1;若时间差值大于T1+T,则说明VTEP B设备异常可能在短时间内无法修复,此时,VTEP A发送删除报文,请求查询服务器将VTEP B设备的注册信息删除。
[0039] 与上述方法实施例对应的是,本发明实施例还提供一种VTEP异常情况处理装置40,该装置应用于VXLAN组网系统中的第一VTEP设备,该VXLAN组网系统包括第一VM、第一VTEP设备、第二VM、第二VTEP设备以及查询服务器。如图4所示,该装置包括:
[0040] 信息获取单元41,用于在接收到所述第一VM请求所述第二VM的MAC地址的请求报文时,向查询服务器发送查询报文,获取所述第二VTEP设备的更新信息;
[0041] 异常判断单元42,用于根据所述第二VTEP设备的更新信息,判断所述第二VTEP设备是否异常,若异常,则停止向所述第一VM发送应答报文,若未异常,则向所述第一VM发送应答报文。
[0042] 进一步地,异常判断单元42,具体用于计算获取到注册时间戳时的当前时间与注册时间戳的差值,若差值大于预设的第一异常判断时长T1,则确认第二VTEP设备异常,否则,确认未异常,其中,注册时间戳为第二VTEP设备按照预设的注册时间周期向查询服务器发送注册报文时的时间戳。
[0043] 进一步地,VTEP异常情况处理装置40还包括:
[0044] 信息删除单元43,用于差值大于预设的第二异常判断时长T1+T时,向查询服务器发送删除第二VTEP设备注册信息的报文。
[0045] 进一步地,VTEP异常情况处理装置40还包括:
[0046] 异常记录单元44,用于在异常判断单元42确认第二VTEP设备异常时,将第二VM的IP地址和所属VXLAN标识添加到设备异常记录表中;信息获取单元41,进一步用于当接收到对第二VM的MAC地址的请求报文时,根据请求报文中的第二VM的IP地址和VXLAN标识,查询设备异常记录表,若存在对应记录,则不向查询服务器发送查询报文。
[0047] 进一步地,VTEP异常情况处理装置40还包括:
[0048] 地址获取单元45,用于当第一VTEP设备重启后,在首次接收到第一VM发送的DHCP request报文时,向对应DHCP服务器发送DHCP Discovery报文,以获取查询服务器的IP地址。
[0049] 本发明实施例提供的VTEP异常情况处理装置40可以实现对VTEP设备异常情况的感知及处理,其具体实现过程可参见上述方法实施例的说明,在此不再赘述。
[0050] 如图5所示,上述VTEP异常情况处理装置可作为逻辑层面的虚拟装置,通过软件实现,但是本发明并不排除诸如硬件或者逻辑器件等其他实现方式。该虚拟装置运行的硬件环境包括CPU、内存、非易失性存储器以及其他硬件。通过CPU读取非易失性存储器中对应的程序或指令在内存中运行,来实现对VTEP异常情况的处理。
[0051] 本发明根据本端VTEP设备获取到的对端VTEP设备更新信息,判断对端VTEP设备是否异常,进而对该异常情况进行处理,避免了在对端VTEP设备异常的情况下,仍然进行数据传输,降低了VTEP设备资源及网络带宽资源的浪费。
[0052] 以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。