CN105391612A - 一种vxlan vtep邻接学习的方法及装置 - Google Patents
一种vxlan vtep邻接学习的方法及装置 Download PDFInfo
- Publication number
- CN105391612A CN105391612A CN201510665053.XA CN201510665053A CN105391612A CN 105391612 A CN105391612 A CN 105391612A CN 201510665053 A CN201510665053 A CN 201510665053A CN 105391612 A CN105391612 A CN 105391612A
- Authority
- CN
- China
- Prior art keywords
- vtep
- client
- server
- vxlan
- message
- 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
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/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/70—Admission control; Resource allocation
- H04L47/82—Miscellaneous aspects
- H04L47/825—Involving tunnels, e.g. MPLS
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
一种虚拟可扩展局域网(VXLAN)VXLAN隧道终端(VTEP)邻接学习的方法及装置。所述VXLAN包括VTEP服务器和VTEP客户端,所述VTEP服务器存储VTEP邻接信息,该方法包括:当所述VTEP服务器确定存储的VTEP邻接信息变更或校验所述VTEP客户端与所述VTEP服务器的VTEP邻接信息不一致时,所述VTEP服务器向所述VTEP客户端同步所述VTEP服务器存储的VTEP邻接信息;以及所述VTEP客户端存储从所述VTEP服务器同步的VTEP邻接信息。通过上述技术方案,在VXLAN网络环境下通过VTEP服务器和VTEP客户端两种角色的报文交互,实现了VTEP邻接的快速学习。
Description
技术领域
本发明涉及通信领域,具体地,涉及一种VXLANVTEP邻接学习的方法及装置。
背景技术
VXLAN(VirtualeXtensibleLocalAreaNetwork,虚拟可扩展局域网)是一种建立在IP(InternetProtocol,互联网协议)网络之上的Overlay(叠加)网络技术,其使用UDP(UserDatagramProtocol,用户数据报协议)中MAC(MediaAccessControl,媒体接入控制)的方法进行封装,即将普通以太网报文封装在UDP报文里面,使普通以太网报文被当作UDP数据传输。
VTEP(VXLANTunnelEndPoint,VXLAN隧道终端),是VXLAN隧道端点,用于VXLAN报文的封装和解封装。VTEP与物理网络相连,分配有物理网络的IP地址,该地址用于VXLAN报文的封装和解封装。VXLAN报文中源IP地址为本端节点(或称为VTEP本端)的VTEP地址,VXLAN报文中目的IP地址为对端节点的VTEP地址,一对VTEP地址就对应着一个VXLAN隧道,通常把对端节点VTEP称为VTEP邻接。
如图1中所示,VXLAN网络可以包括:多台终端设备(如PC、虚拟机、服务器等)、域内本地网络设备(如位置A内部的网络设备)、VTEP、IP网络组成。其中VTEP是VXLAN网络的边缘设备,VTEP之间在IP核心网络上建立隧道,这些隧道实现了VXLAN穿越IP核心网的以太网报文传输服务。VXLAN网络以VNI(VXLANNetworkIdentifier,VXLAN网络标识)作为唯一标识,不同VNI的VXLAN网络终端不能通信。VNI的作用类似VLAN(VirtualLocalAreaNetwork,虚拟局域网)中的VID(VirtualLocalAreaNetworkIdentifier,虚拟局域网络标识符),VNI值的长度为24比特(Bit),即,其取值可以是1~16777215。
在VXLAN网络中,VTEP之间需要学习彼此之间的邻接关系才可以建立隧道,通常每个VTEP都维护一张自己的VTEP邻接表,格式如下表1所示:
表1
VNI | VTEP IP |
在公开的网络协议和标准中,当前还没有定义实现VXLANVTEP邻接学习的方法。目前各厂商通常通过以下技术方案实现:
1、静态配置法:
通过与设备交互的界面或方法,如设备CLI(command-lineinterface,命令行界面)、WEB管理界面静态配置VXLAN网络中所有的VTEP邻接。
当VXLAN网络规模扩大、有VTEP新增或减少时,VTEP邻接的配置管理就变得非常复杂,而且容易出错,网络运维和管理变得非常困难。
2、数据面自动学习法:
通常VTEP邻接的学习是采用数据平面自学的方式,即,VTEP只有在接收到VXLAN终端用户数据报文时才会触发VTEP邻接学习,具体的,当VTEP接收到VXLAN终端用户数据报文时,匹配VXLAN报文中的外层源IP地址信息,而每一个合法的源IP地址则认为是该VXLAN下的一个VTEP邻接,若该VTEP是已经学习到的,则该报文被正常转发,若否,则该报文送至VTEP的学习单元,学习单元根据报文的源IP地址信息完成VTEP邻接的学习并生成隧道,建立如表1所示的VXLANVTEP邻接表项。
但是,一方面,这种VTEP邻接学习过程中会把VXLAN终端用户报文送至VTEP的学习单元,VTEP邻接学习完后这份报文通常不会被转发,造成了部分终端用户报文丢失;另一方面,这种VTEP邻接的学习方式具有被动性、不及时、效率低且收敛慢。
针对上述技术问题,现有技术中尚无良好解决方案。
发明内容
本发明的目的是提供一种方法和装置,该方法和装置能够实现VTEP邻接的快速学习。
为了实现上述目的,本发明提供一种虚拟可扩展局域网(VXLAN)VXLAN隧道终端(VTEP)邻接学习的方法,所述VXLAN包括VTEP服务器和VTEP客户端,所述VTEP服务器存储VTEP邻接信息,该方法包括:
当所述VTEP服务器确定存储的VTEP邻接信息变更或校验所述VTEP客户端与所述VTEP服务器的VTEP邻接信息不一致时,所述VTEP服务器向所述VTEP客户端同步所述VTEP服务器存储的VTEP邻接信息;以及所述VTEP客户端存储从所述VTEP服务器同步的VTEP邻接信息。
进一步地,校验所述VTEP客户端与所述VTEP服务器的VTEP邻接信息包括:所述VTEP客户端根据存储的VTEP邻接信息计算第一校验码;所述VTEP客户端将所述第一校验码封装成校验报文并发送至所述VTEP服务器;所述VTEP服务器根据所存储的VTEP邻接信息计算第二校验码,以及将所述第一校验码与所述第二校验码相比较以进行校验;以及所述VTEP服务器将校验结果发回所述VTEP客户端。
进一步地,所述VTEP邻接信息变更包括以下之一者:VTEP客户端注册、VTEP客户端注销以及VTEP客户端老化。
进一步地,所述VTEP客户端注册或注销的过程包括:所述VTEP客户端获取所述VTEP服务器的IP地址;所述VTEP客户端发送注册请求报文或注销请求报文到所述VTEP服务器;所述VTEP服务器判断满足注册或注销条件,以及从所述注册请求报文或所述注销请求报文中提取VTEP信息更新存储;以及所述VTEP服务器向所述VTEP客户端发送注册成功响应或注销成功响应。
进一步地,所述注册或注销条件包括请求报文合法性以及注册或注销环境。
进一步地,当新VTEP客户端向所述VTEP服务器注册时,所述VTEP服务器向该新VTEP客户端批量同步VTEP邻接信息;以及所述VTEP服务器向所述VXLAN中已注册的VTEP客户端增量同步VTEP邻接信息。
进一步地,判断VTEP客户端老化的过程包括:当所述VTEP服务器在预定时间未接收到所述VTEP客户端的校验报文时,判断该VTEP客户端老化,以及将该VTEP客户端的VTEP邻接从存储中删除。
进一步地,当有VTEP客户端注销或老化删除时,所述VTEP服务器向所述VXLAN中已注册的VTEP客户端增量同步VTEP邻接信息。
本发明的另一个方面,提供了一种虚拟可扩展局域网(VXLAN)VXLAN隧道终端(VTEP)邻接学习的装置,该装置具有VTEP客户端模式和VTEP服务器模式,该装置包括:管理模块,被配置成在所述VTEP客户端模式下,管理VTEP服务器地址、VTEP本端地址以及VXLAN配置信息,以及当VTEP启动或配置改变时,触发向所述VTEP服务器的注册或注销;以及该管理模块,被配置成在所述VTEP服务器模式下,管理VTEP本端地址以及VXLAN配置信息,以及处理VTEP客户端的注册或注销请求;
存储模块,被配置成在所述VTEP客户端模式下,保存VTEP邻接信息、VTEP服务器配置、VTEP本端地址及VXLAN配置的数据库;以及该存储模块,被配置成在所述VTEP服务器模式下,用于保存VTEP邻接信息、VTEP本端地址及VXLAN配置的数据库;
发送模块,被配置成在所述VTEP客户端模式下,发送以下之一者:注册报文、注销报文以及校验报文;以及该发送模块,被配置成在所述VTEP服务器模式下,发送以下之一者:注册响应报文、注销响应报文、校验响应报文以及VTEP邻接同步报文;
接收模块,被配置成在所述VTEP客户端模式下,接收以下之一者:注册响应报文、注销响应报文、校验响应报文以及VTEP邻接同步报文;以及该接收模块,被配置成在所述VTEP服务器模式下,接收以下之一者:注册报文、注销报文以及校验报文;以及
同步模块,被配置成在所述VTEP客户端模式下,处理VTEP邻接同步报文,提取VTEP邻接信息保存在所述存储模块,以及当定时器超时时,读取所述存储模块中的VTEP邻接信息并计算VTEP校验码,然后通过所述发送模块发往所述VTEP服务器;以及该同步模块,被配置成在所述VTEP服务器模式下,当所述VTEP服务器收到包含所述VTEP校验码的VTEP校验报文时,提取所述存储模块中的VTEP邻接信息进行校验计算,并通过所述发送模块发送校验结果给所述VTEP客户端,以及当所述校验结果为不一致时,发起VTEP邻接同步。
进一步地,所述装置还包括:老化模块,被配置成当在预定时间内未收到VTEP客户端发送的VTEP邻接同步报文时,判断该VTEP客户端VTEP邻接老化,以及触发VTEP同步。
通过上述技术方案,在VXLAN网络环境下通过VTEP服务器和VTEP客户端两种角色的报文交互,实现了VTEP邻接的快速学习,无需再通过VXLAN终端用户数据报文来触发VTEP邻接的学习,或者通过手动静态配置VTEP邻接,弥补了现有技术中VTEP邻接学习被动、不及时、效率低且收敛慢、配置复杂、难于管理的缺点。同时,由于VTEP学习提升到了设备的控制面,所有的VTEP都知道到彼此的邻接关系,使得VXLAN广播可以通过头端复制的方法实现泛洪,从而摆脱IP组播的依赖(VXLAN网络环境下,未知名单播、组播、广播报文通过IP组播的方式泛洪转发),降低了VXLAN对基础网络的指标要求,提升了VXLAN网络的适应性和可靠性。
本发明的其它特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明,但并不构成对本发明的限制。在附图中:
图1是VXLAN网络组成示意图;
图2是本发明实施方式提供的VXLANVTEP邻接学习的方法流程图;
图3是示例的VTEP注册流程示意图;
图4是示例的VTEP注册和注销TLV格式示意图;
图5是示例的VTEP校验流程示意图;
图6是示例的VTEP校验TLV格式示意图;
图7是示例的VTEP同步流程示意图;
图8是示例的VTEP同步TLV格式示意图;
图9是示例的VTEP注册同步流程示意图;
图10是示例的VXLAN网络中VTEP角色示意图;
图11是本发明实施方式提供的VTEP邻接学习的装置组成示意图;
图12是示例的VTEP邻接学习装置示意图。
具体实施方式
以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。
图2是本发明实施方式提供的VXLANVTEP邻接学习的方法流程图。如图2所示,本发明提供的虚拟可扩展局域网(VXLAN)VXLAN隧道终端(VTEP)邻接学习的方法,所述VXLAN包括VTEP服务器和VTEP客户端。本发明实施方式提供的技术方案中,可以将例如图1中的VTEPA、VTEPB以及VTEPC中的一者设置为VTEP服务器(例如,VTEPA),而将VXLAN中的其他VTEP设置为VTEP客户端(例如,VTEPB和VTEPC)。在不同的实施方式中,可以将VTEPB或VTEPC设置为VTEP服务器,而将其他的VTEP设置为VTEP客户端。所述VTEP服务器存储VTEP邻接信息,该方法包括:S10,当所述VTEP服务器确定存储的VTEP邻接信息变更或校验所述VTEP客户端与所述VTEP服务器的VTEP邻接信息不一致时,所述VTEP服务器向所述VTEP客户端同步所述VTEP服务器存储的VTEP邻接信息;以及S20,所述VTEP客户端存储从所述VTEP服务器同步的VTEP邻接信息。
通过上述技术方案,在VXLAN网络环境下通过VTEP服务器和VTEP客户端两种角色的报文交互,实现了VTEP邻接的快速学习,无需再通过VXLAN终端用户数据报文来触发VTEP邻接的学习,或者通过手动静态配置VTEP邻接,弥补了现有技术中VTEP邻接学习被动、不及时、效率低且收敛慢、配置复杂、难于管理的缺点。同时,由于VTEP学习提升到了设备的控制面,所有的VTEP都知道到彼此的邻接关系,使得VXLAN广播可以通过头端复制的方法实现泛洪,从而摆脱IP组播的依赖,降低了VXLAN对基础网络的指标要求,提升了VXLAN网络的适应性和可靠性。
在实施方式中,该方法还可以包括关闭VTEP基于数据平面的VTEP邻接自动学习功能。
图3是示例的VTEP注册流程示意图。如图3所示,VTEP客户端注册或注销的过程可以以步骤S201-S207进行。在实际的实施过程中,所使用的报文(例如注册报文)可以由ISIS(IntermediateSystemtoIntermdiateSystem,中间系统到中间系统)LSP(LinkStateProtocolDateUnit,链路状态协议数据单元)报文、ICMP(InternetControlMessageProtocol,Internet控制报文协议)报文或其它网络协议报文来实现,具体的实现协议不限制。
S201:VTEP客户端获取数据库中VTEP服务器的IP地址。
S202:VTEP客户端发送注册请求报文到VTEP服务器。
封装构造注册请求报文,报文中至少包含一个TLV(TypeLengthValue,类型长度值),用于携带VTEP信息。本申请实施例中,可以新定义一种TLV类型,用于携带VTEP注册信息。
图4是示例的VTEP注册和注销TLV格式示意图。如图4所示,该新型TLV包括以下字段:
Type(类型)字段:用于表示本TLV的类型,当该字段设置为特定的值时,表示本TLV类型用于携带VTEP注册或注销信息的TLV类型,例如,该特定的值可以是1001,该字段的长度可以是2个字节。
Length(长度)字段:用于携带Value字段的长度,该字段的长度可以是2个字节。
Value字段:用于携带VTEP注册信息,该字段的长度可以是12个字节。
其中,Value字段又包含:
Resv1:保留字段,此处可以置0。
VXLANVNI:VXLAN网络标识,每个VXLAN的VTEP邻接表都是独立的。
VTEPIPAddress:VTEPIP地址,即VXLAN隧道中本端的IP地址,用于唯一标识该VTEP,通常该地址为Loopback口(回环口)地址。
ErrorCode:异常代码,其中,不同的异常代码代表不同的意思,例如,该特定的值是1时可以表示注册或注销信息不合法(例如,请求报文中Regitstercode或VTEPIP地址非法),该特定的值是2时表示可以注册或注销的环境不具备(例如,设备未初始化完成或由于设备本身的限制,暂不受理注册)。
RegisterCode:注册代码,其中,不同注册代码可以代表不同的意思。例如,该特定的值是1时可以表示VTEP客户端向VTEP服务器注册;该特定的值是2时可以表示VTEP客户端向VTEP服务器注销;该特定的值是3时可以表示VTEP服务器向VTEP客户端响应注册成功;该特定的值是4时可以表示VTEP服务器向VTEP客户端响应注册失败;该特定的值是5时可以表示VTEP服务器向VTEP客户端响应注销成功;该特定的值是6时可以表示VTEP服务器向VTEP客户端响应注销失败。
其中,在构造VTEP注册请求报文时,其中:
RegisterCode(注册代码):此处可以指定特定的值是1时表示VTEP客户端向VTEP服务器注册。
ErrorCode:异常代码,此处可以置0。
S203:VTEP服务器收到注册请求报文判断是否可以注册。VTEP服务器收取VTEP注册请求报文,判断注册请求报文的合法性,同时也判断注册环境是否满足,若是,则执行S205,若否,则执行S204。
S204:VTEP服务器返回注册失败响应报文给VTEP客户端。注册失败响应报文和注册请求报文格式可以是基本一致,如图4所示,其中:
RegisterCode:注册代码,此处,该特定的值是4时表示VTEP服务器向VTEP客户端响应注册失败。
ErrorCode:异常代码,其中,不同的异常代码代表不同的意思,例如,该特定的值是1时表示注册信息不合法,该特定的值是2时表示注册的环境不具备。
S205:VTEP服务器提取VTEP注册信息存数据库。提取注册报文中的VTEP信息,存储至本地的数据库,其中VNI与数据库一一对应,即,注册的VTEP存储在指定VXLAN所在的数据库中,每个VXLAN的VTEP都是相互独立的。
S206:VTEP服务器向VTEP客户端发送注册成功响应报文。注册成功响应报文和注册报文格式可以是基本一致,如图4所示,其中:
RegisterCode:注册代码,此处,该特定的值是3时表示VTEP服务器向VTEP客户端响应注册成功。
ErrorCode:异常代码,此处可以置0。
S207:VTEP客户端注册完毕,触发VTEP同步,具体方法见随后的描述。VTEP注销过程与VTEP注册过程一致,此处不再重复描述。
在实施方式中,校验所述VTEP客户端与所述VTEP服务器的VTEP邻接信息可以包括:所述VTEP客户端根据存储的VTEP邻接信息计算第一校验码;所述VTEP客户端将所述第一校验码封装成校验报文并发送至所述VTEP服务器;所述VTEP服务器根据所存储的VTEP邻接信息计算第二校验码,以及将所述第一校验码与所述第二校验码相比较以进行校验;以及所述VTEP服务器将校验结果发回所述VTEP客户端。
图5是示例的VTEP校验流程示意图。如图5所示,在实施方式中所述VTEP服务器与所述VTEP客户端间VTEP校验可以以步骤S401-S406进行。
S401:VTEP客户端定时计算本地数据库中VTEP邻接信息校验码。VTEP客户端定时计算本地数据库中的VTEP邻接信息校验码,例如,定时的长度可以是1分钟或可配置指定,作为举例的计算的方法可以是将数据库中指定VXLAN下的所有的VTEP邻接做MD5计算。
S402:VTEP客户端将校验信息发送至VTEP服务器。VTEP客户端封装构造校验报文,报文中包含至少一个TLV(TypeLengthValue,类型长度值),用于携带VTEP信息。本申请实施例中,可以新定义一种TLV类型,用于携带VTEP同步校验信息。
图6是示例的VTEP校验TLV格式示意图。如图6所示,该新型TLV包括以下字段:
Type(类型)字段:用于表示本TLV的类型,当该字段设置为特定的值时,表示本TLV类型用于携带VTEP邻接同步校验的TLV类型,例如,该特定的值可以是1003,该字段的长度可以是2个字节。
Length(长度)字段:用于携带Value(值)字段的长度,该字段的长度可以是2个字节。
Value(值)字段:用于携带VTEP同步校验信息,该字段的长度可以是8个字节。
其中,Value(值)字段又包含:
Resv1:待扩展保留字段,此处可以置0。
VXLANVNI:VXLAN网络标识。
VTEPIPAddress(VTEPIP地址):VTEP客户端IP地址,即VXLAN隧道中本端的IP地址,用于唯一标识该VTEP。
ErrorCode(异常代码):此处可以设置为0,表示无异常。
CheckCode(校验代码):不同校验代码可以代表不同的含义,例如,该特定的值是1时可以表示VTEP客户端向VTEP服务器校验,该特定的值是2时可以表示VTEP服务器向VTEP客户端响应VTEP校验成功,该特定的值是3时可以表示VTEP服务器向VTEP客户端响应VTEP校验失败。此处举例为VTEP客户端向VTEP服务器发起校验,故校验代码的值可以是1。
VTEPCheckSum(VTEP校验和):计算本地数据库中VTEP信息校验码,计算的方法可以是将数据库中指定VXLAN下所有的VTEP做MD5计算。
S403:VTEP服务器收到VTEP同步校验报文后,校验VTEP是否一致。在该步骤中,VTEP服务器使用本地数据库中的VTEP信息生成校验码,与收到的校验码进行比对,判断校验码是否一致,若是,则执行S404,若否,则执行S405。
S404:VTEP服务器发送校验成功结果给VTEP客户端。其中,VTEP校验结果报文可以和VTEP同步校验报文基本一致,如图6所示,其中:
CheckCode(校验代码):该特定的值是2时表示VTEP校验成功。
ErrorCode(异常代码):此处可以置0,表示无异常。
S405:VTEP服务器发送校验失败结果给VTEP客户端。其中,VTEP校验结果报文可以和VTEP同步校验报文基本一致,如图6所示,其中:
CheckCode(校验代码):该特定的值是3时可以表示VTEP校验失败。
ErrorCode(异常代码):此处可以置0,表示无异常。
S406:VTEP校验失败,触发VTEP同步,具体方法见随后的描述。另外,VTEP校验报文可作为VTEP客户端与VTEP服务器的保活报文,当VTEP服务器在指定时间内未收到VTEP客户端的保活报文,则将该VTEP客户端老化删除。
在实施方式中,所述VTEP邻接信息变更可以包括以下之一者:VTEP客户端注册、VTEP客户端注销以及VTEP客户端老化。其中,所述VTEP客户端注册或注销的过程可以包括:所述VTEP客户端获取所述VTEP服务器的IP地址;所述VTEP客户端发送注册请求报文或注销请求报文到所述VTEP服务器;所述VTEP服务器判断满足注册或注销条件,以及从所述注册请求报文或所述注销请求报文中提取VTEP信息(即VTEP客户端的IP地址,在注册或注销报文中携带)更新存储;以及所述VTEP服务器向所述VTEP客户端发送注册成功响应或注销成功响应。在实施方式中,所述注册或注销条件包括请求报文合法性以及注册或注销环境(当设备启动或配置变更时启动注册,设备配置变更时启动注销)。
在本发明的实施方式中,当有新的VTEP客户端注册、VTEP客户端注销、VTEP客户端超时老化时,或者VTEP邻接同步校验失败时,会触发VTEP的同步,具体过程如图7中步骤S601-S607所示。
S601:VTEP客户端注册、注销或老化删除时,VTEP同步校验失败时,触发VTEP邻接同步事件。
S602:判断事件是否为VTEP同步校验失败?如果是,则执行S605然后执行S607,其中,S605中所指定的VTEP客户端为校验失败的VTEP客户端,反之,则执行S603。
S603:判断事件是否为新VTEP客户端注册?如果是,则执行S605和S606然后执行S607,反之,则执行S604。其中,此处S605中所指定的VTEP客户端为新注册的VTEP客户端,S606所指定的VTEP客户端为之前已注册的所有VTEP客户端。
S604:判断事件为VTEP客户端注销或老化,执行S606,其中,S606中所指定的VTEP客户端为所有VTEP客户端。
S605:VTEP服务器向指定的VTEP客户端批量同步VTEP邻接信息。
VTEP服务器封装构造VTEP同步报文,报文中至少包含一个TLV(TypeLengthValue,类型长度值),用于携带VTEP信息。本申请实施例中,可以新定义一种TLV类型,用于携带VTEP同步信息。
图8是示例的VTEP同步TLV格式示意图,如图8所示,该新型TLV可以包括以下字段:
Type(类型)字段:用于表示本TLV的类型,当该字段设置为特定的值时,表示本TLV类型用于携带VTEP同步信息的TLV类型,例如,该特定的值可以是1002,该字段的长度可以是2个字节。
Length(长度)字段:用于携带Value字段的长度,该字段的长度可以是2个字节。
Value字段:用于携带VTEP同步信息,该字段的长度可以是16个字节,该字段的长度随携带VTEP信息数量而定,其中每个VTEP邻接信息可以占据4个字节,即该字段为12+4×N,其中N是指VTEP邻接的数量。
其中,Value字段又可以包含:
Resv1:待扩展保留字段,此处可以置0。
VXLANVNI:VXLAN网络标识。
VTEPIPAddress:VTEP客户端IP地址。
Resv2:待扩展保留字段,此处可以置0。
OperationCode(操作代码):其中,不同操作代码可以代表不同的意思,例如,该特定的值是1时表示VTEP邻接同步开始,该特定的值是2时可以表示VTEP邻接同步结束,该特定的值是3时可以表示VTEP邻接增加,该特定的值是4时可以表示VTEP邻接删除。
VTEP客户端注册或同步校验失败时,VTEP服务器会向对应VTEP客户端发送VTEP邻接同步报文,VTEP邻接同步可以分为3个阶段:
阶段1:VTEP批量同步开始报文,其中OperationCode可以是特定的值是1时表示VTEP同步开始。
阶段2:VTEP增量同步报文,其中OperationCode可以是特定的值是3时表示VTEP邻接增加,当VTEP邻接信息比较多时,可以拆分成多个TLV分批发送。
阶段3:VTEP批量同步结束报文,其中OperationCode可以是特定的值是2时表示VTEP同步结束。
以上VTEP批量同步3个阶段对应的TLV的可以在分割的3个报文中分别携带,也可以是3个TLV放在同一个或多个报文中,但其顺序不得改变,即,阶段1的TLV放在前面,阶段3的TLV放在最后面。
S606:VTEP服务器向指定的VTEP客户端增量同步VTEP邻接信息。VTEP服务器封装构造VTEP同步报文,向指定的VTEP客户端增量同步VTEP邻接信息,其中,增量可以包括增加或减少。
VTEP增量同步仅包含一个阶段,即:
OperationCode可以是特定的值是3时表示VTEP邻接增加,当VTEP邻接信息比较多时,可以拆分成多个TLV分批发送。
OperationCode可以是特定的值是4时表示VTEP邻接减少,当VTEP邻接信息比较多时,可以拆分成多个TLV分批发送。
S607:VTEP客户端收到VTEP同步信息,将VTEP邻接存储至数据库中。VTEP客户端收到VTEP同步报文,将VTEP信息存储在数据库中,其中VNI与数据库一一对应,若是批量同步报文,则根据同步报文中的开始和结束标志清除多余或残留的VTEP信息。举例的操作如下,其中数据库中每条VTEP邻接记录都带有一个dirty(脏)位,置为TRUE,则表示此条记录是脏的(脏的表示与服务端不同步的、不正常的记录),置为FALSE则表示此条记录是正常的,新建的VTEP邻接记录的初始状态都是FALSE:
1.当同步开始时,将所有记录都置为脏的状态;
2.每同步一条记录,都把对应的dirty置为FALSE,表示这条记录是正常的或已经同步过的;
3.在同步过程中,每解析出一个VTEP邻接,就把VTEP邻接存储至数据库。若此时数据库中该VTEP邻接已存在,则将其dirty位置为FALSE,反之,即新创建一个VTEP邻接记录,新建记录中dirty位置为FALSE;
4.当同步结束时,检查数据库中的VTEP邻接,将状态还是dirty的VTEP邻接记录删除。在同步结束时,若某条记录的dirty位还处理TRUE状态,则说明此条记录是脏的或多余的,需要将其删除。
经过上述1-4步,可以实现VTEP邻接数据库同步。
在上述实施方式中,当新VTEP客户端向所述VTEP服务器注册时,所述VTEP服务器向该新VTEP客户端批量同步VTEP邻接信息;以及所述VTEP服务器向所述VXLAN中已注册的VTEP客户端增量同步VTEP邻接信息。
在上述实施方式中,判断VTEP客户端老化的过程包括:当所述VTEP服务器在预定时间未接收到所述VTEP客户端的校验报文时,判断该VTEP客户端老化,以及将该VTEP客户端的VTEP邻接从存储中删除。然后,当有VTEP客户端注销或老化删除时,所述VTEP服务器向所述VXLAN中已注册的VTEP客户端增量同步VTEP邻接信息。
图9是示例的VTEP注册同步流程示意图。如图9所示,其示出了结合VTEP客户端注册VTEP邻接同步过程另一动态流程步骤S301-S310,其中:
S301:VTEP客户端发送VTEP注册报文。
S302:VTEP服务器接收到VTEP注册报文,判断注册报文是否合法、注册环境是否具备,如果是,则执行S305,如果否,则执行S303。
S303:VTEP服务器发送注册失败响应报文。
S304:VTEP客户端接收注册失败响应报文,定时重注册。
S305:VTEP服务器发送注册成功响应报文。
S306:VTEP客户端接收注册成功响应报文。
S307:VTEP服务器向注册的VTEP客户端发送VTEP同步报文。
S308:VTEP客户端处理同步报文,将VTEP邻接信息存储在数据库中。
S309:VTEP服务器向其他VTEP邻接发送VTEP同步报文。
S310:其它VTEP邻接处理VTEP同步报文,将新增的VTEP邻接信息存储在数据库中,其中,VNI与数据库一一对应。
本发明的另一个方面,提供了一种虚拟可扩展局域网(VXLAN)VXLAN隧道终端(VTEP)邻接学习的装置。本发明的原理是将VXLAN网络中的VTEP分为VTEP服务器和VTEP客户端两种角色。图10是示例的VXLAN网络中VTEP角色示意图。VXLAN网络部署可以如图10所示包括:
VTEP服务器、IP网络设备、VTEP客户端,其中:VTEP服务器503,可以用于提供VTEP邻接的注册、校验、同步,一个VXLAN网络可以指定一台VTEP为VTEP服务器,VTEP服务器本身也是一个VTEP邻接,VTEP服务器中有一张VTEP邻接信息表,该表中保存了该VXLAN下所有VTEP信息。
IP网络设备502,用于报文的传输,使得VXLANVTEP学习的各种报文可以通过该报文实现转输,该设备可是路由器、交换机或其他网络设备。
VTEP客户端501,作为VXLAN隧道终端,该装置上需配置VTEP服务器地址(例如,IP地址)。当VTEP客户端启动时或配置变更时(例如,VXLAN创建或删除时,VTEP服务器地址变更切换),会向VTEP服务器发起注册或注销。当VTEP客户端接收到VTEP服务器发送的同步报文时,解析同步报文中的VTEP邻接信息存储在本地数据库中。VTEP客户端会定时计算本地数据库中的VTEP邻接信息,封装发送VTEP校验报文到VTEP服务器,以实现服务器和客户端的邻接信息一致。
图11是本发明实施方式提供的VTEP邻接学习的装置组成示意图。如图11所示,本发明实施方式提供的VTEP邻接学习的装置中可以包括以下模块:管理模块101、存储模块102、发送模块103、接收模块104、同步模块105,该装置具有VTEP客户端模式和VTEP服务器模式,其中:
管理模块101,在VTEP客户端模式下,用于管理VTEP服务器地址、VTEP本端地址及VXLAN配置信息,当VTEP启动或配置发生改变时,触发向VTEP服务器的注册和注销;在VTEP服务器模式下,用于管理VTEP本端地址及VXLAN配置信息,处理VTEP客户端的注册与注销。
存储模块102,在VTEP客户端模式下,用于保存VTEP邻接信息、VTEP服务器配置、VTEP本端地址及VXLAN配置的数据库;在VTEP服务器模式下,用于保存VTEP邻接信息、VTEP本端地址及VXLAN配置的数据库。存储模块102还可以包含:配置存储单元、VTEP邻接存储单元。配置存储单元,用于存储VTEP服务器的地址、VTEP本端地址、VXLAN等配置。VTEP邻接存储单元,用于存储VXLAN网络的VTEP邻接信息,其中,每个VXLAN对应一个数据库。
发送模块103,在VTEP客户端模式下,用于发送注册或注销报文、校验报文;在VTEP服务器模式下,用于发送注册或注销响应报文、校验响应报文、VTEP邻接同步报文。
接收模块104,在VTEP客户端模式下,用于接收来自VTEP服务器发送的注册或注销响应报文、校验响应报文、VTEP邻接同步报文;在VTEP服务器模式下,用于接收来自VTEP客户端发送的注册或注销报文、校验报文。
同步模块105,用于处理VTEP邻接校验和同步。在VTEP客户端模式下,用于处理VTEP同步报文,提取VTEP邻接信息保存在存储模块102,当定时器超时时,读取存储模块102中的VTEP邻接信息并计算VTEP校验码,通过发送模块发往VTEP服务器;在VTEP服务器模式下,当VTEP服务器收到VTEP校验报文时,提取存储模块中的VTEP邻接信息做校验计算,并通过发送模块发送校验结果给VTEP客户端,如果计算结果与校验报文的校验码不一致,则发起VTEP邻接同步。
图12是示例的VTEP邻接学习装置示意图。如图12所示,本发明实施方式提供的VXLANVTEP邻接学习装置中还可以包括以下模块:老化模块106,其中:
老化模块106:用于实现VTEP邻接信息的老化删除管理,当有VTEP邻接老化时,触发VTEP同步。老化模块106可以在指定的时间内判断是否收到VTEP客户端发送的保活报文来判断VTEP邻接的状态:若是,则认为VTEP邻接是存活的。若否,则认为VTEP邻接是不可达的,老化删除该VTEP邻接,触发VTEP邻接表更新和同步。
通过上述技术方案,实现了一种VXLANVTEP快速学习的方法,解决了通过数据面学习VTEP邻接学习被动、不及时、效率低的问题,同时也解决了通过静态配置VTEP邻接带来的运营管理复杂、效率低的问题。实现了一种VXLANVTEP邻接学习的装置,该装置应用上述提到的VTEP学习方法,有效提高VTEP的学习效率和准确性。交换机的基本任务是处理和转发交换机各不同端口上各种类型的数据,L2/L3/ACL/QOS/组播/安全防护等各种具体的数据处理转发过程,都属于交换机数据面的任务范畴。交换机的控制平面用于控制和管理所有网络协议的运行。控制面提供了数据平面数据处理转发前所必须的各种网络信息和转发查询表项。通过本发明提供的技术方案,还将VXLANVTEP邻接的学习提升到了设备的控制面,所有的VTEP都知道到彼此的邻接关系,使得VXLAN广播可以通过头端复制的方法实现泛洪,从而摆脱IP组播的依赖,降低了VXLAN对基础网络的指标要求,提升了VXLAN网络的适应性和可靠性。在传统的VXLAN网络环境下,未知名单播、组播、广播报文通过IP组播的方式泛洪转发,本发明提供的技术方案,可使得VTEP之间都知道彼此的邻接关系,从而未知名单播、组播、广播报文的泛洪可以通过封装成VXLAN单播报文的方式逐一发往各个邻接,避免了对IP组播的依赖(通常在运营商的IP核心网未开启IP组播协议,因传统VXLAN依赖IP组播来实现报文泛烘,故传统VXLAN无法在此环境中运行)。上述技术方案可以在数据中心交换机、路由器中扩展应用。
以上结合附图详细描述了本发明的优选实施方式,但是,本发明并不限于上述实施方式中的具体细节,在本发明的技术构思范围内,可以对本发明的技术方案进行多种简单变型,这些简单变型均属于本发明的保护范围。
另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明对各种可能的组合方式不再另行说明。
此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明的思想,其同样应当视为本发明所公开的内容。
Claims (10)
1.一种虚拟可扩展局域网(VXLAN)VXLAN隧道终端(VTEP)邻接学习的方法,其特征在于,所述VXLAN包括VTEP服务器和VTEP客户端,所述VTEP服务器存储VTEP邻接信息,该方法包括:
当所述VTEP服务器确定存储的VTEP邻接信息变更或校验所述VTEP客户端与所述VTEP服务器的VTEP邻接信息不一致时,所述VTEP服务器向所述VTEP客户端同步所述VTEP服务器存储的VTEP邻接信息;以及
所述VTEP客户端存储从所述VTEP服务器同步的VTEP邻接信息。
2.根据权利要求1所述的方法,其特征在于,校验所述VTEP客户端与所述VTEP服务器的VTEP邻接信息包括:
所述VTEP客户端根据存储的VTEP邻接信息计算第一校验码;
所述VTEP客户端将所述第一校验码封装成校验报文并发送至所述VTEP服务器;
所述VTEP服务器根据所存储的VTEP邻接信息计算第二校验码,以及将所述第一校验码与所述第二校验码相比较以进行校验;以及
所述VTEP服务器将校验结果发回所述VTEP客户端。
3.根据权利要求1所述的方法,其特征在于,所述VTEP邻接信息变更包括以下之一者:VTEP客户端注册、VTEP客户端注销以及VTEP客户端老化。
4.根据权利要求3所述的方法,其特征在于,所述VTEP客户端注册或注销的过程包括:
所述VTEP客户端获取所述VTEP服务器的IP地址;
所述VTEP客户端发送注册请求报文或注销请求报文到所述VTEP服务器;
所述VTEP服务器判断满足注册或注销条件,以及从所述注册请求报文或所述注销请求报文中提取VTEP信息更新存储;以及
所述VTEP服务器向所述VTEP客户端发送注册成功响应或注销成功响应。
5.根据权利要求4所述的方法,其特征在于,所述注册或注销条件包括请求报文合法性以及注册或注销环境。
6.根据权利要求4所述的方法,其特征在于,所述VTEP服务器向所述VTEP客户端发送注册成功响应之后,所述VTEP服务器向该VTEP客户端批量同步VTEP邻接信息;以及
所述VTEP服务器向所述VXLAN中已注册的VTEP客户端增量同步VTEP邻接信息。
7.根据权利要求2所述的方法,其特征在于,判断VTEP客户端老化的过程包括:
当所述VTEP服务器在预定时间未接收到所述VTEP客户端的校验报文时,判断该VTEP客户端老化,以及将该VTEP客户端的VTEP邻接从存储中删除。
8.根据权利要求4或7所述的方法,其特征在于,在所述VTEP客户端发送注销请求报文到所述VTEP服务器或当所述VTEP服务器判断VTEP客户端老化时,所述VTEP服务器向所述VXLAN中已注册的VTEP客户端增量同步VTEP邻接信息。
9.一种虚拟可扩展局域网(VXLAN)VXLAN隧道终端(VTEP)邻接学习的装置,用于实现根据权利要求1-8中任一项所述的方法,其特征在于,该装置具有VTEP客户端模式和VTEP服务器模式,该装置包括:
管理模块,被配置成在所述VTEP客户端模式下,管理VTEP服务器地址、VTEP本端地址以及VXLAN配置信息,以及当VTEP启动或配置改变时,触发向所述VTEP服务器的注册或注销;以及
该管理模块,被配置成在所述VTEP服务器模式下,管理VTEP本端地址以及VXLAN配置信息,以及处理VTEP客户端的注册或注销请求;
存储模块,被配置成在所述VTEP客户端模式下,保存VTEP邻接信息、VTEP服务器配置、VTEP本端地址及VXLAN配置的数据库;以及
该存储模块,被配置成在所述VTEP服务器模式下,用于保存VTEP邻接信息、VTEP本端地址及VXLAN配置的数据库;
发送模块,被配置成在所述VTEP客户端模式下,发送以下之一者:注册报文、注销报文以及校验报文;以及
该发送模块,被配置成在所述VTEP服务器模式下,发送以下之一者:注册响应报文、注销响应报文、校验响应报文以及VTEP邻接同步报文;
接收模块,被配置成在所述VTEP客户端模式下,接收以下之一者:注册响应报文、注销响应报文、校验响应报文以及VTEP邻接同步报文;以及
该接收模块,被配置成在所述VTEP服务器模式下,接收以下之一者:注册报文、注销报文以及校验报文;以及
同步模块,被配置成在所述VTEP客户端模式下,处理VTEP邻接同步报文,提取VTEP邻接信息保存在所述存储模块,以及当定时器超时时,读取所述存储模块中的VTEP邻接信息并计算VTEP校验码,然后通过所述发送模块发往所述VTEP服务器;以及
该同步模块,被配置成在所述VTEP服务器模式下,当所述VTEP服务器收到包含所述VTEP校验码的VTEP校验报文时,提取所述存储模块中的VTEP邻接信息进行校验计算,并通过所述发送模块发送校验结果给所述VTEP客户端,以及当所述校验结果为不一致时,发起VTEP邻接同步。
10.根据权利要求9所述的装置,其特征在于,所述装置还包括:
老化模块,被配置成当在预定时间内未收到VTEP客户端发送的VTEP邻接同步报文时,判断该VTEP客户端VTEP邻接老化,以及触发VTEP同步。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510665053.XA CN105391612B (zh) | 2015-10-15 | 2015-10-15 | 一种vxlan vtep邻接学习的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510665053.XA CN105391612B (zh) | 2015-10-15 | 2015-10-15 | 一种vxlan vtep邻接学习的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105391612A true CN105391612A (zh) | 2016-03-09 |
CN105391612B CN105391612B (zh) | 2018-09-11 |
Family
ID=55423464
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510665053.XA Active CN105391612B (zh) | 2015-10-15 | 2015-10-15 | 一种vxlan vtep邻接学习的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105391612B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106130819A (zh) * | 2016-07-04 | 2016-11-16 | 锐捷网络股份有限公司 | Vtep异常的检测方法及装置 |
CN106230667A (zh) * | 2016-09-30 | 2016-12-14 | 锐捷网络股份有限公司 | Vtep保活检测方法及装置 |
CN106656722A (zh) * | 2016-12-12 | 2017-05-10 | 杭州迪普科技股份有限公司 | 一种vxlan组播方法和装置 |
CN109347717A (zh) * | 2018-09-26 | 2019-02-15 | 新华三技术有限公司 | Vxlan隧道切换方法及装置 |
CN110048925A (zh) * | 2018-01-15 | 2019-07-23 | 厦门靠谱云股份有限公司 | 一种基于开源EVPN的IaaS OverLay控制平面实现方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3070887B1 (en) * | 2013-12-11 | 2017-08-09 | Huawei Technologies Co., Ltd. | Communication method, device and system for virtual extensible local area network |
CN104243318B (zh) * | 2014-09-29 | 2018-10-09 | 新华三技术有限公司 | Vxlan网络中的mac地址学习方法及装置 |
CN104243630B (zh) * | 2014-09-29 | 2017-10-03 | 新华三技术有限公司 | Vxlan网络中的mac地址学习方法及装置 |
CN104683152B (zh) * | 2015-03-05 | 2018-10-26 | 新华三技术有限公司 | Vxlan报文处理方法以及装置 |
-
2015
- 2015-10-15 CN CN201510665053.XA patent/CN105391612B/zh active Active
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106130819A (zh) * | 2016-07-04 | 2016-11-16 | 锐捷网络股份有限公司 | Vtep异常的检测方法及装置 |
CN106130819B (zh) * | 2016-07-04 | 2019-10-25 | 锐捷网络股份有限公司 | Vtep异常的检测方法及装置 |
CN106230667A (zh) * | 2016-09-30 | 2016-12-14 | 锐捷网络股份有限公司 | Vtep保活检测方法及装置 |
CN106230667B (zh) * | 2016-09-30 | 2019-08-20 | 锐捷网络股份有限公司 | Vtep保活检测方法及装置 |
CN106656722A (zh) * | 2016-12-12 | 2017-05-10 | 杭州迪普科技股份有限公司 | 一种vxlan组播方法和装置 |
CN110048925A (zh) * | 2018-01-15 | 2019-07-23 | 厦门靠谱云股份有限公司 | 一种基于开源EVPN的IaaS OverLay控制平面实现方法 |
CN110048925B (zh) * | 2018-01-15 | 2021-07-06 | 厦门靠谱云股份有限公司 | 一种基于开源EVPN的IaaS OverLay控制平面实现方法 |
CN109347717A (zh) * | 2018-09-26 | 2019-02-15 | 新华三技术有限公司 | Vxlan隧道切换方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105391612B (zh) | 2018-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9819511B2 (en) | Bidirectional forwarding detection over a virtual extensible local area network | |
CN101179566B (zh) | 一种防御arp报文攻击的方法和装置 | |
CN108259299B (zh) | 一种转发表项生成方法、装置及机器可读存储介质 | |
CN105391612A (zh) | 一种vxlan vtep邻接学习的方法及装置 | |
CN104243630B (zh) | Vxlan网络中的mac地址学习方法及装置 | |
CN101764751B (zh) | 无线用户终端跨vlan漫游报文转发的方法、系统及设备 | |
CN108259215B (zh) | 一种设备管理方法及装置 | |
CN106878288B (zh) | 一种报文转发方法及装置 | |
CN104243318A (zh) | Vxlan网络中的mac地址学习方法及装置 | |
CN103166849B (zh) | IPSec VPN互联组网路由收敛的方法及路由设备 | |
CN106878181A (zh) | 一种报文传输方法和装置 | |
CN103974380A (zh) | 一种终端接入位置保活的方法及装置 | |
US20160080318A1 (en) | Dynamic host configuration protocol release on behalf of a user | |
US20160212008A1 (en) | Bidirectional Forwarding Detection Over Network Virtualization Using Generic Routing Encapsulation | |
CN103631652A (zh) | 虚拟机迁移的实现方法及系统 | |
CN102055642A (zh) | 一种数据报文转换方法 | |
CN103685007B (zh) | 一种边缘设备报文转发时的mac学习方法及边缘设备 | |
CN103096300B (zh) | 基站虚拟局域网识别号自动获取方法及系统 | |
CN104734952A (zh) | 一种数据报文转发方法以及装置 | |
CN106231002A (zh) | 一种维护arp表的方法及装置 | |
US9893979B2 (en) | Network topology discovery by resolving loops | |
CN112887312B (zh) | 一种慢协议报文处理方法及相关装置 | |
CN100493073C (zh) | 不同链路层隔离域的邻居发现实现方法 | |
WO2017101028A1 (zh) | 数据传输方法、m2m服务器、pgw、sgw及服务网络节点 | |
CN108768845B (zh) | 一种多归属主机路由同步方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |