CN112511401A - 一种网络连接方法、装置、设备及介质 - Google Patents
一种网络连接方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN112511401A CN112511401A CN202011300482.4A CN202011300482A CN112511401A CN 112511401 A CN112511401 A CN 112511401A CN 202011300482 A CN202011300482 A CN 202011300482A CN 112511401 A CN112511401 A CN 112511401A
- Authority
- CN
- China
- Prior art keywords
- tunnel
- identification information
- list
- vtep
- vtep device
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4633—Interconnection of networks using encapsulation techniques, e.g. tunneling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种网络连接方法、装置、设备及介质,用以解决如何保证通信的VXLAN隧道不发生隧道冲突,以保证报文的正确转发的问题。由于本发明实施例可以在第一VTEP设备与第二VTEP设备建立第一VXLAN隧道,并判断生效隧道列表中没有与第一VXLAN隧道的第一隧道标识信息相同的第二隧道标识信息时,基于该第一VXLAN隧道与第二VETP设备进行通信,从而可以保证在与第二VETP设备进行通信时,用于通信的第一VXLAN隧道没有发生隧道冲突,保证了报文的正确转发。
Description
技术领域
本发明涉及网络连接技术领域,尤其涉及一种网络连接方法、装置、设备及介质。
背景技术
支持以太虚拟专用网络(Ethernet Virtual Private Network,EVPN)协议的数据中心中的虚拟扩展本地网络隧道终结结点(VXLAN Tunnel End Point,VTEP)设备之间可以通过EVPN协议互相发现,自动生成动态VXLAN隧道。支持EVPN协议的各VTEP设备之间可以通过动态VXLAN隧道进行通信。
而不支持EVPN协议的数据中心中的VTEP设备之间需要通过用户手动配置静态VXLAN隧道。不支持EVPN协议的各VTEP设备之间可以通过静态VXLAN隧道进行通信。
如果想把支持EVPN协议的VTEP设备与不支持EVPN协议的VTEP设备之间进行通信,通常会面临静态VXLAN隧道和动态VXLAN隧道同时存在的场景。然而在当静态VXLAN隧道和动态VXLAN隧道同时存在时,就可能出现静态VXLAN隧道的标识信息与动态隧道的标识信息相同的情况,即出现隧道冲突。而隧道冲突会导致网络通信过程中的报文无法正确转发,是需要严格避免的,因此在网络通信过程中,如何保证通信的VXLAN隧道不发生隧道冲突,是使得支持EVPN协议的VTEP设备与不支持EVPN协议的VTEP设备之间可以进行通信的重要前提和亟需解决的问题。
发明内容
本发明提供了一种网络连接方法、装置、设备及介质,用以解决如何保证通信的VXLAN隧道不发生隧道冲突,以保证报文的正确转发的问题。
本发明的一方面提供了一种网络连接方法,所述方法包括:
支持以太虚拟专用网络EVPN协议的第一虚拟扩展本地网络隧道终结结点VTEP设备若与第二VTEP设备建立第一虚拟可扩展局域网VXLAN隧道,确定所述第一VXLAN隧道的第一隧道标识信息;
所述第一VTEP设备判断本地保存的生效隧道列表中是否存在与所述第一隧道标识信息相同的第二隧道标识信息,如果否,将所述第一隧道标识信息保存在所述生效隧道列表中,并基于所述第一VXLAN隧道与所述第二VTEP设备进行通信。
进一步地,如果所述生效隧道列表中存在与所述第一隧道标识信息相同的第二隧道标识信息,所述方法还包括:
将所述第一隧道标识信息添加至本地保存的缓存隧道列表中;
当识别到本地保存的缓存隧道列表和/或生效隧道列表中的隧道标识信息被修改,并且判断本地保存的生效隧道列表中不存在与所述第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息时,将所述第三隧道标识信息移至所述生效隧道列表中,并基于所述第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
进一步地,所述当识别到本地保存的隧道列表中的隧道标识信息被修改,并且判断本地保存的生效隧道列表中不存在与所述第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息时,将所述第三隧道标识信息移至所述生效隧道列表中,并基于所述第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信包括:
若识别到缓存隧道列表中的第一隧道标识信息被修改为第三隧道标识信息,且所述第三隧道标识信息与生效隧道列表中的每个第五隧道标识信息均不同时,将所述第三隧道标识信息从缓存隧道列表移至生效隧道列表中,并基于所述第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信;
若识别到生效隧道列表中的第二隧道标识信息被修改,且修改后的生效隧道列表中不存在与第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息时,将所述第三隧道标识信息从缓存隧道列表移至生效隧道列表中,基于第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
进一步地,若识别到生效隧道列表中的第二隧道标识信息被修改,且修改后的生效隧道列表中不存在与第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息之后,所述方法还包括:
确定所述第二隧道标识信息对应的第三VTEP设备,并基于修改后的第二隧道标识信息对应的第二VXLAN隧道与所述第三VTEP设备进行通信。
进一步地,如果所述生效隧道列表中存在与所述第一隧道标识信息相同的第二隧道标识信息,将所述第一隧道标识信息添加至本地保存的缓存隧道列表中之前,所述方法还包括:
判断所述第一VXLAN隧道是否为动态隧道;
若是,则将所述第一隧道标识信息保存在缓存隧道列表中;
若否,所述方法还包括:
将所述生效隧道列表中的所述第二隧道标识信息移至缓存隧道列表中,将所述第一隧道标识信息保存在所述生效隧道列表中,基于所述第一VXLAN隧道与所述第二VTEP设备进行通信。
进一步地,若判断第一VXLAN隧道为静态隧道,将所述生效隧道列表中的第二隧道标识信息移至缓存隧道列表中,将所述第一隧道标识信息保存在所述生效隧道列表中之后,所述方法还包括:
当识别到本地保存的隧道列表中的隧道标识信息被修改,并且判断本地保存的隧道列表中不存在与所述第二VTEP设备对应的第六隧道标识信息相同的第七隧道标识信息时,基于第六隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
进一步地,所述基于所述第一VXLAN隧道与所述第二VTEP设备进行通信包括:
若所述第二VTEP设备不支持EVPN协议,将所述第一VXLAN隧道的第一隧道标识信息保存在所述生效隧道列表中的静态隧道分组中,所述第一VTEP设备接收所述第二VTEP设备通过所述第一VXLAN隧道发送的第一报文;
所述方法还包括:
根据所述第一报文中携带的目的标识信息,确定所述第一报文对应的支持EVPN协议的第一目标VTEP设备,并在判断所述第一目标VTEP设备对应的隧道标识信息保存在生效隧道列表中的动态隧道分组中时,将所述第一报文发送给所述第一目标VTEP设备。
进一步地,所述基于所述第一VXLAN隧道与所述第二VTEP设备进行通信包括:
若所述第二VTEP设备支持EVPN协议,将所述第一VXLAN隧道的第一隧道标识信息保存在所述生效隧道列表中的动态隧道分组中,所述第一VTEP设备接收所述第二VTEP设备通过所述第一VXLAN隧道发送的第二报文;
所述方法还包括:
根据所述第二报文中携带的目的标识信息,确定所述第二报文对应的不支持EVPN协议的第二目标VTEP设备;并在判断所述第二目标VTEP设备对应的隧道标识信息保存在生效隧道列表中的静态隧道分组中时,将所述第二报文发送给所述第二目标VTEP设备。
本发明的再一方面提供了一种网络连接装置,所述装置包括:
确定模块,用于若与第二VTEP设备建立第一虚拟可扩展局域网VXLAN隧道,确定所述第一VXLAN隧道的第一隧道标识信息;
通信模块,用于判断本地保存的生效隧道列表中是否存在与所述第一隧道标识信息相同的第二隧道标识信息,如果否,将所述第一隧道标识信息保存在所述生效隧道列表中,并基于所述第一VXLAN隧道与所述第二VTEP设备进行通信。
进一步地,所述通信模块,还用于如果所述生效隧道列表中存在与所述第一隧道标识信息相同的第二隧道标识信息,将所述第一隧道标识信息添加至本地保存的缓存隧道列表中;当识别到本地保存的缓存隧道列表和/或生效隧道列表中的隧道标识信息被修改,并且判断本地保存的生效隧道列表中不存在与所述第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息时,将所述第三隧道标识信息移至所述生效隧道列表中,并基于所述第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
进一步地,所述通信模块,具体用于若识别到缓存隧道列表中的第一隧道标识信息被修改为第三隧道标识信息,且所述第三隧道标识信息与生效隧道列表中的每个第五隧道标识信息均不同时,将所述第三隧道标识信息从缓存隧道列表移至生效隧道列表中,并基于所述第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信;若识别到生效隧道列表中的第二隧道标识信息被修改,且修改后的生效隧道列表中不存在与第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息时,将所述第三隧道标识信息从缓存隧道列表移至生效隧道列表中,基于第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
进一步地,所述通信模块,还用于若识别到生效隧道列表中的第二隧道标识信息被修改,且修改后的生效隧道列表中不存在与第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息之后,确定所述第二隧道标识信息对应的第三VTEP设备,并基于修改后的第二隧道标识信息对应的第二VXLAN隧道与所述第三VTEP设备进行通信。
进一步地,所述通信模块,还用于如果所述生效隧道列表中存在与所述第一隧道标识信息相同的第二隧道标识信息,将所述第一隧道标识信息添加至本地保存的缓存隧道列表中之前,判断所述第一VXLAN隧道是否为动态隧道;若是,则将所述第一隧道标识信息保存在缓存隧道列表中;若否,将所述生效隧道列表中的所述第二隧道标识信息移至缓存隧道列表中,将所述第一隧道标识信息保存在所述生效隧道列表中,基于所述第一VXLAN隧道与所述第二VTEP设备进行通信。
进一步地,所述通信模块,还用于若判断第一VXLAN隧道为静态隧道,将所述生效隧道列表中的第二隧道标识信息移至缓存隧道列表中,将所述第一隧道标识信息保存在所述生效隧道列表中之后,当识别到本地保存的隧道列表中的隧道标识信息被修改,并且判断本地保存的隧道列表中不存在与所述第二VTEP设备对应的第六隧道标识信息相同的第七隧道标识信息时,基于第六隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
进一步地,所述通信模块,具体用于若所述第二VTEP设备不支持EVPN协议,将所述第一VXLAN隧道的第一隧道标识信息保存在所述生效隧道列表中的静态隧道分组中,所述第一VTEP设备接收所述第二VTEP设备通过所述第一VXLAN隧道发送的第一报文;
所述通信模块,还用于根据所述第一报文中携带的目的标识信息,确定所述第一报文对应的支持EVPN协议的第一目标VTEP设备,并在判断所述第一目标VTEP设备对应的隧道标识信息保存在生效隧道列表中的动态隧道分组中时,将所述第一报文发送给所述第一目标VTEP设备。
进一步地,所述通信模块,具体用于若所述第二VTEP设备支持EVPN协议,将所述第一VXLAN隧道的第一隧道标识信息保存在所述生效隧道列表中的动态隧道分组中,所述第一VTEP设备接收所述第二VTEP设备通过所述第一VXLAN隧道发送的第二报文;
所述通信模块,还用于根据所述第二报文中携带的目的标识信息,确定所述第二报文对应的不支持EVPN协议的第二目标VTEP设备;并在判断所述第二目标VTEP设备对应的隧道标识信息保存在生效隧道列表中的静态隧道分组中时,将所述第二报文发送给所述第二目标VTEP设备。
本发明的再一方面提供了一种电子设备,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现上述任一所述网络连接方法的步骤。
本发明的再一方面提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述网络连接方法的步骤。
由于本发明实施例可以在第一VTEP设备与第二VTEP设备建立第一VXLAN隧道,并判断生效隧道列表中没有与第一VXLAN隧道的第一隧道标识信息相同的第二隧道标识信息时,基于该第一VXLAN隧道与第二VETP设备进行通信,从而可以保证在与第二VETP设备进行通信时,用于通信的第一VXLAN隧道没有发生隧道冲突,保证了报文的正确转发。
附图说明
图1为本发明实施例提供的一种网络连接过程示意图;
图2为本发明实施例提供的第一VTEP设备与支持EVPN协议的VTEP设备之间建立动态VXLAN隧道的示意图;
图3为本发明实施例提供的第一VTEP设备即与不支持EVPN协议的VTEP设备建立静态VXLAN隧道,又与支持EVPN协议的VTEP设备建立动态VXLAN隧道的示意图;
图4为本发明实施例提供的发生隧道冲突示意图;
图5为本发明实施例提供的优先将静态隧道保存在生效隧道列表过程示意图;
图6为本发明实施例提供的解除隧道冲突后的示意图;
图7为本发明实施例提供的动态隧道分组中各动态隧道之间的转发环路示意图;
图8为本发明实施例提供的水平分割限制后的转发示意图;
图9为本发明实施例提供的第一种通信过程示意图;
图10为本发明实施例提供的第二种通信过程示意图;
图11为本发明实施例提供的第三种通信过程示意图;
图12为本发明实施例提供的获知第四主机的MAC地址的过程示意图;
图13为本发明实施例提供的一种网络连接装置示意图;
图14为本发明实施例提供的一种电子设备结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
为了保证通信的VXLAN隧道不发生隧道冲突,以保证报文的正确转发,本发明实施例提供了一种网络连接方法、装置、设备及介质。
实施例1:
图1为本发明实施例提供的一种网络连接过程示意图,该过程包括以下步骤:
S101:支持以太虚拟专用网络EVPN协议的第一虚拟扩展本地网络隧道终结结点VTEP设备若与第二VTEP设备建立第一虚拟可扩展局域网VXLAN隧道,确定所述第一VXLAN隧道的第一隧道标识信息。
本发明实施例提供的网络连接方法应用于虚拟扩展本地网络隧道终结结点(VXLAN Tunnel End Point,VTEP)设备,该VETP设备支持以太虚拟专用网络(EthernetVirtual Private Network,EVPN)协议。
其中,该VTEP设备可以将虚拟机(Virtual Machine,VM)产生的数据利用用户数据报协议(User Datagram Protocol,UDP)封装后再发送出去,在数据中心网络中,VTEP一般指的是VXLAN交换机。
虚拟机也可以称为虚拟服务器或主机,为方便理解,在下述实施例中,统一用主机(HOST)进行描述。
VXLAN是一种叠加网络(又叫覆盖网络,overlay)的网络技术,建立在物理IP网络(underlay)之上的虚拟以太网,使用MAC in UDP的方法进行封装,共50字节的封装报文头。具备24位虚拟扩展本地网络标识符(VXLAN Network Identifier,VNI),打破目前广泛采用的虚拟局域网(Virtual Local Area Network,VLAN)所能表示的4096个隔离网络的限制,使用户可以创建16777216个相互隔离的虚拟网络,满足多租户环境和规模扩展的需求。是一种大二层虚拟网络扩展的隧道封装技术。
其中,VNI取代VLAN用来表示不同的VXLAN网段(VXLAN Segment),只有具有相同VNI,处于同一VXLAN网段的主机才能相互通信。VNI用一个24位二进制表示。在本发明实施例中,如果没有特殊说明,各VTEP和主机均具有相同的VNI。
EVPN是RFC7432定义的一种网络技术,它使用边界网关协议(Border GatewayProtocol,BGP)作为上层控制协议,使得虚拟专用网络(Virtual Private Network,VPN)的拓扑更加具有灵活性。
为了与第二VTEP设备建立通信,第一VTEP设备可以与第二VTEP设备建立第一VXLAN隧道。
其中,VXLAN隧道为两个VTEP之间完成VXLAN封装报文传输的逻辑隧道。VETP为数据帧封装VXLAN头,UDP头,IP头后,通过VXLAN隧道将封装后的报文转发给远端VTEP,远端VTEP对其进行出隧道解封装处理。VXLAN隧道由一对VTEP IP地址确定,创建VXLAN隧道实际上是两端VTEP获取对端VTEP IP地址的过程。
为了区分不同VXLAN隧道对应的VTEP设备,以将报文正确的发送给对应的VTEP设备,不同的VXLAN隧道对应有不同的隧道标识信息。通常情况下,隧道标识信息中可以包括VXLAN隧道一端VETP设备的源VTEP IP地址(为方便描述,用SIP表示)以及VXLAN隧道另一端VTEP设备的目的VTEP IP地址(为方便描述,用DIP表示)。示例性的,第一VTEP设备在与第二VTEP设备建立第一VXLAN隧道之后,可以将第一VTEP设备对应的虚拟IP地址作为第一VXLAN隧道的SIP,将第二VTEP设备对应的虚拟IP地址作为第一VXLAN隧道的DIP,进而可以将该SIP和DIP的对应关系作为第一VXLAN隧道的第一隧道标识信息。
S102:所述第一VTEP设备判断本地保存的生效隧道列表中是否存在与所述第一隧道标识信息相同的第二隧道标识信息,如果否,将所述第一隧道标识信息保存在所述生效隧道列表中,并基于所述第一VXLAN隧道与所述第二VTEP设备进行通信。
在本发明实施例中,为了保证报文的正确转发,第一VTEP设备在与第二VTEP设备建立第一VXLAN隧道并确定第一VXLAN隧道的第一隧道标识信息后,可以判断本地保存的生效隧道列表中是否存在与该第一隧道标识信息相同的第二隧道标识信息,如果没有,则说明当前没有发生隧道冲突,可以将第一隧道标识信息保存在本地的生效隧道列表中。另外,为了确定不同隧道标识信息对应的VTEP设备,保证报文的正确转发,第一VTEP设备可以将不同隧道标识信息与VTEP设备标识信息的对应关系也一并保存在生效隧道列表中,例如可以将第一隧道标识信息与第二VTEP设备标识信息的对应关系也保存在生效隧道列表中,并可以基于该第一VXLAN隧道与第二VTEP设备进行通信了。具体的,可以采用现有技术与第二VTEP设备进行通信,在此不再赘述。
由于本发明实施例可以在第一VTEP设备与第二VTEP设备建立第一VXLAN隧道,并判断生效隧道列表中没有与第一VXLAN隧道的第一隧道标识信息相同的第二隧道标识信息时,基于该第一VXLAN隧道与第二VETP设备进行通信,从而可以保证在与第二VETP设备进行通信时,用于通信的第一VXLAN隧道没有发生隧道冲突,保证了报文的正确转发。
实施例2:
为了解决隧道冲突,并保证报文的正确转发,在上述实施例的基础上,在本发明实施例中,如果所述生效隧道列表中存在与所述第一隧道标识信息相同的第二隧道标识信息,所述方法还包括:
将所述第一隧道标识信息添加至本地保存的缓存隧道列表中;
当识别到本地保存的缓存隧道列表和/或生效隧道列表中的隧道标识信息被修改,并且判断本地保存的生效隧道列表中不存在与所述第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息时,将所述第三隧道标识信息保存在所述生效隧道列表中,并基于所述第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
在本发明实施例中,为了在发生隧道冲突时,可以解决隧道冲突并保证报文的正确转发,除了设置有生效隧道列表之外,还可以设置有缓存隧道列表。在本发明实施例中,可以基于生效隧道列表中的隧道标识信息与对应的VTEP设备进行通信,缓存隧道列表中的隧道标识信息对应的VXLAN隧道暂时不用于通信。具体的,当第一VTEP设备与第二VTEP设备建立了第一VXLAN隧道,且判断生效隧道列表中存在与该第一VXLAN隧道的第一隧道标识信息相同的第二隧道标识信息时,可以认为发生隧道冲突。为了解决隧道冲突,并保证报文的正确转发,可以将第一隧道标识信息添加至缓存隧道列表中,即在识别到发生隧道冲突时,可以暂时不基于第一隧道标识信息对应的第一VXLAN隧道与第二VTEP设备进行通信。待隧道冲突解决后,再基于第一VXLAN隧道与第二VTEP设备进行通信。
在本发明实施例中,解决隧道冲突的具体过程可以如下:
在发生隧道冲突时,用户可以调整发生隧道冲突的任一隧道标识信息,具体的,用户可以调整缓存隧道列表中的第一隧道标识信息,也可以调整生效隧道列表中的第二隧道标识信息。当用户调整缓存隧道列表和/或生效隧道列表中的隧道标识信息后,第一VTEP设备可以识别到本地保存的缓存隧道列表和/或生效隧道列表中的隧道标识信息被修改。为方便理解,在本发明实施例中,在判断是否发生隧道冲突时,将第二VTEP设备对应的隧道标识信息称为第一隧道标识信息,其中,第二VTEP设备对应的隧道标识信息指的是第一VTEP设备与第二VTEP设备之间通信连接的第一VXLAN隧道的第一隧道标识信息。同时,将隧道列表中与该第一隧道标识信息相同的隧道标识信息称为第二隧道标识信息。在判断是否解除隧道冲突时,将第二VTEP设备对应的隧道标识信息称为第三隧道标识信息,将隧道列表中与该第三隧道标识信息相同的隧道标识信息称为第四隧道标识信息。
可以理解的,如果被调整的是第一隧道标识信息,则第三隧道标识信息与第一隧道标识信息不同。而如果没有调整第一隧道标识信息,调整的是生效隧道列表中的第二隧道标识信息,则第三隧道标识信息与第一隧道标识信息相同。
当判断本地保存的生效隧道列表中不存在与第三隧道标识信息相同的第四隧道标识信息时,可以认为隧道冲突已经解除,可以将第三隧道标识信息从缓存隧道列表中移至生效隧道列表中,并可以基于该第三隧道标识信息对应的第一VXLAN隧道,安全准确的与第二VTEP设备进行通信。
由于本发明实施例中第一VTEP设备可以在发生隧道冲突时,将第一隧道标识信息先添加至缓存隧道列表中,待隧道冲突解决后,再将与第一VXLAN隧道对应的第三隧道标识信息移至生效隧道列表中,并基于第三隧道标识信息对应的第一VXLAN隧道与第二VTEP设备进行通信,从而可以在解决隧道冲突的同时,保证了报文的正确转发。
实施例3:
为了解决隧道冲突,并保证报文的正确转发,在上述各实施例的基础上,在本发明实施例中,所述当识别到本地保存的隧道列表中的隧道标识信息被修改,并且判断本地保存的生效隧道列表中不存在与所述第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息时,将所述第三隧道标识信息移至所述生效隧道列表中,并基于所述第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信包括:
若识别到缓存隧道列表中的第一隧道标识信息被修改为第三隧道标识信息,且所述第三隧道标识信息与生效隧道列表中的每个第五隧道标识信息均不同时,将所述第三隧道标识信息从缓存隧道列表移至生效隧道列表中,并基于所述第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信;
若识别到生效隧道列表中的第二隧道标识信息被修改,且修改后的生效隧道列表中不存在与第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息时,将所述第三隧道标识信息从缓存隧道列表移至生效隧道列表中,基于第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
为了灵活的解决隧道冲突,本发明实施例中提供了两种解决隧道冲突的过程。
其中一种解决隧道冲突的具体过程如下:
当用户对第一隧道标识信息进行调整后,第一VTEP设备可以识别到第一隧道标识信息被修改,即可以识别到第二VTEP设备对应的隧道标识信息由第一隧道标识信息修改为第三隧道标识信息。第一VTEP设备在判断修改后的第三隧道标识信息与生效隧道列表中的每个第五隧道标识信息均不同时,可以认为隧道冲突已经解除,可以将第三隧道标识信息从缓存隧道列表中移至生效隧道列表中,并可以基于该第三隧道标识信息对应的第一VXLAN隧道,安全准确的与第二VTEP设备进行通信。
本发明实施例提供的另一种解决隧道冲突的具体过程如下:
当用户对生效隧道列表中的第二隧道标识信息进行调整后,第一VTEP设备可以识别到生效隧道列表中的第二隧道标识信息被修改,因此第一VTEP设备在判断修改后的生效隧道列表中不存在与第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息时,可以认为隧道冲突已经解除。可以将第三隧道标识信息从缓存隧道列表中移至生效隧道列表中,并可以基于该第三隧道标识信息对应的第一VXLAN隧道,安全准确的与第二VTEP设备进行通信。
实施例4:
为了在第二隧道标识信息被修改时,可以与第二隧道标识信息对应的第三VTEP设备进行通信,在上述各实施例的基础上,在本发明实施例中,若识别到生效隧道列表中的第二隧道标识信息被修改,且修改后的生效隧道列表中不存在与第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息之后,所述方法还包括:
确定所述第二隧道标识信息对应的第三VTEP设备,并基于修改后的第二隧道标识信息对应的第二VXLAN隧道与所述第三VTEP设备进行通信。
在本发明实施例中,当识别到生效隧道列表中的第二隧道标识信息被修改后,第一VTEP设备可以识别修改前的第二隧道标识信息对应的第三VTEP设备。为方便描述,将第一VTEP设备与第三VTEP设备之间的VXLAN隧道称为第二VXLAN隧道。为了在第二隧道标识信息被修改时,可以基于第二VXLAN隧道与第三VTEP设备进行通信,第一VTEP设备可以将生效隧道列表中第三VTEP设备对应的隧道标识信息调整为修改后的第二隧道标识信息,以可以基于该修改后的第二隧道标识信息对应的第二VXLAN隧道与第三VTEP设备进行通信,以保证报文的正确转发。
实施例5:
为了在发生隧道冲突时,可以优先与静态VXLAN隧道对应的VTEP设备进行通信,在上述各实施例的基础上,在本发明实施例中,如果所述生效隧道列表中存在与所述第一隧道标识信息相同的第二隧道标识信息,将所述第一隧道标识信息添加至本地保存的缓存隧道列表中之前,所述方法还包括:
判断所述第一VXLAN隧道是否为动态隧道;
若是,则将所述第一隧道标识信息保存在缓存隧道列表中;
若否,所述方法还包括:
将所述生效隧道列表中的所述第二隧道标识信息移至缓存隧道列表中,将所述第一隧道标识信息保存在所述生效隧道列表中,基于所述第一VXLAN隧道与所述第二VTEP设备进行通信。
VXLAN隧道主要分两种,一种是静态VXLAN隧道,其中静态VXLAN隧道是用户手动配置的VXLAN隧道,用户手动通过控制台等方式,手动指定VXLAN隧道的SIP和DIP,在本端VTEP和对端VTEP之间建立静态VXLAN隧道。另一种是动态VXLAN隧道,动态VXLAN隧道是通过BGPEVPN方式动态建立的VXLAN隧道,就是在两端VTEP之间建立BGP EVPN对等体,然后对等体之间利用BGP EVPN路由来互相传递VNI和VTEP IP地址信息,从而实现动态建立VXLAN隧道。图2为本发明实施例提供的第一VTEP设备与支持EVPN协议的VTEP设备之间建立动态VXLAN隧道的示意图,如图2所示:
支持EVPN协议的第一VTEP设备(VTEP-1)分别与两个支持EVPN协议的VTEP设备(VTEP-2和VTEP-3)之间分别建立动态VXLAN隧道。其中三个VTEP设备均位于同一VNI下,即VNI10下,第一VTEP设备与VTEP-2设备之间建立的动态VXLAN隧道的SIP为第一VTEP设备自身的VTEP IP,即1.1.1.1,DIP为VTEP-2设备的VTEP IP,即2.2.2.2。同样的,第一VTEP设备与VTEP-3设备之间建立的动态VXLAN隧道的SIP为第一VTEP设备自身的VTEP IP,即1.1.1.1,DIP为VTEP-3设备的VTEP IP,即3.3.3.3。
图3为本发明实施例提供的第一VTEP设备即与不支持EVPN协议的VTEP设备建立静态VXLAN隧道,又与支持EVPN协议的VTEP设备建立动态VXLAN隧道的示意图,如图3所示:
支持EVPN协议的第一VTEP设备(VTEP-1),通过EVPN协议学习到支持EVPN协议的VTEP设备,即VTEP-2和VTEP-3,并分别与VTEP-2和VTEP-3建立动态VXLAN隧道,且与VTEP-2和VTEP-3建立的动态VXLAN隧道的隧道标识信息不同,分别将建立的动态VXLAN隧道保存在生效隧道列表中。同时,该第一VTEP设备与不支持EVPN协议的VTEP设备,即VTEP-4建立静态VXLAN隧道,该静态VXLAN隧道的隧道标识信息与上述VTEP-2和VTEP-3对应的隧道标识信息均不同,将该静态VXLAN隧道的隧道标识信息也保存在生效隧道列表中。
如果两条VXLAN隧道的SIP和DIP均相同,则认为发生了隧道冲突。图4为本发明实施例提供的发生隧道冲突示意图,如图4所示:如果VTEP-1与VTEP-2之间的VXLAN隧道、VTEP-1与VTEP-3之间的VXLAN隧道的隧道标识信息中的SIP均为1.1.1.1,DIP均为2.2.2.2,则VTEP-1通过隧道标识信息无法区分正确区分到底是发给了VTEP-2还是VTEP-3,因此无法保证报文的正确转发。通常情况下,相比只有动态VXLAN隧道或者只有静态VXLAN隧道,当静态VXLAN隧道和动态VXLAN隧道同时存在时,发生隧道冲突的概率较大。
为了在发生隧道冲突时,优先将静态VXLAN隧道的隧道标识信息保存在生效隧道列表中,即优先与不支持EVPN协议的第二VTEP设备进行通信,在本发明实施例中,在将第一隧道标识信息添加至本地保存的缓存隧道列表中之前,第一VTEP设备还可以判断第一VXLAN隧道是否为动态隧道,如果是,则直接将第一VXLAN隧道的第一隧道标识信息保存在缓存隧道列表中。
而如果第一VXLAN隧道不是动态VXLAN隧道,即第一VXLAN隧道为静态VXLAN隧道,为了优先与不支持EVPN协议的第二VTEP设备进行通信,可以优先将静态VXLAN隧道对应的隧道标识信息保存在生效隧道列表中,则可以将生效隧道列表中的第二隧道标识信息从生效隧道列表中移除,移至缓存隧道列表中,然后并将第一隧道标识信息保存在生效隧道列表中,从而可以基于该第一VXLAN隧道,安全准确的与第二VTEP设备进行通信。
为方便理解,下面通过一个具体实施例对本发明实施例提供的解决隧道冲突的过程进行详细说明。
如果第二VTEP设备为不支持EVPN协议的VTEP-4,第一VTEP设备(VTEP-1)与VTEP-4建立的第一VXLAN隧道的第一隧道标识信息的SIP为1.1.1.1,DIP为3.3.3.3。判断生效隧道列表中与VTEP-3建立的动态VXLAN隧道的隧道标识信息与该第一隧道标识信息相同,即存在与该第一隧道标识信息相同的第二隧道标识信息。因为第一VXLAN隧道是与不支持EVPN协议的VTEP-4建立的,该第一VXLAN隧道为静态VXLAN隧道。图5为本发明实施例提供的优先将静态隧道保存在生效隧道列表过程示意图,如图5所示,为了在发生隧道冲突时,优先将静态VXLAN隧道的隧道标识信息保存在生效隧道列表中,可以先将生效隧道列表中的第二隧道标识信息移至缓存隧道列表中,将该第一隧道标识信息保存在生效隧道列表中,以保证生效隧道列表中没有与该第一隧道标识信息相同的隧道标识,可以优先基于第一VXLAN隧道与不支持EVPN协议的第二VTEP设备进行通信。
实施例6:
为了解决隧道冲突,在上述各实施例的基础上,在本发明实施例中,若判断第一VXLAN隧道为静态隧道,将所述生效隧道列表中的第二隧道标识信息移至缓存隧道列表中,将所述第一隧道标识信息保存在所述生效隧道列表中之后,所述方法还包括:
当识别到本地保存的隧道列表中的隧道标识信息被修改,并且判断本地保存的隧道列表中不存在与所述第二VTEP设备对应的第六隧道标识信息相同的第七隧道标识信息时,基于第六隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
在本发明实施例中,在判断发生隧道冲突,优先将静态VXLAN隧道的隧道标识信息保存在生效隧道列表中时,解除隧道冲突的方式与上述实施例类似。例如,用户可以调整发生隧道冲突的任一隧道标识信息,具体的,用户可以调整被移至缓存隧道列表中的第二隧道标识信息,也可以调整保存在生效隧道列表中的第一隧道标识信息。当用户调整隧道列表中的隧道标识信息后,第一VTEP设备可以识别到本地保存的隧道列表中的隧道标识信息被修改。为方便理解,在本发明实施例中,在判断是否发生隧道冲突时,将第二VTEP设备对应的隧道标识信息称为第一隧道标识信息,将隧道列表中与该第一隧道标识信息相同的隧道标识信息称为第二隧道标识信息。同时,在判断是否解除隧道冲突时,将第二VTEP设备对应的隧道标识信息称为第六隧道标识信息,将隧道列表中与该第六隧道标识信息相同的隧道标识信息称为第七隧道标识信息。
可以理解的,如果被调整的是第一隧道标识信息,则第六隧道标识信息与第一隧道标识信息不同。而如果没有调整第一隧道标识信息,调整的是第二隧道标识信息,则第六隧道标识信息与第一隧道标识信息相同。
当判断本地保存的隧道列表中,即生效隧道列表和缓存隧道列表中均不存在与第二VTEP设备对应的第六隧道标识信息相同的第七隧道标识信息时,可以认为隧道冲突已经解除,可以进而基于第六隧道标识信息对应的第一VXLAN隧道,安全准确的与第二VTEP设备进行通信。
为方便理解,仍以上述实施例对本发明实施例提供的解除隧道冲突的过程进行解释说明,图6为本发明实施例提供的解除隧道冲突后的示意图,如图6所示,被调整的是第一VXLAN隧道对应的第一隧道标识信息,例如将第二VTEP设备,即VTEP-4的VTEP IP修改为4.4.4.4,即将第一VXLAN隧道对应的隧道标识信息中的DIP修改为4.4.4.4,第六隧道标识信息中SIP为1.1.1.1,DIP为4.4.4.4,第一VTEP设备将与第二VTEP设备,即VTEP-4对应的隧道标识信息修改为第六隧道标识信息。并在判断本地保存的隧道列表中不存在与该第六隧道标识信息相同的第七隧道标识信息时,认为隧道冲突已解决,进而可以基于第六隧道标识信息对应的第一VXLAN隧道与第二VTEP设备进行通信。
为了可以继续与第二隧道标识信息对应的第三VTEP设备进行通信,在判断本地保存的隧道列表中不存在与该第六隧道标识信息相同的第七隧道标识信息之后,可以将缓存隧道列表中第三VTEP设备对应的第二隧道标识信息移至生效隧道列表中,以可以继续基于该第二隧道标识信息与第三VTEP设备进行通信。
在一种可能的实施方式中,如果被修改的是缓存隧道列表中的第二隧道标识信息,若识别到第二隧道标识信息被修改,且修改后的第二隧道标识信息与生效隧道列表中的每个第八隧道标识信息均不同之后,可以确定所述第二隧道标识信息对应的第三VTEP设备,并将所述修改后的第二隧道标识信息移至所述生效隧道列表中,基于修改后的第二隧道标识信息与所述第三VTEP设备进行通信。
在本发明实施例中,当识别缓存隧道列表中的第二隧道标识信息被修改时,第一VTEP设备可以识别该第二隧道标识信息,即修改前的第二隧道标识信息对应的第三VTEP设备,并将修改后的第二隧道标识信息移至生效隧道列表中,具体地,第一VTEP设备可以将生效隧道列表中第三VTEP设备对应的隧道标识信息调整为修改后的第二隧道标识信息,以可以准确的基于修改后的第二隧道标识信息与第三VTEP设备进行通信。
实施例7:
为了使支持EVPN协议的设备与不支持EVPN协议的设备之间进行通信,在上述各实施例的基础上,在本发明实施例中,所述基于所述第一VXLAN隧道与所述第二VTEP设备进行通信包括:
若所述第二VTEP设备不支持EVPN协议,将所述第一VXLAN隧道的第一隧道标识信息保存在所述生效隧道列表中的静态隧道分组中,所述第一VTEP设备接收所述第二VTEP设备通过所述第一VXLAN隧道发送的第一报文;
所述方法还包括:
根据所述第一报文中携带的目的标识信息,确定所述第一报文对应的支持EVPN协议的第一目标VTEP设备,并在判断所述第一目标VTEP设备对应的隧道标识信息保存在生效隧道列表中的动态隧道分组中时,将所述第一报文发送给所述第一目标VTEP设备。
在本发明实施例中,为了使第一VETP设备既可以与不支持EVPN协议的VTEP设备通过建立静态隧道进行通信,又可以与支持EVPN协议的VTEP设备通过建立动态隧道进行通信,第一VETP设备的生效隧道列表中设置有静态隧道分组和动态隧道分组,其中静态隧道分组用于保存静态隧道的隧道标识信息,动态隧道分组用于保存动态隧道的隧道标识信息。
具体地,当第二VTEP设备不支持EVPN协议时,第一VETP设备可以将第一VXLAN隧道的第一隧道标识信息保存在生效隧道列表中的静态隧道分组中,并可以接收第二VTEP设备通过该第一VXLAN隧道发送的第一报文。
在接收到第一报文后,为了可以转发第一报文,第一VTEP设备可以根据第一报文中携带的目的标识信息,确定第一报文对应的第一目标VTEP设备。在确定第一目标VTEP设备的过程中,如果不考虑静态隧道分组中各静态隧道之间的转发环路,以及动态隧道分组中各动态隧道之间的转发环路,图7为本发明实施例提供的动态隧道分组中各动态隧道之间的转发环路示意图,如图7所示,如果VTEP-3将第二报文同时发送给VTEP-1和VTEP-2,其中第二报文为广播报文,则VTEP-1接收到该第二报文后,还会将第二报文又发送给VTEP-2和VTEP-3,同时,VTEP-2接收到第二报文后,也会将第二报文发送给VTEP-1和VTEP-3,从而造成转发环路和广播风暴。
为了避免转发环路和广播风暴,在本发明实施例中,将静态隧道分组和动态隧道分组分别设置为两个水平分割组,为方便理解,仍以图5和图6进行解释说明,如图5和图6所示,将生效隧道列表中的隧道标识信息设置两个水平分割组,即动态隧道分组(水平分割组1)和静态隧道分组(水平分割组2)。第一VTEP设备接收到其中一个水平分割组中的隧道发送的第一报文后,可以将该第一报文转发给另一个水平分割组中的隧道,而不能转发给同一个水平分割组中的隧道。即第一VTEP设备接收到位于静态隧道分组中的静态隧道发送的第一报文后,可以将该第一报文发送给位于动态隧道分组中的动态隧道,而不能将该第一报文转发给位于静态隧道分组中的静态隧道。同样的,第一VTEP设备接收到位于动态隧道分组中的动态隧道发送的第二报文后,可以将该第二报文发送给位于静态隧道分组中的静态隧道,而不能将该第二报文转发给位于动态隧道分组中的动态隧道。图8为本发明实施例提供的水平分割限制后的转发示意图,如图8所示,如果VTEP-1接收到通过静态隧道分组中的静态隧道发送来的第一报文,其中该第一报文为广播报文时,VTEP-1可以将该第一报文发送给位于动态隧道分组中的各动态隧道,即发送给VTEP-2和VTEP-3,同时,VTEP-2接收到第一报文后,不会将该第一报文再发送给VTEP-1和VTEP-3,VTEP-3接收到第一报文后,也不会将该第一报文再发送给VTEP-1和VTEP-2,从而避免了转发环路和广播风暴。
在本发明实施例中,根据第一报文中携带的目的标识信息,确定第一报文对应的第一目标VTEP设备时,如果第一报文中携带的目的标识信息中MAC地址全为F等,则确定第一报文为第一广播报文,第一VTEP设备可以将生效隧道列表中动态隧道分组中的每个隧道标识信息对应的VETP设备,确定为第一目标VETP设备,将该第一报文发送给每个第一目标VETP设备。
如果第一报文中携带的目的标识信息为目标主机MAC地址,则第一报文为第一单播报文,第一VTEP设备可以根据本地保存的主机MAC地址与VTEP设备的对应关系,确定该目标主机对应的第一目标VTEP设备,并判断该第一目标VTEP设备对应的隧道标识信息保存在生效隧道列表中的动态隧道分组中时,将该第一单播报文发送给该第一目标VTEP设备。
为方便理解,下面通过一个具体实施例,对本发明实施例提供的通信过程进行详细说明,图9为本发明实施例提供的第一种通信过程示意图,如图9所示,以第一主机(HOST-4)向第二主机(HOST-2)发送第一报文,且第一报文为第一单播报文为例,对本发明实施例提供的通信过程进行说明:
若第二VTEP设备(VTEP-4)不支持EVPN协议,第一VTEP设备(VTEP-1)与第二VTEP设备(VTEP-4)建立的第一VXLAN隧道的第一隧道标识信息保存在生效隧道列表中的静态隧道分组(水平分割组2)中。
与第二VTEP设备(VTEP-4)连接的第一主机(HOST-4)向第二VTEP设备发送第一报文,其中该第一报文为第一单播报文,该第一单播报文中至少携带有第二主机的MAC地址。第二VTEP设备接收到该第一单播报文后,基于第一VXLAN隧道,将该第一单播报文发送给第一VTEP设备(VTEP-1)。第一VTEP设备接收到第一单播报文后,判断发送该第一单播报文的第一VXLAN隧道的第一隧道标识信息位于水平分割组2中,并根据保存的主机和通信VTEP设备的对应关系,确定第二主机对应的第一目标VTEP设备,即VTEP-2,且与VTEP-2建立的VXLAN隧道位于生效隧道列表中的动态隧道分组中,即水平分割组1中后,第一VTEP设备即将该第一单播报文发送给第一目标VTEP设备,第一目标VTEP设备接收到该第一单播报文后,将该第一单播报文发送给第二主机。
为方便理解,在上述各实施例的基础上,下面通过一个具体实施例,对本发明实施例提供的通信过程进行详细说明,图10为本发明实施例提供的第二种通信过程示意图,如图10所示,以第一主机(HOST-4)发送第一报文,且第一报文为第一广播报文为例,对本发明实施例提供的通信过程进行说明:
与第二VTEP设备(VTEP-4)连接的第一主机(HOST-4)向第二VTEP设备发送第一报文,其中该第一报文为第一广播报文。第二VTEP设备接收到该第一广播报文后,通过内部接口将该第一广播报文发送给与其连接的HOST-5,同时,通过第一VXLAN隧道将该第一广播报文发送给第一VTEP设备(VTEP-1)。第一VTEP设备接收到第一广播报文后,判断发送该第一广播报文的第一VXLAN隧道的第一隧道标识信息位于水平分割组2中,随即将动态隧道分组中,即水平分割组1中的每个隧道标识信息对应的VTEP设备均确定为第一目标VTEP设备,将该第一广播报文通过动态VXLAN隧道发送给VTEP-2和VTEP-3,同时VTEP-1、VTEP-2和VTEP-3均将该第一广播报文发送给与其连接的主机,即HOST-1、HOST-2、HOST-3均接收到该第一广播报文。
在上述各实施例的基础上,在本发明实施例中,若第一报文为第一单播报文,该第一单播报文源自不支持EVPN协议的第二VTEP设备连接的第一主机,目的主机是与支持EVPN协议的第一目标VTEP设备的第二主机。则第一主机在发送包含第二主机的MAC地址的第一单播报文之前,需要预先获知第二主机的MAC地址。在本发明实施例中,第一主机可以通过两种方式获知第二主机的MAC地址:
第一种方式为:第一主机向第二VTEP设备发送PING请求,该PING请求中携带有第一主机自身的IP地址、MAC地址以及第二主机的IP地址。第二VTEP设备接收到该PING请求后,将携带第二VTEP设备自身的隧道接口标识,即第二VTEP设备的VTEP IP地址和第一主机的IP地址、MAC地址的对应关系以及第二主机的IP地址的PING请求发送给第一VTEP设备。第一VTEP设备根据保存的主机和通信VTEP设备的对应关系,确定第二主机对应的第一目标VTEP设备,将携带第一VTEP设备自身的隧道接口标识,即第一VTEP设备的VTEP IP地址和第一主机的IP地址、MAC地址的对应关系以及第二主机的IP地址的PING请求发送给第一目标VTEP设备,第一目标VTEP设备进而将PING请求发送给第二主机,并保存第一VTEP设备的隧道接口标识和第一主机的IP地址、MAC地址的对应关系。
第二主机接收到该PING请求后,向第一目标VTEP设备发送应答信息,该应答信息中携带第二主机自身的IP地址、MAC地址以及第一主机的IP地址和MAC地址。第一目标VTEP设备接收到应答信息后,根据第一目标VTEP设备自身保存的主机和通信VTEP设备的对应关系,确定第一主机对应的通信VTEP为第一VTEP设备,进而将携带第二主机的IP地址、MAC地址以及第一主机的IP地址和MAC地址的应答信息发送给第一VTEP设备,第一VTEP设备进而将该应答信息发送给第二VTEP设备,第二VTEP设备进而将该应答信息发送给第一主机,第一主机从而获知到第二主机的MAC地址。
第二种方式为:第二主机向与第二主机连接的第一目标VTEP设备发送广播报文,该广播报文中携带第二主机自身的IP地址和MAC地址。第一目标VTEP设备将该广播报文进行广播,第一VTEP设备接收该广播报文,将携带第一VTEP设备自身隧道接口标识、第二主机的IP地址和MAC地址的对应关系的广播报文发送给静态隧道分组中的每个静态隧道,使第二VTEP设备接收到该广播报文,获知第二主机对应的通信VTEP设备为第一VTEP设备,并将该广播报文发送给与其连接的每个主机,使与其连接的第一主机接收到该广播报文,第一主机接收到该广播报文后,即可获知第二主机的MAC地址。
由于本发明实施例中第一VTEP设备可以接收不支持EVPN协议的第二VTEP设备发送的第一报文,并可以将该第一报文转发给支持EVPN协议的第一目标VTEP设备,从而可以实现不支持EVPN协议的VTEP设备与支持EVPN协议的VTEP设备之间的通信,且该第一VTEP设备属于网络数据中心中原有的设备,所以可以在不改变数据中心的拓扑和配置的情况下,方便简单的实现网络通信的拓展。
实施例8:
为了使支持EVPN协议的设备与不支持EVPN协议的设备之间进行通信,在上述各实施例的基础上,在本发明实施例中,所述基于所述第一VXLAN隧道与所述第二VTEP设备进行通信包括:
若所述第二VTEP设备支持EVPN协议,将所述第一VXLAN隧道的第一隧道标识信息保存在所述生效隧道列表中的动态隧道分组中,所述第一VTEP设备接收所述第二VTEP设备通过所述第一VXLAN隧道发送的第二报文;
所述方法还包括:
根据所述第二报文中携带的目的标识信息,确定所述第二报文对应的不支持EVPN协议的第二目标VTEP设备;并在判断所述第二目标VTEP设备对应的隧道标识信息保存在生效隧道列表中的静态隧道分组中时,将所述第二报文发送给所述第二目标VTEP设备。
与上述实施例相同,为了使第一VETP设备既可以与不支持EVPN协议的VTEP设备通过建立静态隧道进行通信,又可以与支持EVPN协议的VTEP设备通过建立动态隧道进行通信,第一VETP设备的生效隧道列表中设置有静态隧道分组和动态隧道分组,其中静态隧道分组用于保存静态隧道的隧道标识信息,动态隧道分组用于保存动态隧道的隧道标识信息。同样的,为了避免转发环路和广播风暴,在本发明实施例中,将静态隧道分组和动态隧道分组分别设置为两个水平分割组,第一VTEP设备接收到位于动态隧道分组中的动态隧道发送的第二报文后,可以将该第二报文发送给位于静态隧道分组中的静态隧道,而不能将该第二报文转发给位于动态隧道分组中的动态隧道。
具体地,当第二VTEP设备支持EVPN协议时,第一VETP设备可以将第一VXLAN隧道的第一隧道标识信息保存在生效隧道列表中的动态隧道分组中,并可以接收第二VTEP设备通过该第一VXLAN隧道发送的第二报文。
在接收到第二报文后,为了可以转发第二报文,第一VTEP设备可以根据第二报文中携带的目的标识信息,确定第二报文对应的第二目标VTEP设备。在确定第二目标VTEP设备时,如果第二报文中携带的目的标识信息中MAC地址全为F等,则确定第二报文为第二广播报文,第一VTEP设备可以将生效隧道列表中静态隧道分组中的每个隧道标识信息对应的VETP设备,确定为第二目标VETP设备,将该第二报文发送给每个第二目标VETP设备。
如果第二报文中携带的目的标识信息为目标主机MAC地址,则第二报文为第二单播报文,第一VTEP设备可以根据本地保存的主机MAC地址与VTEP设备的对应关系,确定该目标主机对应的第二目标VTEP设备,并判断该第二目标VTEP设备对应的隧道标识信息保存在生效隧道列表中的静态隧道分组中时,将该第二单播报文发送给该第二目标VTEP设备。
为方便理解,下面通过一个具体实施例,对本发明实施例提供的通信过程进行详细说明,参见图9,以第三主机(HOST-3)向第四主机(HOST-5)发送第二报文,且第二报文为第二单播报文为例,对本发明实施例提供的通信过程进行说明:
若第二VTEP设备(VTEP-3)支持EVPN协议,第一VTEP设备(VTEP-1)与第二VTEP设备(VTEP-3)建立的第一VXLAN隧道的第一隧道标识信息保存在生效隧道列表中的动态隧道分组(水平分割组1)中。
与第二VTEP设备(VTEP-3)连接的第三主机(HOST-3)向第二VTEP设备发送第二报文,其中该第二报文为第二单播报文,该第二单播报文中至少携带有第四主机的MAC地址。第二VTEP设备接收到该第一单播报文后,基于第一VXLAN隧道,将该第二单播报文发送给第一VTEP设备(VTEP-1)。第一VTEP设备接收到第二单播报文后,判断发送该第二单播报文的第一VXLAN隧道的第一隧道标识信息位于水平分割组1中,并根据保存的主机和通信VTEP设备的对应关系,确定第四主机对应的第二目标VTEP设备,即VTEP-4,且与VTEP-4建立的VXLAN隧道位于生效隧道列表中的静态隧道分组中,即水平分割组2中后,第一VTEP设备即将该第二单播报文发送给第二目标VTEP设备,第二目标VTEP设备接收到该第二单播报文后,将该第二单播报文发送给第四主机。
为方便理解,在上述各实施例的基础上,下面通过一个具体实施例,对本发明实施例提供的通信过程进行详细说明,图11为本发明实施例提供的第三种通信过程示意图,如图11所示,以第三主机(HOST-3)发送第二报文,且第二报文为第二广播报文为例,对本发明实施例提供的通信过程进行说明:
与第二VTEP设备(VTEP-3)连接的第三主机(HOST-3)向第二VTEP设备发送第二报文,其中该第二报文为第二广播报文。第二VTEP设备接收到该第二广播报文后,将该第二广播报文同时发送给VTEP-1和VTEP-2。第一VTEP设备(VTEP-1)接收到第二广播报文后,判断发送该第二广播报文的第一VXLAN隧道的第一隧道标识信息位于水平分割组1中,随即将静态隧道分组中,即水平分割组2中的每个隧道标识信息对应的VTEP设备均确定为第一目标VTEP设备,将该第一广播报文通过静态VXLAN隧道发送给VTEP-4,同时VTEP-1、VTEP-2和VTEP-4均将该第二广播报文发送给与其连接的主机,即HOST-1、HOST-2、HOST-4和HOST-5均接收到该第一广播报文。
与上述实施例相同,若第二报文为第二单播报文,该第二单播报文源自支持EVPN协议的第二VTEP设备连接的第三主机,目的主机是不支持EVPN协议的第二目标VTEP设备的第四主机。则第三主机在发送包含第四主机的MAC地址的第二单播报文之前,需要预先获知第四主机的MAC地址。在本发明实施例中,第三主机可以通过两种方式获知第四主机的MAC地址:
第一种方式为:第三主机向第二VTEP设备发送PING请求,该PING请求中携带有第三主机自身的IP地址、MAC地址以及第四主机的IP地址。第二VTEP设备接收到该PING请求后,将携带第二VTEP设备自身的隧道接口标识,即第二VTEP设备的VTEP IP地址和第三主机的IP地址、MAC地址的对应关系以及第四主机的IP地址的PING请求发送给第一VTEP设备。第一VTEP设备根据保存的主机和通信VTEP设备的对应关系,确定第四主机对应的第二目标VTEP设备,将携带第一VTEP设备自身的隧道接口标识,即第一VTEP设备的VTEP IP地址和第三主机的IP地址、MAC地址的对应关系以及第四主机的IP地址的PING请求发送给第二目标VTEP设备,第二目标VTEP设备进而将PING请求发送给第四主机,并保存第一VTEP设备的隧道接口标识和第三主机的IP地址、MAC地址的对应关系。
第四主机接收到该PING请求后,向第二目标VTEP设备发送应答信息,该应答信息中携带第四主机自身的IP地址、MAC地址以及第三主机的IP地址和MAC地址。第二目标VTEP设备接收到应答信息后,根据第二目标VTEP设备自身保存的主机和通信VTEP设备的对应关系,确定第三主机对应的通信VTEP为第一VTEP设备,进而将携带第四主机的IP地址、MAC地址以及第三主机的IP地址和MAC地址的应答信息发送给第一VTEP设备,第一VTEP设备进而将该应答信息发送给第二VTEP设备,第二VTEP设备进而将该应答信息发送给第三主机,第三主机从而获知到第四主机的MAC地址。
第二种方式为:第四主机向与第四主机连接的第二目标VTEP设备发送广播报文,该广播报文中携带第四主机自身的IP地址和MAC地址。第二目标VTEP设备将该广播报文进行广播,第一VTEP设备接收该广播报文,基于EVPN协议,将携带第一VTEP设备自身隧道接口标识、第四主机的IP地址和MAC地址的对应关系的广播报文发送给动态隧道分组中的每个动态隧道,使支持EVPN协议的第二VTEP设备接收到该广播报文,获知第四主机对应的通信VTEP设备为第一VTEP设备,并将该广播报文发送给与其连接的每个主机,使与其连接的第三主机接收到该广播报文,第三主机接收到该广播报文后,即可获知第四主机的MAC地址。
为方便理解,下面通过一个具体实施例对本发明实施例提供的获知第四主机的MAC地址的过程进行详细说明。图12为本发明实施例提供的获知第四主机的MAC地址的过程示意图,如图12所示:
第四主机(HOST-4)向与第四主机连接的不支持EVPN协议的VTEP-4发送广播报文,该广播报文中携带第四主机自身的IP地址和MAC地址。VTEP-4将该广播报文进行广播,第一VTEP设备(VTEP-1)接收该广播报文,基于EVPN协议,将携带第一VTEP设备自身隧道接口标识、第四主机的IP地址和MAC地址的对应关系的广播报文发送给动态隧道分组中的每个动态隧道,使支持EVPN协议的VTEP-2和VTEP-3接收到该广播报文,VTEP-2和VTEP-3获知第四主机对应的通信VTEP设备为第一VTEP设备(VTEP-1),保存第一VTEP设备自身隧道接口标识、第四主机的IP地址和MAC地址的对应关系,在一种可能的实施方式中,可以将第一VTEP设备自身隧道接口标识、第四主机的IP地址和MAC地址等的对应关系保存在地址解析协议(Address Resolution Protocol,ARP)表项中,将第一VTEP设备自身隧道接口标识、第四主机的MAC地址等的对应关系保存在MAC表项中。同时,VTEP-1、VTEP-2和VTEP-3均将广播报文发送给与自身连接的每个主机,即HOST-1、HOST-2、HOST-3均可获知第四主机的MAC地址。
实施例9:
图13为本发明实施例提供的一种网络连接装置示意图,如图13所示,在上述各实施例的基础上,本发明实施例提供的一种网络连接装置,所述装置应用于第一VTEP设备,所述装置包括:
确定模块131,用于若与第二VTEP设备建立第一虚拟可扩展局域网VXLAN隧道,确定所述第一VXLAN隧道的第一隧道标识信息;
通信模块132,用于判断本地保存的生效隧道列表中是否存在与所述第一隧道标识信息相同的第二隧道标识信息,如果否,将所述第一隧道标识信息保存在所述生效隧道列表中,并基于所述第一VXLAN隧道与所述第二VTEP设备进行通信。
在一种可能的实施方式中,所述通信模块132,还用于如果所述生效隧道列表中存在与所述第一隧道标识信息相同的第二隧道标识信息,将所述第一隧道标识信息添加至本地保存的缓存隧道列表中;当识别到本地保存的缓存隧道列表和/或生效隧道列表中的隧道标识信息被修改,并且判断本地保存的生效隧道列表中不存在与所述第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息时,将所述第三隧道标识信息移至所述生效隧道列表中,并基于所述第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
在一种可能的实施方式中,所述通信模块132,具体用于若识别到缓存隧道列表中的第一隧道标识信息被修改为第三隧道标识信息,且所述第三隧道标识信息与生效隧道列表中的每个第五隧道标识信息均不同时,将所述第三隧道标识信息从缓存隧道列表移至生效隧道列表中,并基于所述第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信;若识别到生效隧道列表中的第二隧道标识信息被修改,且修改后的生效隧道列表中不存在与第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息时,将所述第三隧道标识信息从缓存隧道列表移至生效隧道列表中,基于第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
在一种可能的实施方式中,所述通信模块132,还用于若识别到生效隧道列表中的第二隧道标识信息被修改,且修改后的生效隧道列表中不存在与第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息之后,确定所述第二隧道标识信息对应的第三VTEP设备,并基于修改后的第二隧道标识信息对应的第二VXLAN隧道与所述第三VTEP设备进行通信。
在一种可能的实施方式中,所述通信模块132,还用于如果所述生效隧道列表中存在与所述第一隧道标识信息相同的第二隧道标识信息,将所述第一隧道标识信息添加至本地保存的缓存隧道列表中之前,判断所述第一VXLAN隧道是否为动态隧道;若是,则将所述第一隧道标识信息保存在缓存隧道列表中;若否,将所述生效隧道列表中的所述第二隧道标识信息移至缓存隧道列表中,将所述第一隧道标识信息保存在所述生效隧道列表中,基于所述第一VXLAN隧道与所述第二VTEP设备进行通信。
在一种可能的实施方式中,所述通信模块132,还用于若判断第一VXLAN隧道为静态隧道,将所述生效隧道列表中的第二隧道标识信息移至缓存隧道列表中,将所述第一隧道标识信息保存在所述生效隧道列表中之后,当识别到本地保存的隧道列表中的隧道标识信息被修改,并且判断本地保存的隧道列表中不存在与所述第二VTEP设备对应的第六隧道标识信息相同的第七隧道标识信息时,基于第六隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
在一种可能的实施方式中,所述通信模块132,具体用于若所述第二VTEP设备不支持EVPN协议,将所述第一VXLAN隧道的第一隧道标识信息保存在所述生效隧道列表中的静态隧道分组中,所述第一VTEP设备接收所述第二VTEP设备通过所述第一VXLAN隧道发送的第一报文;
所述通信模块132,还用于根据所述第一报文中携带的目的标识信息,确定所述第一报文对应的支持EVPN协议的第一目标VTEP设备,并在判断所述第一目标VTEP设备对应的隧道标识信息保存在生效隧道列表中的动态隧道分组中时,将所述第一报文发送给所述第一目标VTEP设备。
在一种可能的实施方式中,所述通信模块132,具体用于若所述第二VTEP设备支持EVPN协议,将所述第一VXLAN隧道的第一隧道标识信息保存在所述生效隧道列表中的动态隧道分组中,所述第一VTEP设备接收所述第二VTEP设备通过所述第一VXLAN隧道发送的第二报文;
所述通信模块132,还用于根据所述第二报文中携带的目的标识信息,确定所述第二报文对应的不支持EVPN协议的第二目标VTEP设备;并在判断所述第二目标VTEP设备对应的隧道标识信息保存在生效隧道列表中的静态隧道分组中时,将所述第二报文发送给所述第二目标VTEP设备。
由于本发明实施例可以在第一VTEP设备与第二VTEP设备建立第一VXLAN隧道,并判断生效隧道列表中没有与第一VXLAN隧道的第一隧道标识信息相同的第二隧道标识信息时,基于该第一VXLAN隧道与第二VETP设备进行通信,从而可以保证在与第二VETP设备进行通信时,用于通信的第一VXLAN隧道没有发生隧道冲突,保证了报文的正确转发。
实施例10:
图14为本发明实施例提供的一种电子设备结构示意图,在上述各实施例的基础上,本发明实施例还提供了一种电子设备,如图14所示,包括:处理器141、通信接口142、存储器143和通信总线144,其中,处理器141,通信接口142,存储器143通过通信总线144完成相互间的通信;
所述存储器143中存储有计算机程序,当所述程序被所述处理器141执行时,使得所述处理器141执行如下步骤:
支持以太虚拟专用网络EVPN协议的第一虚拟扩展本地网络隧道终结结点VTEP设备若与第二VTEP设备建立第一虚拟可扩展局域网VXLAN隧道,确定所述第一VXLAN隧道的第一隧道标识信息;
所述第一VTEP设备判断本地保存的生效隧道列表中是否存在与所述第一隧道标识信息相同的第二隧道标识信息,如果否,将所述第一隧道标识信息保存在所述生效隧道列表中,并基于所述第一VXLAN隧道与所述第二VTEP设备进行通信。
在一种可能的实施方式中,处理器141,还用于如果所述生效隧道列表中存在与所述第一隧道标识信息相同的第二隧道标识信息,将所述第一隧道标识信息添加至本地保存的缓存隧道列表中;当识别到本地保存的缓存隧道列表和/或生效隧道列表中的隧道标识信息被修改,并且判断本地保存的生效隧道列表中不存在与所述第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息时,将所述第三隧道标识信息移至所述生效隧道列表中,并基于所述第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
在一种可能的实施方式中,处理器141,具体用于若识别到缓存隧道列表中的第一隧道标识信息被修改为第三隧道标识信息,且所述第三隧道标识信息与生效隧道列表中的每个第五隧道标识信息均不同时,将所述第三隧道标识信息从缓存隧道列表移至生效隧道列表中,并基于所述第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信;若识别到生效隧道列表中的第二隧道标识信息被修改,且修改后的生效隧道列表中不存在与第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息时,将所述第三隧道标识信息从缓存隧道列表移至生效隧道列表中,基于第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
在一种可能的实施方式中,处理器141,还用于若识别到生效隧道列表中的第二隧道标识信息被修改,且修改后的生效隧道列表中不存在与第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息之后,确定所述第二隧道标识信息对应的第三VTEP设备,并基于修改后的第二隧道标识信息对应的第二VXLAN隧道与所述第三VTEP设备进行通信。
在一种可能的实施方式中,处理器141,还用于如果所述生效隧道列表中存在与所述第一隧道标识信息相同的第二隧道标识信息,将所述第一隧道标识信息添加至本地保存的缓存隧道列表中之前,判断所述第一VXLAN隧道是否为动态隧道;若是,则将所述第一隧道标识信息保存在缓存隧道列表中;若否,将所述生效隧道列表中的所述第二隧道标识信息移至缓存隧道列表中,将所述第一隧道标识信息保存在所述生效隧道列表中,基于所述第一VXLAN隧道与所述第二VTEP设备进行通信。
在一种可能的实施方式中,处理器141,还用于若判断第一VXLAN隧道为静态隧道,将所述生效隧道列表中的第二隧道标识信息移至缓存隧道列表中,将所述第一隧道标识信息保存在所述生效隧道列表中之后,当识别到本地保存的隧道列表中的隧道标识信息被修改,并且判断本地保存的隧道列表中不存在与所述第二VTEP设备对应的第六隧道标识信息相同的第七隧道标识信息时,基于第六隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
在一种可能的实施方式中,处理器141,具体用于若所述第二VTEP设备不支持EVPN协议,将所述第一VXLAN隧道的第一隧道标识信息保存在所述生效隧道列表中的静态隧道分组中,所述第一VTEP设备接收所述第二VTEP设备通过所述第一VXLAN隧道发送的第一报文;
处理器141,还用于根据所述第一报文中携带的目的标识信息,确定所述第一报文对应的支持EVPN协议的第一目标VTEP设备,并在判断所述第一目标VTEP设备对应的隧道标识信息保存在生效隧道列表中的动态隧道分组中时,将所述第一报文发送给所述第一目标VTEP设备。
在一种可能的实施方式中,处理器141,具体用于若所述第二VTEP设备支持EVPN协议,将所述第一VXLAN隧道的第一隧道标识信息保存在所述生效隧道列表中的动态隧道分组中,所述第一VTEP设备接收所述第二VTEP设备通过所述第一VXLAN隧道发送的第二报文;
处理器141,还用于根据所述第二报文中携带的目的标识信息,确定所述第二报文对应的不支持EVPN协议的第二目标VTEP设备;并在判断所述第二目标VTEP设备对应的隧道标识信息保存在生效隧道列表中的静态隧道分组中时,将所述第二报文发送给所述第二目标VTEP设备。
由于上述电子设备解决问题的原理与网络连接方法相似,因此上述电子设备的实施可以参见方法的实施,重复之处不再赘述。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口142用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述处理器可以是通用处理器,包括中央处理器、网络处理器(NetworkProcessor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
由于本发明实施例可以在第一VTEP设备与第二VTEP设备建立第一VXLAN隧道,并判断生效隧道列表中没有与第一VXLAN隧道的第一隧道标识信息相同的第二隧道标识信息时,基于该第一VXLAN隧道与第二VETP设备进行通信,从而可以保证在与第二VETP设备进行通信时,用于通信的第一VXLAN隧道没有发生隧道冲突,保证了报文的正确转发。
实施例11:
在上述各实施例的基础上,本发明实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有可由电子设备执行的计算机程序,当所述程序在所述电子设备上运行时,使得所述电子设备执行时实现如下步骤:
支持以太虚拟专用网络EVPN协议的第一虚拟扩展本地网络隧道终结结点VTEP设备若与第二VTEP设备建立第一虚拟可扩展局域网VXLAN隧道,确定所述第一VXLAN隧道的第一隧道标识信息;
所述第一VTEP设备判断本地保存的生效隧道列表中是否存在与所述第一隧道标识信息相同的第二隧道标识信息,如果否,将所述第一隧道标识信息保存在所述生效隧道列表中,并基于所述第一VXLAN隧道与所述第二VTEP设备进行通信。
在一种可能的实施方式中,如果所述生效隧道列表中存在与所述第一隧道标识信息相同的第二隧道标识信息,所述方法还包括:
将所述第一隧道标识信息添加至本地保存的缓存隧道列表中;
当识别到本地保存的缓存隧道列表和/或生效隧道列表中的隧道标识信息被修改,并且判断本地保存的生效隧道列表中不存在与所述第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息时,将所述第三隧道标识信息移至所述生效隧道列表中,并基于所述第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
在一种可能的实施方式中,所述当识别到本地保存的隧道列表中的隧道标识信息被修改,并且判断本地保存的生效隧道列表中不存在与所述第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息时,将所述第三隧道标识信息移至所述生效隧道列表中,并基于所述第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信包括:
若识别到缓存隧道列表中的第一隧道标识信息被修改为第三隧道标识信息,且所述第三隧道标识信息与生效隧道列表中的每个第五隧道标识信息均不同时,将所述第三隧道标识信息从缓存隧道列表移至生效隧道列表中,并基于所述第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信;
若识别到生效隧道列表中的第二隧道标识信息被修改,且修改后的生效隧道列表中不存在与第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息时,将所述第三隧道标识信息从缓存隧道列表移至生效隧道列表中,基于第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
在一种可能的实施方式中,若识别到生效隧道列表中的第二隧道标识信息被修改,且修改后的生效隧道列表中不存在与第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息之后,所述方法还包括:
确定所述第二隧道标识信息对应的第三VTEP设备,并基于修改后的第二隧道标识信息对应的第二VXLAN隧道与所述第三VTEP设备进行通信。
在一种可能的实施方式中,如果所述生效隧道列表中存在与所述第一隧道标识信息相同的第二隧道标识信息,将所述第一隧道标识信息添加至本地保存的缓存隧道列表中之前,所述方法还包括:
判断所述第一VXLAN隧道是否为动态隧道;
若是,则将所述第一隧道标识信息保存在缓存隧道列表中;
若否,所述方法还包括:
将所述生效隧道列表中的所述第二隧道标识信息移至缓存隧道列表中,将所述第一隧道标识信息保存在所述生效隧道列表中,基于所述第一VXLAN隧道与所述第二VTEP设备进行通信。
在一种可能的实施方式中,若判断第一VXLAN隧道为静态隧道,将所述生效隧道列表中的第二隧道标识信息移至缓存隧道列表中,将所述第一隧道标识信息保存在所述生效隧道列表中之后,所述方法还包括:
当识别到本地保存的隧道列表中的隧道标识信息被修改,并且判断本地保存的隧道列表中不存在与所述第二VTEP设备对应的第六隧道标识信息相同的第七隧道标识信息时,基于第六隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
在一种可能的实施方式中,所述基于所述第一VXLAN隧道与所述第二VTEP设备进行通信包括:
若所述第二VTEP设备不支持EVPN协议,将所述第一VXLAN隧道的第一隧道标识信息保存在所述生效隧道列表中的静态隧道分组中,所述第一VTEP设备接收所述第二VTEP设备通过所述第一VXLAN隧道发送的第一报文;
所述方法还包括:
根据所述第一报文中携带的目的标识信息,确定所述第一报文对应的支持EVPN协议的第一目标VTEP设备,并在判断所述第一目标VTEP设备对应的隧道标识信息保存在生效隧道列表中的动态隧道分组中时,将所述第一报文发送给所述第一目标VTEP设备。
在一种可能的实施方式中,所述基于所述第一VXLAN隧道与所述第二VTEP设备进行通信包括:
若所述第二VTEP设备支持EVPN协议,将所述第一VXLAN隧道的第一隧道标识信息保存在所述生效隧道列表中的动态隧道分组中,所述第一VTEP设备接收所述第二VTEP设备通过所述第一VXLAN隧道发送的第二报文;
所述方法还包括:
根据所述第二报文中携带的目的标识信息,确定所述第二报文对应的不支持EVPN协议的第二目标VTEP设备;并在判断所述第二目标VTEP设备对应的隧道标识信息保存在生效隧道列表中的静态隧道分组中时,将所述第二报文发送给所述第二目标VTEP设备。
上述计算机可读存储介质可以是电子设备中的处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器如软盘、硬盘、磁带、磁光盘(MO)等、光学存储器如CD、DVD、BD、HVD等、以及半导体存储器如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD)等。
由于本发明实施例可以在第一VTEP设备与第二VTEP设备建立第一VXLAN隧道,并判断生效隧道列表中没有与第一VXLAN隧道的第一隧道标识信息相同的第二隧道标识信息时,基于该第一VXLAN隧道与第二VETP设备进行通信,从而可以保证在与第二VETP设备进行通信时,用于通信的第一VXLAN隧道没有发生隧道冲突,保证了报文的正确转发。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (11)
1.一种网络连接方法,其特征在于,所述方法包括:
支持以太虚拟专用网络EVPN协议的第一虚拟扩展本地网络隧道终结结点VTEP设备若与第二VTEP设备建立第一虚拟可扩展局域网VXLAN隧道,确定所述第一VXLAN隧道的第一隧道标识信息;
所述第一VTEP设备判断本地保存的生效隧道列表中是否存在与所述第一隧道标识信息相同的第二隧道标识信息,如果否,将所述第一隧道标识信息保存在所述生效隧道列表中,并基于所述第一VXLAN隧道与所述第二VTEP设备进行通信。
2.根据权利要求1所述的方法,其特征在于,如果所述生效隧道列表中存在与所述第一隧道标识信息相同的第二隧道标识信息,所述方法还包括:
将所述第一隧道标识信息添加至本地保存的缓存隧道列表中;
当识别到本地保存的缓存隧道列表和/或生效隧道列表中的隧道标识信息被修改,并且判断本地保存的生效隧道列表中不存在与所述第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息时,将所述第三隧道标识信息移至所述生效隧道列表中,并基于所述第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
3.根据权利要求2所述的方法,其特征在于,所述当识别到本地保存的隧道列表中的隧道标识信息被修改,并且判断本地保存的生效隧道列表中不存在与所述第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息时,将所述第三隧道标识信息移至所述生效隧道列表中,并基于所述第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信包括:
若识别到缓存隧道列表中的第一隧道标识信息被修改为第三隧道标识信息,且所述第三隧道标识信息与生效隧道列表中的每个第五隧道标识信息均不同时,将所述第三隧道标识信息从缓存隧道列表移至生效隧道列表中,并基于所述第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信;
若识别到生效隧道列表中的第二隧道标识信息被修改,且修改后的生效隧道列表中不存在与第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息时,将所述第三隧道标识信息从缓存隧道列表移至生效隧道列表中,基于第三隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
4.根据权利要求3所述的方法,其特征在于,若识别到生效隧道列表中的第二隧道标识信息被修改,且修改后的生效隧道列表中不存在与第二VTEP设备对应的第三隧道标识信息相同的第四隧道标识信息之后,所述方法还包括:
确定所述第二隧道标识信息对应的第三VTEP设备,并基于修改后的第二隧道标识信息对应的第二VXLAN隧道与所述第三VTEP设备进行通信。
5.根据权利要求2所述的方法,其特征在于,如果所述生效隧道列表中存在与所述第一隧道标识信息相同的第二隧道标识信息,将所述第一隧道标识信息添加至本地保存的缓存隧道列表中之前,所述方法还包括:
判断所述第一VXLAN隧道是否为动态隧道;
若是,则将所述第一隧道标识信息保存在缓存隧道列表中;
若否,所述方法还包括:
将所述生效隧道列表中的所述第二隧道标识信息移至缓存隧道列表中,将所述第一隧道标识信息保存在所述生效隧道列表中,基于所述第一VXLAN隧道与所述第二VTEP设备进行通信。
6.根据权利要求5所述的方法,其特征在于,若判断第一VXLAN隧道为静态隧道,将所述生效隧道列表中的第二隧道标识信息移至缓存隧道列表中,将所述第一隧道标识信息保存在所述生效隧道列表中之后,所述方法还包括:
当识别到本地保存的隧道列表中的隧道标识信息被修改,并且判断本地保存的隧道列表中不存在与所述第二VTEP设备对应的第六隧道标识信息相同的第七隧道标识信息时,基于第六隧道标识信息对应的第一VXLAN隧道与所述第二VTEP设备进行通信。
7.根据权利要求1-6任一所述的方法,其特征在于,所述基于所述第一VXLAN隧道与所述第二VTEP设备进行通信包括:
若所述第二VTEP设备不支持EVPN协议,将所述第一VXLAN隧道的第一隧道标识信息保存在所述生效隧道列表中的静态隧道分组中,所述第一VTEP设备接收所述第二VTEP设备通过所述第一VXLAN隧道发送的第一报文;
所述方法还包括:
根据所述第一报文中携带的目的标识信息,确定所述第一报文对应的支持EVPN协议的第一目标VTEP设备,并在判断所述第一目标VTEP设备对应的隧道标识信息保存在生效隧道列表中的动态隧道分组中时,将所述第一报文发送给所述第一目标VTEP设备。
8.根据权利要求1-6任一所述的方法,其特征在于,所述基于所述第一VXLAN隧道与所述第二VTEP设备进行通信包括:
若所述第二VTEP设备支持EVPN协议,将所述第一VXLAN隧道的第一隧道标识信息保存在所述生效隧道列表中的动态隧道分组中,所述第一VTEP设备接收所述第二VTEP设备通过所述第一VXLAN隧道发送的第二报文;
所述方法还包括:
根据所述第二报文中携带的目的标识信息,确定所述第二报文对应的不支持EVPN协议的第二目标VTEP设备;并在判断所述第二目标VTEP设备对应的隧道标识信息保存在生效隧道列表中的静态隧道分组中时,将所述第二报文发送给所述第二目标VTEP设备。
9.一种网络连接装置,其特征在于,所述装置包括:
确定模块,用于若与第二VTEP设备建立第一虚拟可扩展局域网VXLAN隧道,确定所述第一VXLAN隧道的第一隧道标识信息;
通信模块,用于判断本地保存的生效隧道列表中是否存在与所述第一隧道标识信息相同的第二隧道标识信息,如果否,将所述第一隧道标识信息保存在所述生效隧道列表中,并基于所述第一VXLAN隧道与所述第二VTEP设备进行通信。
10.一种电子设备,其特征在于,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现如权利要求1-8中任一所述网络连接方法的步骤。
11.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-8中任一所述网络连接方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011300482.4A CN112511401B (zh) | 2020-11-19 | 2020-11-19 | 一种网络连接方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011300482.4A CN112511401B (zh) | 2020-11-19 | 2020-11-19 | 一种网络连接方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112511401A true CN112511401A (zh) | 2021-03-16 |
CN112511401B CN112511401B (zh) | 2022-02-15 |
Family
ID=74958703
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011300482.4A Active CN112511401B (zh) | 2020-11-19 | 2020-11-19 | 一种网络连接方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112511401B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115022120A (zh) * | 2022-05-20 | 2022-09-06 | 浪潮思科网络科技有限公司 | 一种vxlan网络中mlag的报文抑制方法、设备及介质 |
CN115766434A (zh) * | 2021-09-03 | 2023-03-07 | 中国移动通信集团山东有限公司 | Vxlan的配置方法和设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090259755A1 (en) * | 2008-04-09 | 2009-10-15 | Canon Kabushiki Kaisha | Method for setting up a communications path in an extended communications network, computer-readable storage medium and corresponding tunnel end-points |
CN101848112A (zh) * | 2009-03-25 | 2010-09-29 | 华为技术有限公司 | 隧道环路检测方法及装置 |
CN109412926A (zh) * | 2018-11-16 | 2019-03-01 | 新华三技术有限公司 | 一种隧道建立方法和装置 |
CN111343071A (zh) * | 2020-03-20 | 2020-06-26 | 新华三信息安全技术有限公司 | 隧道建立方法、装置、负载均衡设备及存储介质 |
-
2020
- 2020-11-19 CN CN202011300482.4A patent/CN112511401B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090259755A1 (en) * | 2008-04-09 | 2009-10-15 | Canon Kabushiki Kaisha | Method for setting up a communications path in an extended communications network, computer-readable storage medium and corresponding tunnel end-points |
CN101848112A (zh) * | 2009-03-25 | 2010-09-29 | 华为技术有限公司 | 隧道环路检测方法及装置 |
CN109412926A (zh) * | 2018-11-16 | 2019-03-01 | 新华三技术有限公司 | 一种隧道建立方法和装置 |
CN111343071A (zh) * | 2020-03-20 | 2020-06-26 | 新华三信息安全技术有限公司 | 隧道建立方法、装置、负载均衡设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115766434A (zh) * | 2021-09-03 | 2023-03-07 | 中国移动通信集团山东有限公司 | Vxlan的配置方法和设备 |
CN115022120A (zh) * | 2022-05-20 | 2022-09-06 | 浪潮思科网络科技有限公司 | 一种vxlan网络中mlag的报文抑制方法、设备及介质 |
CN115022120B (zh) * | 2022-05-20 | 2024-05-14 | 浪潮思科网络科技有限公司 | 一种vxlan网络中mlag的报文抑制方法、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112511401B (zh) | 2022-02-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109257265B (zh) | 一种泛洪抑制方法、vxlan网桥、网关及系统 | |
US11252129B2 (en) | Packet transmission method and apparatus | |
US20160014025A1 (en) | Generating a host route | |
CN107579900B (zh) | 从vlan网络接入vxlan网络的方法、装置及系统 | |
WO2020156166A1 (zh) | 用于处理报文的方法和装置 | |
CN108718269B (zh) | 报文处理方法及装置 | |
US20140229573A1 (en) | Neighbor Discovery for IPV6 Switching Systems | |
CN108600074B (zh) | 组播数据报文的转发方法及装置 | |
CN112511401B (zh) | 一种网络连接方法、装置、设备及介质 | |
CN106161253B (zh) | 一种报文处理方法及装置 | |
US20170279705A1 (en) | Method, system, and apparatus for preventing tromboning in inter-subnet traffic within data center architectures | |
CN109218456B (zh) | Mac地址表的老化时间的处理方法及装置 | |
CN106878136B (zh) | 一种报文转发方法及装置 | |
CN107645433B (zh) | 报文转发方法及装置 | |
JP2019521619A (ja) | パケット転送 | |
CN107659484B (zh) | 从vlan网络接入vxlan网络的方法、装置及系统 | |
US11750496B2 (en) | Method for multi-cloud interconnection and device | |
CN108600070B (zh) | 指定转发者df选举方法及装置 | |
US11936614B2 (en) | Method and apparatus for sending reply packet, computing device, and storage medium | |
CN106992918B (zh) | 报文转发方法和装置 | |
CN106899706B (zh) | 一种泛洪抑制方法及装置 | |
CN115277305A (zh) | 一种网络管理方法、装置、设备及机器可读存储介质 | |
CN108810183B (zh) | 冲突mac地址的处理方法、装置和机器可读存储介质 | |
CN108306825B (zh) | 一种等价转发表项生成方法和vtep设备 | |
CN109728926B (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 |