Vxlan的实现方法,网络设备和通信系统

文档序号:1589696 发布日期:2020-01-03 浏览:12次 >En<

阅读说明:本技术 Vxlan的实现方法,网络设备和通信系统 (VXLAN implementation method, network equipment and communication system ) 是由 于斌 于 2018-06-26 设计创作,主要内容包括:公开了一种VXLAN的实现方法,网络设备和通信系统,用以降低VXLAN在园区网中的总体部署代价。该方法包括:网络设备获得虚拟局域网标识VLAN ID到VXLAN网络标识符VNI的映射;所述网络设备用端口接收接入设备转发的以太网帧,所述以太网帧的VLAN标签字段中包括所述VLAN ID;所述网络设备根据所述VLAN ID和所述映射在所述以太网帧上添加VXLAN头以得到VXLAN报文,所述VXLAN头中的VNI字段包括所述VNI;所述网络设备发送所述VXLAN报文。(A VXLAN implementation method, network device and communication system are disclosed for reducing the overall deployment cost of VXLAN in a campus network. The method comprises the following steps: the network equipment obtains the mapping from the virtual local area network identifier VLAN ID to the VXLAN network identifier VNI; the network equipment receives an Ethernet frame forwarded by access equipment through a port, wherein a VLAN label field of the Ethernet frame comprises the VLAN ID; adding a VXLAN header to the Ethernet frame by the network equipment according to the VLAN ID and the mapping to obtain a VXLAN message, wherein a VNI field in the VXLAN header comprises the VNI; and the network equipment sends the VXLAN message.)

VXLAN的实现方法,网络设备和通信系统

技术领域

本申请涉及计算机及通信技术领域,尤其涉及一种可扩展虚拟局域网(VirtualExtensible Local Area Network,VXLAN)的实现方法、一种网络设备及一种通信系统。

背景技术

在VXLAN中,实现封装或者解封装VXLAN报文功能的设备被称为VXLAN隧道端点(VXLAN tunnel end point,VTEP)。VTEP将二层报文封装在传输层协议(例如,用户数据报协议(User Datagram Protocol,UDP))报文中以实现VXLAN报文封装。VTEP可以是服务器,也可以是网络设备(例如,交换机或路由器)。

在园区网中,终端设备一般不支持VXLAN,因此由接入设备实现VTEP的功能。然而,园区网中的接入设备的数量多。如果所有接入设备都要支持VXLAN,则园区网的总体部署代价过高。

发明内容

本申请提供一种VXLAN的实现方法,用以降低VXLAN在园区网中的总体部署代价。

第一方面,提供了一种VXLAN的实现方法,包括:网络设备获得虚拟局域网(Virtual Local Area Network,VLAN)标识(identifier,ID)到VXLAN网络标识符VNI的映射。所述网络设备用端口接收接入设备转发的以太网帧。所述以太网帧的VLAN标签字段中包括所述VLAN ID。所述网络设备根据所述VLAN ID和所述映射在所述以太网帧上添加VXLAN头以得到VXLAN报文。所述VXLAN头中的VNI字段包括所述VNI。所述网络设备发送所述VXLAN报文。

本申请中VTEP设备是与接入设备连接的网络设备,即VTEP设备是相比接入设备离终端设备更远的设备。离终端设备更远的设备的数量一般也更少。在该方案中接入设备无需支持VXLAN,只需要数量较少的网络设备支持VXLAN即可,可以沿用园区网中的大量不支持VXLAN的接入设备,因此在园区网中VXLAN技术的部署代价较低。然而,由于网络设备与终端设备不直接相连,难以直接为以太网帧选择VNI。因此,由接入设备为来自终端设备的以太网帧选择VLAN ID,而网络设备保存VLAN ID到VNI的映射。网络设备从接入设备接收到以太网帧后,根据VLAN ID到VNI的映射在以太网帧上添加对应的VXLAN头以得到VXLAN报文,从而实现VXLAN。

如果接入设备作为认证点,网络设备不会在认证过程中得到认证服务器授权的VLAN ID。为了保证网络设备中以太网帧的正常转发,需要将网络设备中与接入设备连接的端口加入(join)通过接入设备访问网络的终端设备的授权VLAN,在实施过程中有多种具体加入方式。例如将网络设备的端口加入所有VLAN。

在第一方面的一种可能的实现方式中,提供了另一种网络设备将端口加入终端设备的授权VLAN的方式。具体地,所述方法还包括所述网络设备用所述端口接收来自所述接入设备的加入指示,所述加入指示包括所述VLAN ID。所述网络设备将所述端口加入所述VLAN ID所标识的VLAN。这种将网络设备的端口加入VLAN的方式能够控制广播域的范围,从而提升安全性。

在第一方面的另一种可能的实现方式中,所述加入指示为第一***标识分离协议(Locator/ID Separation Protocol,LISP)LISP报文。

可选地,所述第一LISP报文还携带第一报文类型指示符,所述第一报文类型指示符指示所述第一LISP报文包括所述VLAN ID。通过报文类型指示符,网络设备可以高效地识别出LISP报文的用途,或者说识别出LISP报文包含的信息的种类,以便于网络设备可以执行对应的处理。

在第一方面的另一种可能的实现方式中,所述方法还包括:所述网络设备用所述端口接收来自所述接入设备的第一认证报文,所述第一认证报文为请求者设备提供认证。所述网络设备记录第一认证报文中的请求者设备地址和所述端口的对应关系。所述网络设备接收来自于认证服务器的第二认证报文,所述第二认证报文包括所述请求者地址以及所述VLAN ID;所述网络设备根据记录的所述请求者地址和所述端口的对应关系、以及所述第二认证报文中的所述请求者地址和所述VLAN ID,将所述端口加入所述VLAN ID所标识的VLAN。这种方式实际上是将网络设备作为认证点设备,这样大量与终端设备更近的接入设备无需支持认证功能,因而可以采用更简单廉价的硬件实现,降低了部署成本。

在第一方面的另一种可能的实现方式中,所述网络设备向所述接入设备发送绑定指示,所述绑定指示包括所述请求者地址和所述VLAN ID。通过绑定指示,以便于接入设备将与终端设备连接的端口加入终端的授权VLAN,在后续终端设备发送的以太网帧中添加合适的VLAN ID。

可选地,上述第一认证报文是封装在第一LISP报文中的,所述第一LISP报文还携带第一报文类型指示符,所述第一报文类型指示符指示所述第一LISP报文携带认证报文。所述绑定指示是第二LISP报文,所述第二LISP报文中还包括第二报文类型指示符,所述第二报文类型指示符指示所述第二LISP报文包括所述终端设备的MAC地址和VLAN ID。

第二方面,提供了一种VXLAN的实现方法,包括:认证点设备获得认证服务器为通过认证的请求者设备分配的VLAN ID。所述认证点设备向VXLAN隧道终点VTEP设备发送LISP报文,所述LISP报文包括所述VLAN ID。认证点设备和VTEP设备分别由不同设备实现,例如认证点设备是接入设备,VTEP设备是与接入设备连接的网络设备。认证点设备在认证通过后将请求者设备的VLAN ID发送给VTEP设备,以便于VTEP设备将VTEP设备端口加入指定的VLAN ID,从而控制广播域范围,提升安全性。

在一种可能的实现方式中,所述方法还包括:所述认证点设备确定与所述请求者设备的MAC地址连接的端口。所述认证点设备将所述端口的缺省VLAN的值设置为所述VLANID。所述认证点设备用所述端口接收来自所述请求者设备的以太网帧;所述认证点设备根据所述端口的缺省VLAN,为所述以太网帧添加包括所述VLAN ID的VLAN标签后转发所述以太网帧。认证点设备在以太网帧VLAN标签中添加VLAN ID,以便于VTEP设备根据以太网帧VLAN标签中的VLAN ID获取映射的VNI,在以太网帧上添加VXLAN头,从而实现VXLAN。

在一种可能的实现方式中,所述LISP报文还包括报文类型指示符,所述报文类型指示符指示所述VTEP设备将接收所述LISP报文的端口加入所述VLAN ID所标识的VLAN。通过报文类型指示符,以便于网络设备可以高效地识别出LISP报文的用途,或者说识别出LISP报文包含的信息的种类,以便于网络设备可以执行对应的处理。

第三方面,还提供了一种VXLAN的实现方法,包括:接入设备用端口接收来自终端设备的认证报文,所述终端设备为认证的请求者设备。所述接入设备记录所述端口和所述认证报文中的请求者设备的MAC地址的对应关系。所述接入设备向网络设备发送所述认证报文,所述网络设备为认证点设备并且为VXLAN隧道终点VTEP设备。所述接入设备接收来自所述网络设备的绑定指示,所述绑定指示包括所述请求者设备的MAC地址和所述VLAN ID。所述接入设备根据所述对应关系以及所述绑定指示中的请求者设备的MAC地址,将所述端口的缺省VLAN的值设置为所述VLAN ID。在该方案中,与接入设备连接的网络设备同时作为认证点设备和VTEP设备,接入设备转发认证点设备和认证的请求者设备之间的认证报文,在认证通过后,接入设备根据绑定指示将与请求者设备连接的端口加入授权VLAN,以便于基于授权VLAN对请求者设备的访问进行控制。

在一种可能的实现方式中,所述方法还包括:所述接入设备用所述端口接收来自所述终端设备的以太网帧,所述以太网帧的源地址为所述请求者设备的MAC地址。所述接入设备根据所述端口的缺省VLAN,为所述以太网帧添加包括所述VLAN ID的VLAN标签后转发所述以太网帧。认证点设备在以太网帧VLAN标签中添加VLAN ID,以便于VTEP设备根据以太网帧VLAN标签中的VLAN ID获取映射的VNI,在以太网帧上添加VXLAN头,从而实现VXLAN。

在一种可能的实现方式中,所述接入设备向网络设备发送所述认证报文,包括:所述接入设备用第一LISP报文封装所述认证报文;所述接入设备向所述网络设备发送所述第一LISP报文。接入设备和网络设备之间通过LISP报文封装认证报文,提供了一种可行的透传认证报文的方式。

在一种可能的实现方式中,所述第一LISP报文还携带第一报文类型指示符,所述第一报文类型指示符指示所述第一LISP报文携带认证报文。

在一种可能的实现方式中,所述绑定指示是第二LISP报文,所述第二LISP报文中还包括第二报文类型指示符,所述第二报文类型指示符指示所述第二LISP报文包括所述终端设备的MAC地址和标识VLAN ID。通过报文类型指示符,网络设备能够在LISP报文可以携带多种信息、实现多种用途的情况下,高效地区分出接收到的LISP报文的用途,或者说识别出接收到的LISP报文包含的信息的种类,以便于网络设备可以执行对应的处理。

第四方面,提供了一种网络设备,所述网络设备与接入设备连接,所述网络设备包括存储器、端口和至少一个处理器,所述存储器用于存储程序代码;

所述至少一个处理器用于读取所述存储器中存储的程序代码后,执行上述第一方面或第一方面的任意一种可能的实现方式中的方法,具体参见上面的详细描述,此处不再赘述。

第五方面,提供了一种接入设备,所述接入设备包括存储器、端口和至少一个处理器,所述存储器用于存储程序代码;

所述至少一个处理器用于读取所述存储器中存储的程序代码后,执行上述第二方面或第二方面的任意一种可能的实现方式中的方法、或者执行上述第三方面或第三方面的任意一种可能的实现方式中的方法,具体参见上面的详细描述,此处不再赘述。

第六方面,提供了一种VXLAN的实现装置,执行第一方面或第一方面的任意一种可能的实现方式中的方法、或者执行第二方面或第二方面的任意一种可能的实现方式中的方法、或者执行第三方面或第三方面的任意一种可能的实现方式中的方法。具体地,该VXLAN的实现装置包括用于执行第一方面或第一方面的任意一种可能的实现方式中的方法的单元,或者包括用于执行第二方面或第二方面的任意一种可能的实现方式中的方法的单元,或者包括用于执行第三方面或第三方面的任意一种可能的实现方式中的方法的单元。这些单元可以由程序模块实现,也可以由硬件或固件实现。

第七方面,本申请提供了一种计算机可读存储介质,用于储存为上述网络设备所用的计算机软件指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面的任意一种可能的实现方式中所述的方法;或者用于储存为上述接入设备所用的计算机软件指令,当其在计算机上运行时,使得计算机执行上述第二方面或第二方面的任意一种可能的实现方式中所述的方法,或者使得计算机上述第三方面或第三方面的任意一种可能的实现方式中所述的方法。

第八方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。

第九方面,提供了一种通信系统,该系统包括接入设备、以及与接入设备连接的网络设备,网络设备用于执行上述各第一方面或第一方面的任意一种可能的实现方式中所述的方法。

在一种可能的实现方式中,所述接入设备用于执行上述各第二方面或第二方面的任意一种可能的实现方式中所述的方法。

在一种可能的实现方式中,所述接入设备用于执行上述各第三方面或第三方面的任意一种可能的实现方式中所述的方法。

附图说明

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

图1为本申请实施例提供的VXLAN的实现方法的应用场景示意图;

图2为本申请实施例提供的VXLAN的实现方法的流程图;

图3A为本申请实施例涉及的基于端口的网络访问控制规定的认证过程的示意图;

图3B为本申请实施例提供的网络设备获得终端11的VLAN ID的第一种方式的示意图;

图3C为本申请实施例提供的网络设备获得终端11的VLAN ID的第二种方式的示意图;

图4为本申请实施例提供的VXLAN封装的示意图;

图5为本申请实施例提供的网络设备的结构示意图;

图6为本申请实施例提供的接入设备的结构示意图;

图7为本申请实施例提供的一种VXLAN的实现方法的示意图;

图8为本申请实施例提供的LISP报文字段结构的示意图;

图9为本申请实施例提供的LISP报文第一种扩展方式的示意图;

图10为本申请实施例提供的VXLAN报文头的示意图;

图11为本申请实施例提供的一种VXLAN的实现方法的示意图;

图12为本申请实施例提供的LISP报文第二种扩展方式的示意图;

图13为本申请实施例提供的LISP报文第三种扩展方式的示意图。

具体实施方式

如果在接入设备上实现VTEP功能,则要求接入设备具有较高的硬件配置,例如要具有可编程能力的芯片。又考虑到接入设备的数量较多,因此由接入设备实现VTEP功能这种VXLAN的方案部署代价过高。基于此,需要寻求其他方案在园区网中实现VXLAN。

如果利用接入设备之外的其他网络设备实现VTEP,则面临一些技术上的难题。例如一种方案是与接入设备连接的网络设备实现VTEP功能。然而,在此方案中,园区网中的网络设备如何为以太网帧选择合适的VNI成为一个难题。

针对上述问题,本申请实施例提供了一种VXLAN的实现方案,在该方案中由支持VXLAN协议的网络设备实现VTEP。网络设备获得VLAN ID与VXLAN网络标识符(VXLANNetwork Identifier,VNI)的映射。该网络设备后续从接入设备接收到以太网帧时,从以太网帧的VLAN标签字段得到VLAN ID。该网络设备根据从以太网帧中得到的VLAN ID、以及VLAN ID与VNI的映射,在以太网帧上添加VXLAN头以得到VXLAN报文,VXLAN头中的VNI字段包括与以太网帧中的VLAN ID映射的VNI。该网络设备发送VXLAN报文。在本申请实施例中为了简明地进行区分,将VXLAN报文头中用于填写VNI的字段称为“VNI字段”,在其他情况下VNI是指以24位二进制数值表示的VNI。该方案在网络设备实现VTEP功能,无需将园区网中的接入设备硬件升级为支持VXLAN的交换机,降低部署代价。进一步地,终端可以通过园区网中大量不具备VXLAN功能的接入设备随时随地地访问网络,无需限定终端接入网络的位置,也保证终端设备使用的便利性。

下面将结合各个附图对本发明实施例技术方案的主要实现原理、具体实施方式及其对应能够达到的有益效果进行详细的阐述。

附图1是本申请实施例提供的VXLAN的实现方法的应用场景示意图。该方法应用于园区网,园区网中包括以终端11和终端21为例的终端设备、以接入设备12和接入设备22为例的接入设备、以网络设备13和网络设备23为例的网络设备。可选地,视网络规模和实际需求,园区网还包括核心设备30、网管设备40和认证服务器50。终端11通过接入设备12接入网络,网络设备13对来自于接入设备12的数据流进行汇聚后发送到核心设备30。核心设备30与网管设备40、认证服务器50通过互联网相连接。终端21通过接入设备22接入网络,网络设备23对来自于接入设备22的数据流进行汇聚后发送到核心设备30。网络设备13和网络设备23之间存在VXLAN隧道,如图1中粗虚线所示。

本申请实施例中的终端设备具备连接网络的能力,包括但不限于个人计算机、打印机、移动电话、服务器、笔记本电脑、互联网协议(Internet Protocol,IP)电话、摄像头、平板电脑、可穿戴设备等。

本申请实施例中的接入设备是交换机或无线接入点(Access Point,AP)。在不特别说明的情况下,本申请实施例中的交换机是指不支持VXLAN协议的交换机。

本申请实施例中的网络设备是三层交换机或路由器,该网络设备支持VXLAN协议。

本申请实施例中的网管设备是用于对网络进行配置的系统,网络管理员可以通过远程终端协议(Telnet)、管理信息库(Management Information Base,MIB)、又一下一代(yet another next generation,YANG)等方式对网络进行管理。在网络中未配置专用的网管设备的情况下,网络管理员也可以直接登录终端设备、接入设备、网络设备和核心设备对这些设备的地址、端口、网络连接参数等进行配置。

认证服务器用于对请求接入网络的终端设备进行认证,根据认证结果为终端设备开放网络服务。在本申请实施例中,认证服务器根据终端设备的地址、注册信息等数据,对上线的终端设备认证通过后,为该终端设备分配授权信息,授权信息包括VLAN ID。可选地,授权信息还包括组标识(Group Policy ID)。可选地,认证服务器是验证、授权和记账(authentication、authorization、accounting,AAA)服务器。基于VLAN ID,网络设备可以控制二层广播域的范围,提高网络的安全性。基于组标识,以及网管设备配置的组策略,可以控制不同组之间的访问。例如,组策略包括匹配条件和控制动作,匹配条件包括一个或多个组标识。一个匹配条件为组A到组B的组策略的控制动作为允许访问,另一个匹配条件为组B到组C的另一个组策略的控制动作为禁止访问。

在附图1所示的场景中,由网络设备实现VTEP,网络设备13和网络设备23之间存在VXLAN隧道,通过VXLAN隧道对终端11和终端12之间的报文进行传输。下面将结合附图1和附图2,对网络设备实现VTEP功能的原理进行说明。

附图2是本申请实施例提供的VXLAN的实现方法的流程图,附图2主要从一个网络设备的角度,对网络设备实现VTEP的原理进行说明。可以理解,附图2中的网络设备可以是附图1中的网络设备13或者网络设备23。附图2所示的流程包括步骤200~步骤203。

步骤200,网络设备获得VLAN ID到VNI的映射。

以太网帧的VLAN标签字段可以包括12bit的VLAN ID。VLAN ID用以将一个二层网络划分为多个不同的广播域。一个VLAN内部的广播和单播流量都不会转发到其他VLAN中。按照交换机端口划分是一种划分VLAN的常见方式,交换机上的不同端口分别被配置对应不同的VLAN。例如交换机上的4个端口对应VLAN 10,其余端口对应VLAN 20。在VXLAN技术中通过24bit的VNI对二层网络分段,从而在三层网络中传输二层数据。不同VNI指示的二层网络之间不能直接通信。

VLAN ID到VNI的映射可以被手工配置在网络设备上。网络设备也可以接收来自其他设备(例如控制器)的VLAN ID到VNI的映射。以网络设备为附图1中的网络设备13为例,网络管理员可以直接登录网络设备13的操作系统提供的命令行界面,在网络设备13上配置VLAN ID到VNI的映射。可选地,VLAN ID到VNI的映射如表1所示。

表1

VLAN ID VNI
VLAN 10 VNI 1000
VLAN 20 VNI 2000
…… ……

步骤201,网络设备用端口接收接入设备转发的以太网帧,所述以太网帧的VLAN标签字段中包括VLAN ID。以太网帧中包括源地址字段、目的地址字段和VLAN标签协议标识符(VLAN Tag Protocol Identifier)字段,在本申请中也将VLAN标签协议标识符简称为VLAN标签字段。由于以太网帧是二层帧,本申请中以太网帧中的源地址字段和目的地址字段中包含的均是MAC地址。以太网帧中还包括其他字段(例如类型字段、长度字段等等)以及数据部分。例如,数据部分是三层协议数据单元。对于传输控制协议/网际协议(TransmissionControl Protocol/Internet Protocol,TCP/IP)协议族而言,三层协议数据单元是IP数据包。

步骤202,网络设备根据以太网帧中的VLAN ID和所述映射在所述以太网帧上添加VXLAN头以得到VXLAN报文,所述VXLAN头中的VNI字段包括所述VNI。

步骤203,网络设备发送所述VXLAN报文。

仍以附图1所示的场景为例,终端11上线后,需要完成认证过程才能访问网络。在终端11认证通过之前,与终端11连接的接入设备12只允许终端11相关的认证报文被转发。如果认证通过,则认证服务器为终端11进行授权,指示接入设备12将与终端11连接的端口的状态由“未受控(uncontrolled)”变更为“受控(controlled)”。认证通过后,接入设备12上与终端11连接的受控端口可以转发来自于终端11的以太网帧或者目的方为终端11的以太网帧,从而终端11得以实现网络访问。认证通过后,认证服务器还可以配置终端11的其他授权信息,例如为终端11分配VLAN ID以及组标识,通过VLAN ID以及组标识对终端11的网络访问行为进行控制。接入设备12在终端11认证授权完成后,在用户信息表(如后续表3所示)中生成终端11相关的表项。

终端11认证通过后,接入设备12接收终端11发送的以太网帧,并根据接收以太网帧的端口号,从接入设备12保存的用户信息表(如后续表3所示)中查找到终端11对应的VLAN 10。接入设备12为终端11发送以太网帧添加VLAN 10。可选地,在以太网帧的VLAN标签字段中添加VLAN 10。接入设备12向网络设备13发送已添加VLAN 10的以太网帧。

网络设备13接收到以太网帧后,根据以太网帧中的VLAN 10,在如表1所示的VLANID到VNI的映射中,查找到VLAN 10映射的VNI 1000。网络设备13对接收到的以太网帧进行VXLAN封装。在封装过程中,在VXLAN头中的VNI字段中写入查找到的VNI 1000。网络设备13通过VXLAN隧道,将封装后的报文发送给网络设备23。

图4是网络设备13对以太网帧进行VXLAN封装的示意图,VXLAN封装在接收到的以太网帧的基础上依次增加VXLAN头、外层UDP头、外层IP头。以太网帧包括以太帧头和数据部分。例如,数据部分是IP报文。以太帧头中的源地址是终端11的MAC地址,目的地址是终端21的MAC地址。IP报文头中的源地址是终端11的IP地址,目的地址是终端21的IP地址。

外层以太头中的源地址是网络设备13的MAC地址,目的地址是网络设备23的MAC地址。外层IP头中的源地址是网络设备13的IP地址,目的地址是网络设备23的IP地址。

在本申请实施例提供的VXLAN的实现方法中,终端设备通过接入设备访问网络,与接入设备连接的、且支持VXLAN协议的网络设备实现VTEP。网络设备中配置从VLAN ID到VNI的映射。网络设备后续接收到来自于接入设备的以太网帧后,根据VLAN ID到VNI的映射、以及以太网帧中的VLAN ID,在以太网帧上添加VXLAN头以得到VXLAN报文,VXLAN头包括以太网帧中的VLAN ID对应的VNI。在该方案中,接入设备无需支持VXLAN,在园区网中仍然可以沿用大量现有的二层交换机或AP,无需将园区网中的接入设备硬件升级为支持VXLAN的交换机,降低部署代价。

在上述步骤201中,网络设备为了在接收到接入设备发送的以太网帧后,能够将来自于网络的、该以太网帧对应的响应数据发送给终端设备,需要将网络设备上与接入设备连接的端口加入终端的授权VLAN(即终端设备认证通过后,认证服务器为终端设备生成的授权信息中的VLAN ID所标识的VLAN)。在接入设备和网络设备上将与终端设备相关的端口加入授权VLAN可以保证终端设备可以通过园区网中任意位置的接入设备访问网络,无需限定终端通过特定的接入设备、或者接入设备上的特定端口接入网络,也保证终端设备使用的便利性。

可选地,可以采用多种方法将网络设备上的端口加入终端的授权VLAN,例如将网络设备上的端口加入所有VLAN,或者也可以对接入设备和网络设备的交互过程进行改进,在终端认证授权完成后,将网络设备上的端口加入终端的授权VLAN。前一种方案的特点是简单便捷,无需增加接入设备和网络设备之间的交互过程,但将端口加入所有VLAN会导致广播域过大,网络安全性降低。

下面介绍两种具体方式,通过对接入设备和网络设备的交互过程改进,以便于将网络设备上的端口加入终端的授权VLAN。

为了便于理解后面将介绍的网络设备与接入设备之间的报文交换过程,首先对认证过程进行简单介绍,后面将介绍的报文交互过程与认证过程相关联。对终端设备进行认证的目的是限制未经授权的终端设备通过接入端口(access port)访问网络,例如局域网或广域网,获得网络提供的各种业务。认证过程一般涉及认证的请求者(Supplicant)、认证点(Authenticator)和认证服务器(Authentication Server)三种角色。在认证过程中认证的请求者是终端设备,认证点是接入设备,认证服务器是以AAA服务器为例的服务器。为了简明起见,本申请实施例仅以可扩展认证协议(Extensible Authentication Protocol,EAP)为例,对接入设备和网络设备的信息交互过程进行简化描述。当终端设备和网络侧采用其他标准规定的认证流程时,基于认证流程接入设备和网络设备的信息交互过程类似,不再进行一一列举。

EAP认证过程如图3A所示,接入设备在认证之前,终端设备连接到接入设备上的端口为未受控状态,只允许EAP报文通过。认证通过以后,终端设备的其他数据可以通过接入设备的端口进行传输。认证过程主要包括步骤301~步骤310。

步骤301,终端设备发送一个基于局域网的可扩展认证协议(ExtensibleAuthentication Protocol over LAN,EAPoL)开始(Start)报文发起认证过程。

步骤302,接入设备收到EAPoL开始报文后,向终端设备发送一个EAP请求报文,请求终端设备发送用户标识。同时,接入设备在用户信息表中创建一个新表项。该表项中记录EAPoL开始报文中终端设备的MAC地址,用户名等信息,以及接收到EAPoL开始报文的端口号。

步骤303,终端设备生成一个EAP响应报文,将用户标识封装在EAP响应报文中发送给接入设备。

步骤304,接入设备将收到的EAP响应以及自身的一些属性信息,例如网络接入服务器(Net Access Server,NAS)IP地址、NAS端口号(port)等信息封装在远端用户接入验证服务(Remote Authentication Dial In User Service,RADIUS)接入请求(Access-Request)报文中发给认证服务器。

步骤305,认证服务器收到RADIUS接入请求报文后,将用户标识提取出来在数据库中进行查找。如果找不到该用户标识,则直接丢弃该报文;如果该用户标识存在,认证服务器会提取出用户的密码等信息,用一个随机生成的加密字进行MD5加密,生成密文。同时,将该随机加密字封装在一个EAP挑战请求(EAP-Challenge Request)报文中,再将该EAP挑战请求报文封装在RADIUS接入挑战(RADIUS Access-Challenge)报文的EAP-Message属性中发给接入设备。

步骤306,接入设备收到RADIUS接入挑战报文后,将其中封装的EAP挑战请求报文发送给终端设备。

步骤307,终端设备用认证服务器发来的随机加密字对本地保存的用户标识密码等信息进行相同的MD5加密运算生成密文,将密文封装在一个EAP挑战响应报文中发给接入设备。

步骤308,接入设备收到EAP挑战响应报文后,将其封装在一个RADIUS接入请求报文的EAP-Message属性中发给认证服务器。

步骤309,认证服务器解封装,将终端设备发回的密文与认证服务器在步骤305中生成的密文进行对比。如果不一致,则认证失败,认证服务器将返回一条RADIUS接入拒绝消息,同时保持端口关闭状态;如果一致,则认证通过,认证服务器将一条EAP成功消息封装在RADIUS接入接受报文的属性中发送给接入设备。RADIUS接入接受报文同时还携带有其他授权信息,如VLAN、组标识等信息。

步骤310,接入设备在接到认证服务器发来的RADIUS接入接受之后,将端口状态更改为“受控”,同时将RADIUS接入接受中的EAP成功报文拆出来发送给终端设备。同时,接入设备在用户信息表的新建表项中添加包括VLAN、组标识在内的授权信息。

在本申请实施例中,假定认证服务器为终端11分配的VLAN ID是VLAN 10。

为了便于网络设备13将与接入设备12连接的端口加入终端11的授权VLAN,网络设备13与接入设备12采用的交互方式包括但不限于以下方式1和方式2所列举的两种。

方式1:网络设备用端口接收来自所述接入设备的加入指示,所述加入指示包括所述VLAN ID;网络设备将所述端口加入所述VLAN ID所标识的VLAN。

在方式1中,认证点设备是接入设备12,该认证过程如图3A所示。在认证通过之后,接入设备12获得认证服务器为通过认证的请求者设备分配的VLAN ID。接入设备12通过与网络设备13之间的控制面协议,向网络设备13发送加入指示,如图3B所示,加入指示中包括VLAN 10。网络设备13通过端口号E1/0/0指示的端口(后面简称为端口E1/0/0)接收到加入指示后,将端口E1/0/0加入VLAN 10。

控制面协议可以是新定义的协议,也可以通过对现有协议做一些扩展实现。例如对LISP进行扩展实现。后面的实施例中将给出扩展方式的示例。

方式1由接入设备作为认证点设备,在终端设备认证完成后,接入设备通过加入指示将终端设备的授权VLAN ID通知网络设备,对现有网络认证流程改动较小,实现代价较低。

方式2:认证点设备是网络设备13。接入设备转发认证的请求者设备和认证点设备之间的认证报文,将终端设备发送的认证报文发送给认证点设备,将认证点设备发送的认证报文发送给终端设备。网络设备用端口接收来自所述接入设备的第一认证报文,所述第一认证报文为请求者设备提供认证。所述网络设备记录第一认证报文中的请求者设备地址和所述端口(即接收第一认证报文的端口)的对应关系;所述网络设备接收来自于认证服务器的第二认证报文,所述第二认证报文包括所述请求者地址以及所述VLAN ID;所述网络设备根据记录的所述请求者地址和所述端口的对应关系、以及所述第二认证报文中的所述请求者地址和所述VLAN ID,将所述端口加入所述VLAN ID所标识。

如图3C所示,具体地,在接入设备12上配置网络设备13的IP地址。接入设备12和网络设备13基于控制面协议传输认证报文。控制面协议可以是新定义的协议,也可以通过对现有协议做一些扩展实现。例如对LISP进行扩展实现,后面的实施例中将给出扩展方式的示例。认证通道实际上是指一种特定的用于对报文进行封装的方式。

终端11上线后,终端11的认证过程被触发后,接入设备12接收终端发送的第一认证报文(例如,EAPoL开始报文),在用户信息表(或者转发表)中创建一条新表项。该表项中记录第一认证报文中终端11(认证的请求者设备)的MAC地址以及接收第一认证报文的端口号。接入设备12用控制面协议封装终端11的第一认证报文(例如,EAPoL开始报文),向网络设备13发送封装后的报文。网络设备13解封装认证通道发来的报文,得到第一认证报文后,执行对终端11的认证流程。在执行认证流程的过程中,一方面,网络设备13解封装接入设备12发来的报文,按照标准的规定对解封装后得到的报文(例如EAPoL开始报文、EAP响应报文、EAP挑战响应报文)进行处理。另一方面,网络设备13用控制面协议封装将要向终端11发送的报文(例如EAP请求),向接入设备12发送封装后的报文。网络设备13还接收认证服务器发来的报文(例如RADIUS接入挑战报文、RADIUS接入接受),按照认证流程对报文进行处理,将处理后得到的应向终端设备发送的报文封装后通过认证通道发送给接入设备12(例如EAP挑战请求、EAP成功报文)。

接入设备12通过认证通道接收网络设备13发来的认证报文(例如,附图3C中的EAP请求报文、EAP挑战请求、EAP成功报文),解封装认证通道发来的报文,将解封装后的报文发送给终端11。

网络设备13接收到认证服务器发送的第二认证报文(例如RADIUS接入接受报文)后,不仅将RADIUS接入接受报文中封装的EAP成功报文通过认证通道发送给接入设备12,还从认证服务器发送的RADIUS接入接受报文中获取其他授权信息,如VLAN ID、组标识等信息。将记录的接收第一认证报文的端口加入授权信息VLAN ID所标识的VLAN。接入设备12接收到EAP成功报文后,将与终端11连接的端口设置为受控状态。

可选地,参照图3C,网络设备13还通过控制面协议将终端11的MAC地址和上述授权信息中的VLAN ID封装后发送给接入设备。接入设备12解封装接收到报文,得到终端11的MAC地址和终端11的VLAN ID,根据终端11的MAC地址在用户信息表(或转发表)中查询到上述创建的表项,在表项中加入终端11的VLAN ID。通过表项建立了端口与VLAN ID的对应关系,即将与终端11连接的端口的苏俄生VLAN的值设置为所述VLAN ID。这里的控制面协议可以是新定义的协议,也可以通过对现有协议做一些扩展实现。例如,对LISP进行扩展实现。后面的实施例中将给出扩展方式的示例。

在本申请实施例中,当终端11的认证过程完成后,终端11就可以在授权的范围内与其他终端进行通信。例如终端11发起对另一终端的访问时,终端11生成以太网帧,该以太网帧的源地址是终端11的MAC地址。接入设备12接收到终端11发送的以太网帧后,根据接收以太网帧的端口的缺省VLAN,将缺省VLAN的VLAN ID添加在以太网帧的VLAN标签字段中。然后,接入设备12将以太头中已添加了VLAN ID的以太网帧发送给网络设备13。

方式2由网络设备执行终端设备的认证流程,接入设备和网络设备之间通过LISP传输认证报文。由于认证点在离终端更远的网络设备,大量与终端更近的接入设备不仅不需要支持VXLAN,甚至也可以无需支持认证,因而可以采用更简单廉价的硬件实现,降低了部署成本。

附图5是附图1所示的场景中网络设备的结构示意图。图5所示的网络设备作为图2所示流程中的网络设备,以实现图2中的网络设备的功能。图5中网络设备包括处理器51、转发芯片52、端口53和存储器54。端口53包括多个端口。转发芯片52与端口53中的每个端口连接。

转发芯片52、存储器54可以与处理器51集成于同一个物理器件中,也可以是单独的物理器件。在转发芯片52、存储器54与处理器51集成于同一个物理器件(例如多核CPU)的情况下,存储器54在CPU中,转发芯片52可以是多核CPU中的核。在转发芯片52、存储器54是独立于处理器51的单独的物理器件的情况下,转发芯片52、存储器54均与处理器51连接。转发芯片52还与存储器54连接。

在存储器54是单独的物理器件的情况下,存储器54包括但不限于是随机存取存储器(random access memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦除可编程只读存储器(erasable programmable read-only memory,EPROM)、三态内容可寻址存储器(ternary content addressable memory,TCAM)、快闪存储器、或光存储器等。

存储器54用于保存如表1所示的VLAN ID与VNI的映射关系表和转发表。映射关系表用于保存VLAN ID到VNI的映射,该映射可以是管理员配置的。

其中转发表中的表项保存有终端的MAC地址与端口号的映射关系,端口号指示网络设备上的端口。可选地,转发表中的每个表项中还保存至少一个VLAN ID,用于指示端口加入的VLAN。表2是图1中网络设备13的转发表中的一个表项的示例,其中“00e0-d26b-8121”是终端11的MAC地址,“E1/0/0”指示网络设备13上的一个端口,该端口加入了VLAN 10指示的VLAN。当然,在实际存储时,不同厂商的网络设备可以采用不同的数据结构来保存MAC地址与端口号的映射关系。

表2

编号 MAC地址 端口号 VLAN ID
1 00e0-d26b-8121 E1/0/0 VLAN 10
2 …… …… ……

转发芯片52可以访问存储器54中信息。

本申请实施例中不限定上述部件之间的具体连接介质,例如总线。

处理器51,用于控制转发芯片52配置与其他网络设备之间的VXLAN隧道。

端口53,用于与接入设备连接,或者与其他网络设备连接。

所述端口53中的第一端口与接入设备连接,第一端口用于接收接入设备转发的以太网帧,所述以太网帧的VLAN标签字段中包括所述VLAN ID。

处理器51,还用于根据以太网帧VLAN标签字段中包括的VLAN ID,以及表1所示的VLAN ID到VNI的映射获得以太网帧VLAN标签字段中包括的VLAN ID映射的VNI;在所述以太网帧上添加VXLAN头以得到VXLAN报文,所述VXLAN头中包括所述VNI。

端口53中的第二端口用于发送处理器51得到的VXLAN报文。可选地,第二端口通过VXLAN隧道,向其他网络设备发送VXLAN报文。例如,附图1中的网络设备13的结构如附图5所示,网络设备13向网络设备23发送VXLAN报文。

如果图5所示的网络设备采用附图3B所示的方式1获得终端设备的VLAN ID,则第一端口用于接收来自接入设备的加入指示,加入指示中包括VLAN ID。该VLAN ID是接入设备作为认证点设备,在终端设备认证通过获得终端设备的授权信息后发送给网络设备的。可选地,接入设备将VLAN ID封装在控制面协议报文中,从而得到加入指示。

处理器51用于从加入指示中获得VLAN ID,将第一端口加入VLAN ID所标识的VLAN。可选地,处理器解封装控制面协议报文,从中得到VLAN ID,将第一端口加入VLAN ID所标识的VLAN。

可选地,控制面协议为LISP,即加入指示是LISP报文。这里为了与后续出现的其他用途的LISP报文相区分,这里将作为加入指示的LISP报文称为“第一LISP报文”。可选地,处理器51通过不同的功能模块实现上述功能,例如处理器51包括LISP支持模块,用于根据预定LISP的扩展格式,解封装第一LISP报文,从而得到VLAN ID。

如果图5所示的网络设备采用附图3C所示的方式1获得终端设备的VLAN ID,即网络设备作为认证点设备,则处理器51还用于建立与接入设备的认证通道。端口53中包括多个端口,其中第一端口与接入设备连接,第一端口用于接收来自于所述接入设备的第一认证报文,所述第一认证报文为请求者设备提供认证。

处理器51,用于记录第一认证报文中的请求者设备地址和第一端口的对应关系。

所述端口53中的第三端口,用于接收来自于认证服务器的第二认证报文,所述第二认证报文包括所述请求者地址以及所述VLAN ID。

所述处理器51,还用于根据记录的所述请求者地址和所述第一端口的对应关系、以及所述第二认证报文中的所述请求者地址和所述VLAN ID,将第一端口加入所述VLAN ID所标识的VLAN。

可选地,在认证过程中,网络设备与接入设备之间传输的认证报文通过控制面协议封装。可选地,控制面协议为LISP。第一端口,还用于接收来自于所述接入设备的第二LISP报文,所述第二LISP报文封装第一认证报文。

例如,结合附图3C,第一认证报文是EAPoL-Start报文,第二认证报文是RADIUSAccess-Accept报文。RADIUS Access-Accept报文中包括请求者地址和授权信息,授权信息包括VLAN ID。

可选地,处理器51还用于从第二认证报文中得到VLAN ID后,通过第一端口向接入设备发送绑定指示,所述绑定指示包括所述请求者地址和VLAN ID。可选地,网络设备通过控制面协议封装请求者地址和述VLAN ID后,向接入设备发送封装得到的控制面报文。可选地,控制面协议是LISP。

可选地,处理器51通过不同的功能模块实现上述功能,例如处理器51中包括LISP支持模块以及认证模块。LISP支持模块用于根据LISP对接入设备通过认证通道发来的认证报文(例如EAPoL开始、EAP响应、EAP挑战响应)进行解封装,以及通过LISP将向终端设备发送的认证报文(例如EAP请求、EAP挑战请求)封装后通过认证通道发送给接入设备,以及通过预定的LISP扩展格式,将VLAN ID封装后通过认证通道发送给接入设备。认证模块用于支持对认证报文的解析,以及根据认证流程执行相应处理,例如,参考附图3C,端口53得到解封装后的终端设备发送的EAPoL开始报文后,处理器51生成EAP请求报文,并通过LISP扩展格式,将EAP请求报文封装后,通过认证通道发送封装后的EAP请求报文,又例如,解封装后得到EAP响应报文后,向认证服务器发送RADIUS接入请求报文。请参考附图3C及相关文字说明,在这里不展开一一赘述。

可选地,处理器51中的LISP支持功能模块和/或认证支持模块可以通过软件实现,也可以通过多核CPU中的一个核实现。

附图5所述的网络设备用以应用于附图1所示的场景中,实现附图2所示的流程中网络设备的功能。附图5中各组件实现的其他附加功能、以及与其他网元设备(如接入设备、认证服务器)的交互过程,请参照附图2、附图7或附图11所示的方法实施例中对网络设备的描述,在这里不再赘述。

附图6是附图1所示的场景中接入设备的结构示意图。图6所示的接入设备作为图2中的与网络设备连接的接入设备,以实现图2所示流程中接入设备的功能。图6中接入设备包括处理器61、转发芯片62、端口63和存储器64。端口63包括多个端口。转发芯片62与每个端口连接。

转发芯片62、存储器64可以与处理器61集成于同一个物理器件中,也可以是单独的物理器件。在转发芯片62、存储器64与处理器61集成于同一个物理器件(如多核CPU)的情况下,存储器64在CPU中,转发芯片62可以是多核CPU中的一个核。在转发芯片62与处理器61是独立于处理器61的单独的物理器件的情况下,转发芯片62、存储器54均与处理器61连接。转发芯片52还与存储器54连接。

在存储器64是单独的物理器件的情况下,存储器54包括但不限于是随机存取存储器(random access memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦除可编程只读存储器(erasable programmable read-only memory,EPROM)、三态内容寻址存储器(ternary content addressable memory,TCAM)、快闪存储器、或光存储器等。

存储器64用于保存转发表、和用户信息表。

转发芯片62可以访问存储器64中的转发表、和用户信息表。

本申请实施例中不限定上述部件之间的具体连接介质,例如总线。

接入设备中的转发表与上述表2类似,在这里不再重复介绍。用户信息表中的每个表项中保存终端设备的地址(MAC地址或IP地址)、通过该终端设备访问网络的用户的用户名、接入设备上的端口号和终端设备的授权信息。其中授权信息包括VLAN ID。表3是图1中接入设备12的用户信息表中的一个表项的示例,其中用户名为S1,“00e0-d26b-8121”是终端11的MAC地址,“VLAN 10”是终端11的授权信息,S1是使用终端11访问网络的用户的用户名,终端11与接入设备12的端口E1/0/0连接。

表3

编号 用户名 MAC地址 端口号 授权信息
1 S1 00e0-d26b-8121 E1/0/0 VLAN 10
…… ……

端口63,用于与终端设备连接、以及与网络设备连接。

处理器61,还用于在接收到终端设备上线后发送的认证报文时,在用户信息表中创建一个新的表项,在新创建的表项中写入终端设备的地址以及接收到认证报文的第一端口号。在终端设备认证完成后,获得终端设备地址、以及终端设备的授权信息,根据终端设备的地址在表3中查找到对应的表项,在该表项中授权信息中的VLAN ID。在表3中保存授权信息中的VLAN ID相当于建立了端口号和授权VLAN ID的对应关系,即将端口号标识的第一的缺省VLAN的值设置为所述授权VLAN ID。

具体地,如果与附图6所示的接入设备连接的网络设备采用附图2中步骤201中的方式1所示的方法获得VLAN ID,即接入设备是认证点设备。在方式1中,接入设备的处理器61用于获得认证服务器为通过认证的请求者设备分配的VLAN ID。端口63中的第一端口与网络设备连接,第一端口用于向VXLAN隧道终点VTEP设备(即网络设备)发送LISP报文,所述LISP报文包括所述VLAN ID,该LISP报文即为前面提及的加入指示。为了与其他用途的LISP报文相区分,该LISP报文中还包括报文类型指示符,所述报文类型指示符指示所述VTEP设备将接收所述LISP报文的端口加入所述VLAN ID所标识的VLAN。

当终端设备认证完成后,处理器63从授权信息中获得认证服务器为所述终端设备分配的VLAN ID,控制第一端口向与该接入设备连接的网络设备发送第一LISP报文,其中第一LISP报文包括终端设备的授权VLAN ID。例如参考附图3B,第一端口接收到认证服务器发送的RADIUS接入接受报文后,从RADIUS接入接受报文中获取终端设备的其他授权信息,如VLAN ID、组标识等信息,控制第一端口通过LISP向网络设备发送VLAN ID。可选地,处理器61通过不同的功能模块实现上述功能,例如处理器61中包括认证支持模块和LISP支持模块。认证支持模块用于根据认证流程,完成终端设备的认证过程,具体请参照附图3B及相关描述。LISP支持模块,用于根据LISP扩展格式,对授权信息中的VLAN ID进行封装,向网络设备发送封装后的VLAN ID。

可选地,处理器61还用于确定第二端口,第二端口与所述请求者设备连接;获得认证服务器为通过认证的请求者设备分配的VLAN ID后,将第二端口的缺省VLAN的值设置为所述VLAN ID。所述第二端口,还用于接收来自所述请求者设备的以太网帧,所述以太网帧的源地址为所述请求者设备的MAC地址;所述认证点设备根据第二端口的缺省VLAN,为所述以太网帧添加包括所述VLAN ID的VLAN标签后转发所述以太网帧。

具体地,如果与附图6所示的接入设备连接的网络设备采用附图2中步骤201中的方式2所示的方法获得VLAN ID,即网络设备是认证点设备。端口63中的第一端口与终端设备连接,第一端口用于接收来自终端设备的认证报文,所述终端设备为请求者设备。处理器61,用于记录第一端口和所述认证报文中的请求者设备的MAC地址的对应关系。端口63中的第二端口,与网络设备连接,第二端口用于向网络设备发送所述认证报文,所述网络设备为认证点设备并且为VXLAN隧道终点VTEP设备。所述第二端口,还用于接收来自所述网络设备的绑定指示,所述绑定指示包括所述请求者设备的地址(IP地址或MAC地址)和所述VLANID。所述处理器61,还用于根据所述对应关系以及所述绑定指示中的请求者设备的地址,将所述第一端口的缺省VLAN的值设置为所述VLAN ID。

可选地,所述认证报文和所述绑定指示是通过控制面协议封装的。可选地,所述控制面协议是LISP。在这种情况下,第二端口向网络设备发送第一LISP报文,所述第一LISP报文封装来自于终端设备的认证报文,所述终端设备通过所述接入设备访问网络。所述第二端口,还用于通过与网络设备连接的端口接收来自于所述网络设备的第二LISP报文,所述第二LISP报文封装绑定指示,即请求者设备的MAC地址和所述VLAN ID。

可选地,处理器61通过不同的功能模块实现上述功能,例如处理器61中包括LISP支持模块和认证支持模块。LISP支持模块用于根据LISP的扩展格式,对来自于终端设备的认证报文进行封装,将封装后的认证报文(例如EAPoL开始、EAP响应、EAP挑战响应)通过认证通道发送给网络设备,以及对接收到的网络设备发送的LISP报文进行解封装,从中得到认证报文(例如EAP请求,EAP挑战请求)后,将认证报文发送给终端设备。LISP支持模块还用于在第二端口接收到网络设备通过LISP的扩展格式封装的VLAN ID后,解封装以获得VLANID。认证支持模块用于在用户信息表中保存解封装后获得的授权信息。

可选地,处理器61中的LISP支持功能模块和认证支持模块可以通过软件实现,也可以通过多核CPU中的一个核实现。

可选地,第一端口,还用于接收来自所述终端设备的以太网帧,所述以太网帧的源地址为所述请求者设备的MAC地址。处理器61,还用于根据第一端口的缺省VLAN,为所述以太网帧添加包括所述VLAN ID的VLAN标签后转发所述以太网帧。

附图6所述的接入设备用以应用于附图1所示的场景中,实现附图2所示的流程中接入设备的功能。附图6中各组件实现的其他附加功能、以及与其他网元设备(如网络设备、终端设备、或认证服务器)的交互过程,请参照附图2、附图7或附图11所示的方法实施例中对接入设备的描述,在这里不再赘述。

附图7是本申请实施例提供的一种VXLAN的实现方法的示意图。在附图7所示的方法中,认证点设备是接入设备。接入设备在终端设备认证通过,并且获得认证服务器为终端设备设置的授权信息后,将终端设备的授权VLAN ID通过扩展的LISP报文发送给网络设备,以便网络设备得到终端地址的VLAN ID。网络设备将与接入设备连接的端口加入VLAN ID标识的VLAN,此后网络设备从接入设备接收到以太网帧后,根据以太网帧中的VLAN ID,从VLAN ID到VNI的映射中查找对应的VNI,在所述以太网帧上添加VXLAN头以得到VXLAN报文,所述VXLAN头中的VNI字段包括所述VNI。附图7的应用场景如附图1所示,认证过程如附图3B所示。

附图7所示的方法包括以下步骤71~步骤717。

步骤71,管理员在网络设备13上配置VLAN ID到VNI的映射。类似地,管理员也可以在网络设备23上配置VLAN ID到VNI的映射。可选地,在网络设备13和网络设备23上,映射到同一VNI的VLAN ID可以相同也可以不同。

步骤72,终端11在接入设备12上线,触发终端11的认证流程,终端11认证通过后,认证服务器50向接入设备12发送终端11的授权信息。授权信息包括终端11的VLAN标识“VLAN 10”。可选地,授权信息还包括终端11的组标识“Group 1”,终端11的组标识用于对终端11进行访问控制。具体认证过程如附图3B所示,在这里不再重复。

步骤73,接入设备12通过端口E1/0/1与终端11连接,接入设备12将端口E1/0/1的缺省VLAN设置为VLAN 10。

步骤74,接入设备12向网络设备13发送第一LISP报文,第一LISP报文包括终端11的授权VLAN ID,即VLAN 10。

在本申请实施例中,网络设备13通过端口号E1/0/0指示的端口与接入设备12连接。

为了通过LISP报文携带上述对应关系,需要对LISP报文进行扩展。出于便于理解的考虑,图8先给出了LISP协议的字段结构,再结合图9对LISP协议的扩展方式进行介绍。关于图8中各字段的说明请参考现有标准文档,例如RFC 6830,在这里不进行赘述。

在本申请实施例中,对于接入设备12向网络设备13发送的第一LISP报文,图8中的“Source Routing Locator”为接入设备12的LISP所用地址,“Destination RoutingLocator”为网络设备13的LISP所用地址,“Source Port”中所写入的内容由LISP报文的发送方通过静态配置或动态生成,“Dest Port”为4342。同理,对于网络设备13向接入设备12发送的LISP报文,“Source Routing Locator”为网络设备13的LISP所用地址,“Destination Routing Locator”为接入设备12的LISP所用地址,“Des Port”的值为接入设备12向网络设备13发送的LISP报文中的“Source Port”的值,“Source Port”为4342。

本实施例中的第一LISP报文主要对图8中的LISP Message部分进行了扩展定义,具体如图9所示。

在本实施例中,LISP Message部分至少要携带VLAN 10。

可选地,当接入设备和网络设备之间通过LISP传送多种不同信息时,可以通过为每类信息分配一个对应的报文类型指示符,以便于接收方区分出LISP报文携带的信息。如图9所示,扩展的LISP报文的LISP Message部分中包括报文类型指示符,用于指示本LISP报文包括VLAN ID。可选地,报文类型指示符用整数表示,保存在Type字段中。本实施例中,用整数“5”来指示本LISP报文包括VLAN ID。实际上报文类型指示符的取值以及在LISPMessage部分中的位置可以灵活设置,只要接入设备和网络设备都能根据预先的格式定义识别出报文类型指示符,从而确定该LISP报文的用途即可。通过第一报文类型指示符,网络设备能够识别出用于封装终端授权VLAN ID的LISP报文,从而从中获得终端的授权VLANID。

可选地,为了便于解析,可以通过LISP Message部分中的一个Record字段中记录一个VLAN ID。

可选地,由于终端11在上线之后可能因各种原因断开网络,如计费超额,并且在较长时间内不再通过接入设备12接入网络。在此情况下,接入设备12可以将端口号E1/0/1的缺省VLAN设置为其他VLAN ID。为了节约网络设备13的存储空间,接入设备12需要适时通知网络设备13将端口从VLAN中删除。针对此需求,在本申请实施例中还可以在LISP Message部分中携带操作指示符,该操作指示符用于指示该扩展的LISP报文的接收方将端口加入VLAN,也可以通过操作指示符指示该扩展的LISP报文的接收方将端口从VLAN中删除。

在本实施例中,在终端11通过认证之后,接入设备12向网络设备13发送的第一LISP报文中的LISP Message部分中携带第一操作指示符,通过第一操作指示符指示接收方将端口加入VLAN。在发送第一LISP报文之后,还可以发送第二LISP报文。第二LISP报文与第一LISP的格式类似,区别是第二LISP报文的LISP Message部分中携带第二操作指示符,通过第二操作指示符指示接收方将端口从VLAN中删除。可选地,该操作指示符携带在图9所示的F字段中。例如,操作指示符是整数,0指示将端口加入VLAN,1指示将端口从VLAN中删除。

可选地,在接入设备12连接的终端设备数目较多时,有可能与接入设备12连接的多个终端设备在短时间内同时上线通过认证,为了提高接入设备12与网络设备13的通信效率,可以在同一个LISP报文中携带多条终端设备的授权VLAN ID。在此情况下,可以在第一LISP报文的LISP Message部分增加一个Record Count字段,该字段的取值用于指示所述LISP报文携带的Record字段的数量,如图9所示。

可选地,接入设备12还可以通过第一LISP报文携带其他信息,例如在Record字段中携带中的11的地址类型和地址。例如,终端设备标识的类型至少包括IPv4地址、IPv6地址和MAC地址,比如用数字1代表IPv4地址、数字2代表IPv6地址、数字16389代表MAC地址。在本实施例中将地址类型指示符携带在Record字段的AFI子字段中。接入设备12将终端11的地址携带在该Record字段的EID子字段中。

步骤75,网络设备13通过端口E1/0/0接收第一LISP报文,从第一LISP报文中获得终端11的授权VLAN ID,即VLAN 10。

步骤76,网络设备13将端口E1/0/0加入VLAN 10对应的VLAN。

步骤77,终端11访问终端21,接入设备12通过端口E1/0/1接收终端11发送的以太网帧。

步骤78,接入设备12根据保存的用户信息表,查找到端口E1/0/1的缺省VLAN为VLAN10,并在终端11发送的以太网帧的VLAN标签字段中添加VLAN 10。

步骤79,接入设备12向网络设备13发送VLAN标签字段中已添加了VLAN 10的以太网帧。

步骤710,网络设备13通过端口E1/0/0接收以太网帧,根据以太网帧中包括的VLAN10,在保存的映射关系表(如表1所示)中查询到VLAN 10映射的VNI 1000。

步骤711,网络设备13在接收到的以太网帧上添加VXLAN头从而得到VXLAN报文,所述VXLAN头中的VXLAN字段包括VNI 1000。VXLAN头的结构如附图10所示。

步骤712,网络设备13向网络设备23发送VXLAN报文。

网络设备23对终端21发送的报文的处理过程与网络设备13类似,在这里不再重复说明。

图11是本申请实施例提供的另一种VXLAN实现方法的示意图。在附图11所示的方法中,认证点设备是网络设备。接入设备和网络设备之间建立认证通道,用于传输认证报文。此后网络设备从接入设备接收到以太网帧后,根据VLAN ID到VNI的映射、以及以太网帧中的VLAN ID,在以太网帧中添加VXLAN头,VXLAN头中包括以太网帧中的VLAN ID映射的VNI。附图11的应用场景如附图1所示,认证过程如附图3C所示。

附图11所示的方法包括以下步骤111~步骤1118。

步骤111,管理员在网络设备13上配置VLAN ID到VNI的映射。类似地,管理员也可以在网络设备23上配置VLAN ID到VNI的映射。可选地,在网络设备13和网络设备23上,映射到同一VNI的VLAN ID可以相同,也可以不同。

步骤112,网络管理员在接入设备12上配置网络设备13的IP地址,用于接入设备12与网络设备13之间进行LISP通信。同理,在接入设备22上配置网络设备23的IP地址,用于接入设备22与网络设备23之间进行LISP通信。

步骤113,终端11在接入设备12上线,触发终端11的认证流程,接入设备12通过端口E1/0/1接收到终端11发送的认证报文。

接入设备12在用户信息表中创建一个表项,该表项中包括认证报文中包括的终端11的MAC地址00e0-d26b-8121、以及接收到认证报文的端口E1/0/1。可以理解,在不同认证流程中,终端11发送的用以触发认证流程的认证报文会有所差异。可选地,以标准802.1X为例,终端11发送的认证报文是EAPoL Start(如附图3C所示)。

步骤114,接入设备12对终端11发送的认证报文进行LISP封装。为了与附图7所示的流程中的各LISP报文相区分,这里将封装得到的LISP报文称为第三LISP报文,接入设备12向网络设备13发送第三LISP报文。

为了通过LISP对认证报文进行封装,需要对LISP报文进行扩展。LISP协议的字段结构如图8所示,关于图8中各字段的说明请参考现有标准文档,例如RFC 6830,在这里不进行赘述。本实施例第三LISP报文主要对图8中的LISP Message部分进行了扩展定义,具体如图12所示。

在本实施例中,将终端11发送的认证报文EAPoL Start封装在第三LISP报文LISPMessage部分中。如图12所示,第三LISP报文的LISP Message部分中包括报文类型指示符,报文类型指示符指示本LISP报文包括来自于认证的请求者设备的认证报文。可选地,报文类型指示符用整数表示,保存在Type字段中。本实施例中,用整数“6”来指示本LISP报文包括来自于认证的请求者设备的认证报文。实际上报文类型指示符的取值以及在LISPMessage部分中的位置可以灵活设置,只要接入设备和网络设备都能根据预先的格式定义识别出报文类型指示符,从而确定该LISP报文的用途即可。通过该报文类型指示符,网络设备和接入设备能够识别出用于封装认证报文的LISP报文,从而更佳地协同完成终端认证过程。

可选地,如图12所示,接入设备12将终端11发送的认证报文封装在LISP Message部分中的“Original packet”字段中。

可选地,为了更好的兼容现有的认证流程,使得从终端设备的角度看,与现有认证流程无差别,可以通过LISP Message部分携带一个端口号。具体地,对于终端设备向网络侧发送的认证报文(例如EAPoL开始、以及后续发送的EAP响应、EAP挑战响应),接入设备12在LISP Message部分携带接入设备12上的一个端口号,该端口号指示的端口是接入设备12接收到终端11发送的认证报文时的端口。可选地,该端口号携带在图12的“Port”字段中。

步骤115,网络设备13解封装接入设备12发来的第三LISP报文,从而得到第三LISP报文中封装的认证报文,即终端11发送的认证报文。

认证设备12和网络设备13都支持图12所示的LISP报文的扩展方式,网络设备13可以采用与上述封装过程对应的解封装过程,得到认证报文。具体地,网络设备13从图12所示格式的扩展LISP报文的LISP Message部分获得封装的认证报文。

步骤116,网络设备13记录认证报文中请求者设备地址和接收第三LISP报文的端口的对应关系。在本实施例中,网络设备13通过端口E1/0/0与接入设备12连接,通过端口E1/0/0与接入设备12传输上述报文。认证报文中认证的请求者的地址是终端11的MAC地址00e0-d26b-8121。因此,网络设备记录终端11的MAC地址00e0-d26b-8121与端口E1/0/0的对应关系。

步骤117,网络设备13根据解封装得到的认证报文,执行终端11的认证过程。

具体地,在认证过程中涉及到的多次报文交互中,网络设备13根据认证流程对解封装后的报文进行处理,并将向终端11发送的认证报文封装在扩展字段格式的LISP报文中,向接入设备12发送封装得到的LISP报文。

例如,参考附图3C,网络设备13对接入设备12发送的第三LISP报文解封装后得到终端11发送的EAPoL开始报文后,生成EAP请求报文,将EAP请求报文封装在LISP报文的LISPMessage部分中,向接入设备12发送封装得到的LISP报文。

又如,参考附图3C,网络设备13对接入设备12发送的LISP报文解封装后得到EAP响应报文后,向认证服务器发送RADIUS接入请求报文。网络设备13接收到认证服务器回复的RADIUS接入挑战报文后,从中提取出EAP挑战请求报文,将EAP挑战请求报文封装在LISP报文的LISP Message部分中,向接入设备12发送封装后得到的LISP报文。

又例如,参考附图3C,网络设备13对接入设备12发送的扩展LISP报文解封装后得到EAP挑战响应报文后,向认证服务器发送RADIUS接入请求报文。网络设备13接收到认证服务器回复的RADIUS接入接受报文后,从中提取出EAP成功报文,将EAP成功报文封装在LISP报文的LISP Message部分中,向接入设备12发送封装后得到的LISP报文。

网络设备13在对认证报文(如EAP请求,EAP挑战请求,EAP成功)进行LISP封装的过程中,将认证报文封装在另一LISP报文的LISP Message部分中。如图12所示,扩展的LISP报文的LISP Message部分中包括报文类型指示符,用于指示本LISP报文用于发送来自于认证服务器的认证报文。可选地,报文类型指示符用整数表示,保存在Type字段中。指示本LISP报文用于发送来自于认证服务器的认证报文的整数与指示本LISP报文用于发送来自于认证的请求者设备的认证报文的整数可以相同,也可以不同。本实施例中,用同一整数“6”来指示本LISP报文用于发送来自于认证服务器的认证报文。换句话说,可以用同一报文类型指示符用来指示传输认证报文,无论该认证报文是来自于认证的请求者设备,还是来自于认证服务器。

可选地,如图12所示,接入设备12将向终端11发送的认证报文封装在LISPMessage部分中的“Original packet”字段中。

可选地,为了更好的兼容现有的认证流程,使得从终端设备的角度看,与现有认证流程无差别,可以通过LISP Message部分携带一个端口号。具体地,对于网络设备向终端设备发送的认证报文(例如EAP请求,EAP挑战请求,EAP成功),网络设备12在LISP Message部分携带接入设备12上的一个端口号,该端口号指示的端口是接入设备12向终端11发送解封装后得到的认证报文时的端口。可选地,该端口号携带在图12的“Port”字段中。

步骤118,对终端11认证通过后,网络设备13从认证服务器50发送的RADIUS接入接受报文中获得终端11的MAC地址00e0-d26b-8121和授权信息,并从授权信息中得到以及终端11的授权VLAN ID,即VLAN 10。

步骤119,网络设备13根据步骤117记录的对应关系,以及授权信息中的MAC地址00e0-d26b-8121和VLAN 10,将端口E1/0/0加入VLAN 10。

步骤1110,网络设备13向接入设备12发送第四LISP报文,第四LISP报文携带终端11的MAC地址00e0-d26b-8121和授权信息,授权信息至少包括VLAN ID。

为了通过第四LISP报文携带终端11的MAC地址00e0-d26b-8121和授权信息,需要对LISP报文进行扩展。本实施例对图8中的LISP Message部分进行了扩展定义,具体如图13所示。

在本实施例中,第四LISP报文的LISP Message部分至少要携带终端11的MAC地址00e0-d26b-8121以及IP地址100.1.1.1中的至少一个,以及终端11的VLAN标识“VLAN10”。

如图13所示,第四LISP报文的LISP Message部分中包括报文类型指示符,用于指示本LISP报文包括终端设备MAC地址和VLAN ID。可选地,报文类型指示符用整数表示,保存在Type字段中。例如,用整数“7”来指示本LISP报文用于发送终端设备MAC地址和授权信息。实际上报文类型指示符的取值以及在LISP Message部分中的位置可以灵活设置,只要接入设备和网络设备都能根据预先的格式定义识别出报文类型指示符,从而确定该LISP报文的用途即可。通过该报文类型指示符,接入设备能够识别出用于封装MAC地址和授权信息的LISP报文,从而从中获得MAC地址和授权信息,更新用户信息表。

可选地,为了便于解析,可以通过LISP Message部分中的一个Record字段中记录一个终端的地址和VLAN标识的对应关系。例如通过一个Record字段记录终端11的地址和终端11的VLAN标识的对应关系。更具体地,将终端11的地址携带在该Record字段的端点标识(Endpoint ID,EID)子字段中,将VLAN标识“VLAN 10”携带在该Record字段的VLAN子字段中。可选地,如果认证服务器50未对中的11授权,则将VLAN子字段的取值置0。

可选地,还可以通过第四LISP报文通知接入设备终端设备地址的类型,以便于接入设备直接选用对应的协议栈进行解析,从而提升了接入设备从扩展LISP报文中解析获得用户终端地址的效率,以及后续查找用户信息表时的效率。

终端设备地址的类型至少包括IPv4地址、IPv6地址和MAC地址。可以用不同的地址类型指示符来代表对应的终端设备标识的类型。例如数字来代表对应的终端设备地址的类型,比如用数字1代表IPv4地址、数字2代表IPv6、数字16389代表MAC地址。在本实施例中将地址类型指示符携带在Record字段的AFI子字段中,如图13所示。

可选地,还可以通过第四LISP报文通知接入设备终端设备的认证结果。通过认证指示符的不同取值指示终端设备的认证结果,例如用整数0表示认证成功,用整数1表示认证失败。在本实施例中认证结果指示符携带在Record字段的S子字段中,如图13所示。

可选地,在接入设备12连接的终端设备数目较多时,有可能与接入设备12连接的多个终端设备在短时间内同时上线通过认证,为了提高接入设备12与网络设备13的通信效率,可以在同一个第四LISP报文中携带多条终端设备与授权信息的对应关系。在此情况下,可以在第四LISP报文的LISP Message部分增加一个Record Count字段,该字段的取值用于指示所述LISP报文携带的Record字段的数量,如图13所示。

步骤1111,接入设备12接收到第四LISP报文后,从第四LISP报文中获得终端11的MAC地址00e0-d26b-8121和VLAN10,并保存终端11的授权信息。

步骤1112,接入设备12将端口E1/0/1的缺省VLAN设置为VLAN 10。

可选地,接入设备12采用如图13所示的格式对第四LISP报文进行解析,从中得到终端11的MAC地址00e0-d26b-8121和授权信息,在如表3所示的用户信息表中根据终端11的MAC地址00e0-d26b-8121查找到对应的表项,在表项中添加对第四LISP报文解析得到的以VLAN标识“VLAN 10”为例的授权信息。

在上述包含终端11的MAC地址00e0-d26b-8121的表项中还包括与终端11连接的端口E1/0/1,在该表项中添加VLAN 10,即将端口E1/0/1的缺省VLAN设置为VLAN 10。

步骤1113,终端11访问终端21,接入设备12通过端口E1/0/1接收终端11发送的以太网帧。

步骤1114,接入设备12根据保存的用户信息表,查找到端口E1/0/1的缺省VLAN10,并在终端11发送的以太网帧的VLAN标签字段中添加VLAN 10。

步骤1115,接入设备12向网络设备13发送VLAN标签字段中已添加了VLAN 10的以太网帧。

步骤1116,网络设备13通过端口E1/0/0接收以太网帧,根据以太网帧中包括的VLAN10,在保存的VLAN ID到VNI的映射(如表1所示)中查询到VLAN 10映射的VNI 1000。

步骤1117,网络设备13在接收到的以太网帧上添加VXLAN头从而得到VXLAN报文,所述VXLAN头中VNI字段包括查找到的VNI 1000。

步骤1118,网络设备13向网络设备23发送VXLAN报文。

网络设备23对终端21发送的报文的处理过程与网络设备13类似,在这里不再重复说明。

本申请实施例还提供了一种VXLAN的实现系统,该系统包括网络设备和接入设备。其中网络设备和接入设备连接,网络设备支持VXLAN功能。终端设备通过接入设备访问网络。该系统的结构如附图1所示。网络设备和接入设备的工作流程、以及结构请参考前面各实施例中的描述。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

37页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种L2TP协议控制与转发分离的方法及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!