VXLAN隧道的建立方法、装置、网络系统及存储介质转让专利

申请号 : CN202210984909.X

文献号 : CN115065576B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 何维兵肖海彤

申请人 : 广州赛讯信息技术有限公司

摘要 :

本发明公开了一种VXLAN隧道的建立方法、装置、网络系统及存储介质,可以满足通信主机资源安全保护的要求,该方法包括:对接收到的VTI发送的探测授权请求报文进行认证,并在通过认证后,向AAA认证服务器发送认证请求信息;接收到AAA认证服务器发送的身份权限通过信息后,确定VTI具备VXLAN隧道接入权限,为VTI打开申请接入VXLAN隧道的服务端口,再向VTI返回认证结果和通信令牌;接收到VTI基于通信令牌发送的隧道建立请求报文后,分别向VTI和VTR发送隧道参数、隧道建立准备指令,以使VTI和VTR分别向对端IP地址开放隧道连接服务进行VXLAN隧道建立协商,完成VXLAN隧道建立。

权利要求 :

1.一种VXLAN隧道的建立方法,其特征在于,包括:

接收到虚拟隧道发起端VTI发送的探测授权请求报文,所述VTI为与用户终端连接的虚拟隧道终端VTEP,所述探测授权请求报文为用户数据协议UDP报文;

对所述探测授权请求报文进行认证,并在所述探测授权请求报文通过认证后,向AAA认证服务器发送认证请求信息;

接收到所述AAA认证服务发送的身份权限通过信息,所述身份权限通过信息为所述AAA认证服务器基于所述认证请求信息确定用户通过身份认证和隧道接入权限认证后发送的;

基于所述身份权限通过信息确定所述VTI具备VXLAN隧道接入权限,为所述VTI打开申请接入VXLAN隧道的服务端口,再向所述VTI返回认证结果和通信令牌,所述认证结果包括所述服务端口;

接收到所述VTI基于所述通信令牌发送的隧道建立请求报文后,向所述VTI发送隧道参数,并向虚拟隧道接收端VTR发送隧道建立准备指令,以使所述VTI和所述VTR分别向对端IP地址开放隧道连接服务进行VXLAN隧道建立协商,完成VXLAN隧道建立;所述VTR为与服务器连接的VTEP。

2.如权利要求1所述的方法,其特征在于,所述探测授权请求报文包括第一探测秘钥和UDP数据包,所述UDP数据包包括:用户终端的终端标识、客户端IP、VTR端口和第一账号密码,所述第一探测秘钥由所述VTI基于共享秘钥、用户账号、时间戳和控制器IP经过预设算法计算得到,所述第一探测秘钥保存在所述探测授权请求报文的前16个字节。

3.如权利要求2所述的方法,其特征在于,对所述探测授权请求报文进行认证,包括:基于所述探测授权请求报文,获得所述第一探测秘钥;

获取存储的第二探测秘钥列表,所述第二探测秘钥列表包含所有用户在当前时段的第二探测秘钥;

若确定所述第一探测秘钥位于所述第二探测秘钥列表中,确定所述探测授权请求报文通过认证。

4.如权利要求3所述的方法,其特征在于,确定所述探测授权请求报文通过认证之后,所述方法还包括:解析所述探测授权请求报文,获得所述UDP数据包;

将所述UDP数据包记录为收到的最后一个有效授权的数据包。

5.如权利要求2所述的方法,其特征在于,所述认证请求信息携带有所述用户账号和所述第一账号密码;接收到所述AAA认证服务器发送的身份权限通过信息,包括:通过所述AAA认证服务器基于所述认证请求信息,比对所述第一账号密码与预存的所述用户账号对应的第二账号密码,以及基于预存所述用户账号对应的业务属性判断用户是否具备VXLAN隧道接入权限;

接收到所述AAA认证服务器确定所述第一账号密码和所述第二账号密码相同,且用户具备VXLAN隧道接入权限后发送的所述身份权限通过信息。

6.如权利要求5所述的方法,其特征在于,基于所述身份权限通过信息确定所述VTI具备VXLAN隧道接入权限,为所述VTI打开申请接入VXLAN隧道的服务端口,再向所述VTI返回认证结果和通信令牌,包括:基于所述身份权限通过信息,确定用户通过身份认证以及具备VXLAN隧道接入权限,确定所述VTI具备VXLAN隧道接入权限;

指定所述VTI的一个空闲端口为所述服务端口,再向所述VTI返回认证结果和通信令牌。

7.如权利要求5所述的方法,其特征在于,所述身份权限通过信息包括RADIUS报文;向所述VTI发送隧道参数之前,所述方法还包括:基于所述RADIUS报文的属性值获取所述隧道参数,所述隧道参数包括VXLAN隧道目标IP、隧道密码、VXLAN网络标识符VNI和隧道带宽。

8.一种VXLAN隧道的建立装置,其特征在于,包括:

接收单元,用于接收到VTI发送的探测授权请求报文,所述VTI为与用户终端连接的VTEP,所述探测授权请求报文为用户数据协议UDP报文;

认证单元,用于对所述探测授权请求报文进行认证;

发送单元,用于在所述探测授权请求报文通过认证后,向AAA认证服务器发送认证请求信息;

所述接收单元,还用于接收到所述AAA认证服务器发送的身份权限通过信息,所述身份权限通过信息为所述AAA认证服务器基于所述认证请求信息确定用户通过身份认证和隧道接入权限认证后发送的;

所述认证单元,还用于基于所述身份权限通过信息确定所述VTI具备VXLAN隧道接入权限,为所述VTI打开申请接入VXLAN隧道的服务端口;

所述发送单元,还用于向所述VTI返回认证结果和通信令牌,所述认证结果包括所述服务端口;

所述发送单元,用于在所述接收单元接收到所述VTI基于所述通信令牌发送的隧道建立请求报文后,向所述VTI发送隧道参数,并向VTR发送隧道建立准备指令,以使所述VTI和所述VTR分别向对端IP地址开放隧道连接服务进行VXLAN隧道建立协商,完成VXLAN隧道建立;所述VTR为与服务器连接的VTEP。

9.一种网络系统,其特征在于,包括:VTI、VTR、AAA认证服务器和控制器,VTI为与用户终端连接的VTE,VTR为与服务器连接的VTEP;其中,所述VTI,用于向所述控制器发送探测授权请求报文,所述探测授权请求报文为用户数据协议UDP报文;

所述控制器,用于对所述探测授权请求报文进行认证,并在所述探测授权请求报文通过认证后,向所述AAA认证服务器发送认证请求信息;

所述AAA认证服务器,用于基于所述认证请求信息对用户进行身份认证和隧道接入权限认证,并在确定用户通过身份认证和隧道接入权限认证通过后,向所述控制器发送身份权限通过信息;

所述控制器,还用于基于所述身份权限通过信息确定所述VTI具备VXLAN隧道接入权限后,为所述VTI打开申请接入VXLAN隧道的服务端口,再向所述VTI返回认证结果和通信令牌,所述认证结果包括服务端口;

所述VTI,还用于基于所述通信令牌向所述控制器发送隧道建立请求报文;

所述控制器,还用于接收所述隧道建立请求报文,基于所述隧道建立请求报文向所述VTI发送隧道参数,并向所述VTR发送隧道建立准备指令;

所述VTI,还用于基于所述隧道参数向所述VTR的IP地址开放隧道连接服务,与所述VTR进行VXLAN隧道建立协商,以完成VXLAN隧道的建立;

所述VTR,用于基于所述隧道建立准备指令向所述VTI 的IP地址开放隧道连接服务,与所述VTI进行VXLAN隧道建立协商,以完成VXLAN隧道的建立。

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有至少一个程序;当所述至少一个程序被处理器执行时,执行如权利要求1‑7任一项所述的方法。

说明书 :

VXLAN隧道的建立方法、装置、网络系统及存储介质

技术领域

[0001] 本发明涉及网络通信技术领域,特别是涉及一种VXLAN隧道的建立方法、装置、网络系统及存储介质。

背景技术

[0002] 虚拟可扩展局域网(Virtual eXtensible Local Area Network,VXLAN)网络虚拟化技术,其可以解决传统虚拟局域网(Virtual Local Area Network,VLAN)无法满足大二层网络需求的问题。它将原始报文封装在用户数据协议(User Date Protocol,UDP)报文里,通过VXLAN封装后的2层以太网帧可以跨3层网络边界,让组网以及应用部署变得更加灵活。
[0003] 通过在两端虚拟隧道终端(Virtual Tunnel End Point,VTEP)上配置好双方的VXLAN隧道参数即可进行通信。VXLAN隧道最初用于解决VLAN资源易耗尽及虚机迁移等问题,因此没有像其它隧道技术如IPSec、L2TP等加入认证、识别等功能。而在公众互联网场景下,VXLAN隧道建立及通信过程中,VTEP必须暴露在固定公网IP上,缺乏对不可信区域的用户、终端等因素的评估,缺少用户账号身份识别认证,容易会导致潜在安全威胁的发生,难以满足通信主机资源安全保护的要求。

发明内容

[0004] 基于此,本发明的目的在于提供一种VXLAN隧道的建立方法、装置、网络系统及存储介质,用于解决公众互联网场景下VXLAN隧道建立及通信过程中VTEP因公网暴露导致的网络安全威胁问题,以满足通信主机资源安全保护的要求。
[0005] 第一方面,本发明提供了一种VXLAN隧道的建立方法,包括:
[0006] 接收到VTI发送的探测授权请求报文,所述VTI为与用户终端连接的VTEP,所述探测授权请求报文为用户数据协议UDP报文;
[0007] 对所述探测授权请求报文进行认证,并在所述探测授权请求报文通过认证后,向AAA认证服务器发送认证请求信息;
[0008] 接收到所述AAA认证服务器基于发送的身份权限通过信息,所述身份权限通过信息为所述AAA认证服务器基于所述认证请求信息确定用户通过身份认证和隧道接入权限认证后发送的;
[0009] 基于所述身份权限通过信息确定所述VTI具备VXLAN隧道接入权限,为所述VTI打开申请接入VXLAN隧道的服务端口,再向所述VTI返回认证结果和通信令牌,所述认证结果包括所述服务端口;
[0010] 接收到所述VTI基于所述通信令牌发送的隧道建立请求报文后,向所述VTI发送隧道参数,并向VTR发送隧道建立准备指令,以使所述VTI和所述VTR分别向对端IP地址开放隧道连接服务进行VXLAN隧道建立协商,完成VXLAN隧道建立;所述VTR为与服务器连接的VTEP。
[0011] 在一种可能的设计中,所述探测授权请求报文包括第一探测秘钥和UDP数据包,所述UDP数据包包括:用户终端的终端标识、客户端IP、VTR端口和第一账号密码;所述第一探测秘钥由所述VTI基于共享秘钥、用户账号、时间戳和控制器IP经过预设算法计算得到,所述第一探测秘钥保存在所述探测授权请求报文的前16个字节。
[0012] 在一种可能的设计中,对所述探测授权请求报文进行认证,包括:
[0013] 基于所述探测授权请求报文,获得所述第一探测秘钥;
[0014] 获取存储的第二探测秘钥列表,所述第二探测秘钥列表包含所有用户在当前时段的第二探测秘钥;
[0015] 若确定所述第一探测秘钥位于所述第二探测秘钥列表中,确定所述探测授权请求报文通过认证。
[0016] 在一种可能的设计中,确定所述探测授权请求报文通过认证之后,所述方法还包括:
[0017] 解析所述探测授权请求报文,获得所述UDP数据包;
[0018] 将所述UDP数据包记录为收到的最后一个有效授权的数据包。
[0019] 在一种可能的设计中,所述认证请求信息携带有所述用户账号和所述第一账号密码;接收到所述AAA认证服务器发送的身份权限通过信息,包括:
[0020] 通过所述AAA认证服务器基于所述认证请求信息,比对所述第一账号密码与预存的所述用户账号对应的第二账号密码,以及基于预存所述用户账号对应的业务属性判断用户是否具备VXLAN隧道接入权限;
[0021] 接收到所述AAA认证服务器确定所述第一账号密码和所述第二账号密码相同,且用户具备VXLAN隧道接入权限后发送的所述身份权限通过信息。
[0022] 在一种可能的设计中,基于所述身份权限通过信息确定所述VTI具备VXLAN隧道接入权限,为所述VTI打开申请接入VXLAN隧道的服务端口,再向所述VTI返回认证结果和通信令牌,包括:
[0023] 基于所述身份权限通过信息,确定用户通过身份认证以及具备VXLAN隧道接入权限,确定所述VTI具备VXLAN隧道接入权限;
[0024] 指定所述VTI的一个空闲端口为所述服务端口,再向所述VTI返回认证结果和通信令牌。
[0025] 在一种可能的设计中,所述身份权限通过信息包括RADIUS报文;向所述VTI发送隧道参数之前,所述方法还包括:
[0026] 基于所述RADIUS报文的属性值获取所述隧道参数,所述隧道参数包括VXLAN隧道目标IP、隧道密码、VXLAN网络标识符VNI和隧道带宽。
[0027] 第二方面,本发明还提供了一种VXLAN隧道的建立装置,包括:
[0028] 接收单元,用于接收到VTI发送的探测授权请求报文,所述VTI为与用户终端连接的VTEP,所述探测授权请求报文为用户数据协议UDP报文;
[0029] 认证单元,用于对所述探测授权请求报文进行认证;
[0030] 发送单元,用于在所述探测授权请求报文通过认证后,向AAA认证服务器发送认证请求信息;
[0031] 所述接收单元,还用于接收到所述AAA认证服务器发送的身份权限通过信息,所述身份权限通过信息为所述AAA认证服务器基于所述认证请求信息确定用户通过身份认证和隧道接入权限认证后发送的;
[0032] 所述认证单元,还用于基于所述身份权限通过信息确定所述VTI具备VXLAN隧道接入权限,为所述VTI打开申请接入VXLAN隧道的服务端口;
[0033] 所述发送单元,还用于向所述VTI返回认证结果和通信令牌,所述认证结果包括所述服务端口;
[0034] 所述发送单元,用于在所述接收单元接收到所述VTI基于所述通信令牌发送的隧道建立请求报文后,向所述VTI发送隧道参数,并向VTR发送隧道建立准备指令,以使所述VTI和所述VTR分别向对端IP地址开放隧道连接服务进行VXLAN隧道建立协商,完成VXLAN隧道建立;所述VTR为与服务器连接的VTEP。
[0035] 在一种可能的设计中,所述探测授权请求报文包括第一探测秘钥和UDP数据包,所述UDP数据包包括:用户终端的终端标识、客户端IP、VTR端口和第一账号密码,所述第一探测秘钥由所述VTI基于共享秘钥、用户账号、时间戳和控制器IP经过预设算法计算得到,所述第一探测秘钥保存在所述探测授权请求报文的前16个字节。
[0036] 在一种可能的设计中,所述认证单元具体用于:基于所述探测授权请求报文,获得所述第一探测秘钥;获取存储的第二探测秘钥列表,所述第二探测秘钥列表包含所有用户在当前时段的第二探测秘钥;若确定所述第一探测秘钥位于所述第二探测秘钥列表中,确定所述探测授权请求报文通过认证。
[0037] 在一种可能的设计中,所述认证单元还用于:解析所述探测授权请求报文,获得所述UDP数据包;将所述UDP数据包记录为收到的最后一个有效授权的数据包。
[0038] 在一种可能的设计中,所述认证请求信息携带有所述用户账号和所述第一账号密码;所述接收单元具体用于:通过所述AAA认证服务器基于所述认证请求信息,比对所述第一账号密码与预存的所述用户账号对应的第二账号密码,以及基于预存所述用户账号对应的业务属性判断用户是否具备VXLAN隧道接入权限;接收到所述AAA认证服务器确定所述第一账号密码和所述第二账号密码相同,且用户具备VXLAN隧道接入权限后发送的所述身份权限通过信息。
[0039] 在一种可能的设计中,所述认证单元具体用于:基于所述身份权限通过信息,确定用户通过身份认证以及具备VXLAN隧道接入权限,确定所述VTI具备VXLAN隧道接入权限;指定所述VTI的一个空闲端口为所述服务端口;
[0040] 所述发送单元具体用于:向所述VTI返回认证结果和通信令牌。
[0041] 在一种可能的设计中,所述身份权限通过信息包括RADIUS报文;所述认证单元还用于:基于所述RADIUS报文的属性值获取所述隧道参数,所述隧道参数包括VXLAN隧道目标IP、隧道密码、VXLAN网络标识符VNI和隧道带宽。
[0042] 第三方面,本发明还提供了一种VXLAN隧道的建立装置,所述VXLAN隧道的建立装置包括:至少一个存储器和至少一个处理器;
[0043] 所述至少一个存储器用于存储一个或多个程序;
[0044] 当所述一个或多个程序被所述至少一个处理器执行时,实现上述第一方面任一种可能设计所涉及的方法。
[0045] 第四方面,本发明还提供了一种网络系统,包括:VTI、VTR、AAA认证服务器和控制器,VTI为与用户终端连接的VTE,VTR为与服务器连接的VTEP;其中,
[0046] 所述VTI,用于向所述控制器发送探测授权请求报文,所述探测授权请求报文为用户数据协议UDP报文;
[0047] 所述控制器,用于对所述探测授权请求报文进行认证,并在所述探测授权请求报文通过认证后,向所述AAA认证服务器发送认证请求信息;
[0048] 所述AAA认证服务器,用于基于所述认证请求信息对用户进行身份认证和隧道接入权限认证,并在确定用户通过身份认证和隧道接入权限认证通过后,向所述控制器发送身份权限通过信息;
[0049] 所述控制器,还用于基于所述身份权限通过信息确定所述VTI具备VXLAN隧道接入权限后,为所述VTI打开申请接入VXLAN隧道的服务端口,再向所述VTI返回认证结果和通信令牌,所述认证结果包括服务端口;
[0050] 所述VTI,还用于基于所述通信令牌向所述控制器发送隧道建立请求报文;
[0051] 所述控制器,还用于接收所述隧道建立请求报文,基于所述隧道建立请求报文向所述VTI发送隧道参数,并向所述VTR发送隧道建立准备指令;
[0052] 所述VTI,还用于基于所述隧道参数向所述VTR的IP地址开放隧道连接服务,与所述VTR进行VXLAN隧道建立协商,以完成VXLAN隧道的建立;
[0053] 所述VTR,用于基于所述隧道建立准备指令向所述VTI 的IP地址开放隧道连接服务,与所述VTI进行VXLAN隧道建立协商,以完成VXLAN隧道的建立。
[0054] 第五方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有至少一个程序;当所述至少一个程序被处理器执行时,实现上述第一方面任一种可能设计所涉及的方法。
[0055] 本发明的有益技术效果如下:
[0056] 在本发明中,通过控制器与AAA认证服务器协同对VTI进行身份认证,相较于传统的VXLAN管理模式中未能实现与账号关联而言,可以满足客户个性化速率配置需求,以及通过控制器控制动态开放VTI和VTR的IP地址,可以满足VXLAN隧道需要预先配置双方隧道端点IP地址的需求,相较于传统的VXLAN隧道建立大多数依靠手工配置而言,可以满足面向公众客户大规模推广的要求,还可以对VTI和VTR的IP地址进行隐藏,从而可以解决因VTI和VTR暴露在固定公网IP上而导致的网络安全威胁的问题,最大限度地保护了最大限度满足通信主机(如用户终端、VTI和VTR)安全保护要求。

附图说明

[0057] 图1为本发明提供的一种网络系统的架构示意图;
[0058] 图2为本发明提供的一种VXLAN隧道的建立方法的流程示意图;
[0059] 图3为本发明提供的一种VXLAN隧道的建立装置的结构示意图;
[0060] 图4为本发明提供的另一种VXLAN隧道的建立装置的结构示意图。

具体实施方式

[0061] 在本说明书中提到或者可能提到的上、下、左、右、前、后、正面、背面、顶部、底部等方位用语是相对于其构造进行定义的,它们是相对的概念。因此,有可能会根据其所处不同位置、不同使用状态而进行相应地变化。所以,也不应当将这些或者其他的方位用语解释为限制性用语。
[0062] 以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与本公开的一些方面相一致的实施方式的例子。
[0063] 在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本公开中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0064] 除非有相反的说明,本公开中提及“第一”、“第二”等序数词用于对多个对象进行区分,不用于限定多个对象的顺序、时序、优先级或者重要程度。
[0065] 为了更好地理解和实施,下面结合附图详细说明本申请的技术方案。
[0066] 请参考图1所示,为本发明提供的一种网络系统的架构示意图。其中,该网络系统10可以包括虚拟隧道发起端(Virtual Tunnel Initiator,VTI)11、虚拟隧道接收端(Virtual Tunnel Receiver,VTR)12、验证、授权和记账(Authentication Authorization Accounting,AAA)认证服务器13和控制器14。其中,VTI 11为与用户终端15连接的虚拟隧道终端(Virtual Tunnel End Point,VTEP)。VTR 12为与服务器16连接的VTEP。
[0067] 应理解,本发明中提供的网络系统10的应用场景可以包括但不限于:长期演进(Long  Term  Evolution,LTE)系统、通用移动通信系统(Universal Mobile Telecommunication System,UMTS)、未来的第五代(5th generation,5G)系统等。
[0068] 应理解,本发明中提供的VTI 11,主要负责VXLAN隧道建立发起,负责与控制器14通信,以及根据控制器14返回的清单列表(包括认证结果和隧道参数)与目标VTR 12连接通信。
[0069] 应理解,本发明中提供的VTR 12,主要负责VXLAN隧道响应及终结,负责根据控制器14指令(如隧道建立准备指令)开放相应服务并与发起方VTI 11通信。VTR 12服务端口号在探测授权之前不对请求方开启任何服务,强制要求先认证后连接,做到了VTR 12服务隐藏和按需开启,减小攻击面,同时有助于抵御DDoS攻击。
[0070] 应理解,本发明中提供的AAA认证服务器13,可以但不限于实现对隧道接入用户的认证、授权、计费服务。AAA认证服务器13主要负责接收和处理控制器14发送过来的认证请求信息,实现对用户接入身份的认证、授权、计费及根据账号属性下发隧道速率属性等功能。
[0071] 应理解,本发明中提供的控制器14,可以但不限于实现对探测授权请求报文响应、隧道建立请求报文处理等功能。控制器14主要负责接收和处理VTI 11发送过来的探测授权请求报文,根据AAA认证服务器13的认证结果引导VTI 11与VTR 12双方进行隧道建立协商。
[0072] 应理解,图1所示的用户终端15可以为但不限于:手机、平板、笔记本电脑、台式电脑、智能穿戴设备等设备。
[0073] 参考图1所示,VTI 11与控制器14之间的通信,控制器14与AAA认证服务器13之间的通信,控制器14与VTR 12之间的通信可以直接进行,或者也可以通过中间设备间接进行,本发明对此不作限定。其中:
[0074] 在具体实施时,VTI 11用于向控制器14发送探测授权请求报文。相应的,控制器14接收来自VTI 11的探测授权请求报文。其中,探测授权请求报文为用户数据协议(User Date Protocol,UDP)报文。
[0075] 在具体实施时,控制器14用于对探测授权请求报文进行认证,并在探测授权请求报文通过认证后,向AAA认证服务器13发送认证请求信息。相应的,AAA认证服务器13接收到来自控制器14的认证请求信息。
[0076] 在具体实施时,AAA认证服务器13用于基于认证请求信息对用户进行身份认证和隧道接入权限认证,并在确定用户通过身份认证和隧道接入权限认证通过后,向控制器14发送身份权限通过信息。相应的,控制器14接收到来自AAA认证服务器13的身份权限通过信息。
[0077] 在具体实施时,控制器14用于基于身份权限通过信息确定VTI 11具备VXLAN隧道接入权限,为VTI 11打开申请接入VXLAN隧道的服务端口,再向VTI 11返回认证结果和通信令牌,认证结果包括服务端口;
[0078] 在具体实施时,VTI 11还用于基于通信令牌向控制器14发送隧道建立请求报文。相应的,控制器14接收到来自VTI 11的隧道建立请求报文。
[0079] 在具体实施时,控制器14还用于基于隧道建立请求报文向VTI 11发送隧道参数,并向VTR 12发送隧道建立准备指令。
[0080] 在具体实施时,VTI 11还用于基于隧道参数向VTR 12的IP地址开放隧道连接服务,与VTR 12进行VXLAN隧道建立协商。
[0081] 在具体实施时,VTR 12还用于基于隧道建立准备指令向VTI 11的IP地址开放隧道连接服务,与VTI 11进行VXLAN隧道建立协商。
[0082] 在VTI 11和VTR 12完成VXLAN隧道建立后,用户终端11和服务器16之间可以通过二层局域网进行通信。
[0083] 在本发明中,通过探测授权方式,可以满足VTI 11、VTR 12等通信设施网络隐身需求,从而可以解决隧道通信终端设施因公网暴露导致的网络安全威胁问题,实现了在公网互联网环境中快速安全管控VTI 11和VTR 12之间的通信,最大限度满足通信主机(如用户终端15、VTI 11和VTR 12)安全保护要求。同时,通过控制器14、AAA认证服务器14协同,可以实现VTI 11与VTR 12之间的VXLAN隧道建立自动化、可管可控管理,提供了面向公众客户VXLAN连接服务能力。
[0084] 下面将结合附图详细介绍本发明提供的VXLAN隧道的建立方法的技术方案。
[0085] 应理解,本发明所示的方法不仅应用于如图1所示的网络系统,还可以应用于未来其它的网络系统。
[0086] 本发明提供了一种VXLAN隧道的建立方法,请参考图2所示,以执行主体为控制器为例,该方法包括如下:
[0087] S21、接收到VTI发送的探测授权请求报文。
[0088] 在一些实施例中,探测授权请求报文为UDP报文。
[0089] 在具体实施时,初始状态下,可以通过用户人工输入VTI的配置参数,以便于VTI根据该配置参数向控制器发送探测授权请求报文。其中,VTI的配置参数可以包括但不限于:用户的账号密码、控制器的IP地址或域名。
[0090] 在具体实施时,VTI可以按照预设方式向控制器发送探测授权请求报文,比如,可以周期性向控制器发送探测授权请求报文。其中,探测授权请求报文为VTI在未与VTR建立VXLAN隧道之前向控制器发送的报文。
[0091] 在具体实施时,VTI可以基于共享秘钥、用户账号、时间戳和控制器IP经过预设的秘钥算法计算得到第一探测秘钥。之后,VTI可以将用户终端的终端标识、用户端IP、VTR端口和第一账号密码等信息打包成UDP数据包,再将第一探测秘钥和UDP数据包封装成UDP报文格式的探测授权请求报文,向控制器发送探测授权请求报文,比如向控制器指定的探测端口发送探测授权请求报文。即探测授权请求报文包括第一探测秘钥和UDP数据包,UDP数据包包括:用户终端的终端标识、用户端IP、VTR端口和第一账号密码等信息。其中,第一探测秘钥可以保存在探测授权请求报文的前16个字节。
[0092] 需要说明的是,共享秘钥可以为预存在VTI中,或者,也可以预存在控制器中,VTI从控制器中获取共享秘钥,等等,本发明对此不作限定。上述秘钥算法可以为现有的秘钥算法,如数据加密标准(Data Encryption Standard,DES)算法或其它现有的秘钥算法,本发明对此不作限定。
[0093] S22、对探测授权请求报文进行认证,并在探测授权请求报文通过认证后,向AAA认证服务器发送认证请求信息。
[0094] 在具体实施时,控制器存储有第二探测秘钥列表,其中,第二探测秘钥列表包含所有用户在当前的第二探测秘钥。
[0095] 在具体实施时,控制器接收到探测授权请求报文后,可以基于探测授权请求报文获得第一探测秘钥。控制器可以通过判断第一探测秘钥是否位于第二探测秘钥列表中,判断探测授权请求报文是否通过认证。比如,若控制器确定第一探测秘钥位于第二探测秘钥列表中,则确定探测授权请求报文通过认证。或者,若控制器确定第一探测秘钥未位于第二探测秘钥列表中,则确定探测授权请求报文未通过认证,那么控制器可以直接扔掉探测授权请求报文,不在尝试解析探测授权请求报文中的其它数据,如UDP数据包,也不会执行后续步骤。
[0096] 需要说明的是,第一探测秘钥和第二探测秘钥是动态更新的,即不同时段的第一探测秘钥、不同时段的第二探测秘钥可能不同。
[0097] 在具体实施时,控制器在确定探测授权请求报文通过认证后,还可以解析探测授权请求报文,以获得UDP数据包,并将该UDP数据包记录为收到的最后一个有效授权的数据包,以防止攻击者发送旧的数据包进行重放攻击。
[0098] 在具体实施时,控制器确定探测授权请求报文通过认证后,可以向AAA认证服务器发送认证请求信息,用于请求对VTI进行VXLAN隧道接入权限认证。其中,认证请求信息携带有用户账号和第一账号密码。比如,控制器解析探测授权请求报文获得UDP数据包后,可以继续解析UDP数据包,获得用户终端的终端标识、用户端IP、VTR端口和第一账号密码等信息,再将携带有用户账号和第一账号密码的认证请求信息发送给AAA认证服务器。
[0099] S23、接收到AAA认证服务器发送的身份权限通过信息。
[0100] 在具体实施时,用户在客户关系管理(Customer Relationship Management,CRM)上开户后,CRM可以将用户的用户账号和第二账号密码发送给AAA服务器进行预存。以及,用户在CRM订购相应的套餐后,CRM可以确定用户订购的套餐对应的业务属性,然后将用户账号对应的业务属性发送给AAA认证服务器进行预存。例如,用户订购了云网络附属存储(Network Attached Storage,NAS)业务,CRM分配给该用户的业务属性为云NAS,然后将云NAS发送给AAA认证服务器,由AAA认证服务器将用户的用户账号与云NAS对应存储。
[0101] 当然,在具体实施时,业务属性还可以包含速率等其它信息。
[0102] 在具体实施时,身份权限通过信息为AAA认证服务器基于认证请求信息确定用户通过身份认证和隧道接入权限认证后发送的。比如,AAA认证服务器接收到该认证请求信息后,可以基于该认证请求信息,比对第一账号密码与预存的用户账号对应的第二账号密码,以及基于预存用户账号对应的业务属性判断用户是否具备VXLAN隧道接入权限,比如用户账号对应的业务属性包含云资源业务(例如云NAS业务),那么AAA认证服务器可以确定用户具备VXLAN隧道接入权限。
[0103] 在具体实施时,当AAA认证服务器确定第一账号密码和第二账号密码相同,且用户具备VXLAN隧道接入权限后,可以确定用户通过身份认证和隧道接入权限认证,此时,可以向控制器发送身份权限通过信息,用于指示用户通过身份认证以及具备VXLAN隧道接入权限。或者,当AAA认证服务器确定第一账号密码和第二账号不相同,或者用户不具备VXLAN隧道接入权限后,可以确定用户未通过身份认证或未通过隧道接入权限认证,AAA认证服务器可以丢弃认证请求信息。
[0104] 本发明中,通过控制器与AAA认证服务器协同对VTI进行身份认证,相较于传统的VXLAN管理模式中未能实现与账号关联而言,可以满足客户个性化速率配置需求。
[0105] S24、基于身份权限通过信息确定VTI具备VXLAN隧道接入权限,为VTI打开申请接入的服务端口,再向VTI返回认证结果和通信令牌。
[0106] 在具体实施时,控制器可以基于接收到AAA发送的身份权限通过信息,确定用户通过身份认证以及具备VXLAN隧道接入权限,从而确定VTI具备VXLAN隧道接入权限。可以理解为,只有在用户通过身份认证和具备VXLAN隧道接入权限的条件下,VTI才具备VXLAN隧道接入权限。
[0107] 在具体实施时,控制器可以指定VTI的一个空闲端口为接入VXLAN隧道的服务端口,再向VTI包括有该服务端口的返回认证结果和通信令牌。
[0108] 在具体实施时,VTI接收到控制器发送的认证结果和通信令牌后,可以基于通信令牌向控制器发送隧道建立请求报文。
[0109] S25、接收到VTI基于通信令牌发送的隧道建立请求报文后,向VTI发送隧道参数,并向VTR发送隧道建立准备指令,以使VTI和VTR分别向对端IP地址开放隧道连接服务进行VXLAN隧道建立协商,完成VXLAN隧道建立。
[0110] 在具体实施时,该身份权限通过信息可以包括远程用户拨号认证系统(Remote Authentication Dial In User Service,RADIUS)报文。控制器可以基于RADIUS报文的属性值获取隧道参数。
[0111] 在具体实施时,隧道参数可以包括但不限于VXLAN隧道目标IP、隧道密码、VXLAN网络标识符VNI和隧道带宽。
[0112] 在具体实施时,VTI接收到隧道参数后,可以基于隧道参数对VTR的IP地址开放VXLAN服务,比如通上述服务端口对VTR的IP地址开放VXLAN服务。VTR接收到隧道建立准备指令后,可以基于隧道建立准备指令对VTI的IP地址开放VXLAN服务,比如,隧道建立准备指令可以携带有VTI的IP地址,VTR接收到隧道建立准备指令后可以对VTI的IP地址开放VXLAN服务。此时,VTI和VRT可以进行VXLAN隧道建立协商。VTI和VRT完成VXLAN隧道建立后,可以实现用户终端与服务器之间的二层局域网通信。
[0113] 通过以上描述可知,在本发明中,通过控制器与AAA认证服务器协同对VTI进行身份认证,相较于传统的VXLAN管理模式中未能实现与账号关联而言,可以满足客户个性化速率配置需求,以及通过控制器控制动态开放VTI和VTR的IP地址,可以满足VXLAN隧道需要预先配置双方隧道端点IP地址的需求,相较于传统的VXLAN隧道建立大多数依靠手工配置而言,可以满足面向公众客户大规模推广的要求,还可以对VTI和VTR的IP地址进行隐藏,从而可以解决因VTI和VTR暴露在固定公网IP上而导致的网络安全威胁的问题,最大限度地保护了最大限度满足通信主机(如用户终端、VTI和VTR)安全保护要求。
[0114] 基于同一发明构思,本发明还提供了一种VXLAN隧道的建立装置,如图3所示,VXLAN隧道的建立装置30可以包括:
[0115] 接收单元31,用于接收到VTI发送的探测授权请求报文,VTI为与用户终端连接的VTEP,探测授权请求报文为用户数据协议UDP报文;
[0116] 认证单元32,用于对探测授权请求报文进行认证;
[0117] 发送单元33,用于在探测授权请求报文通过认证后,向AAA认证服务器发送认证请求信息;
[0118] 接收单元31,还用于接收到AAA认证服务器发送的身份权限通过信息,身份权限通过信息为AAA认证服务器基于认证请求信息确定用户通过身份认证和隧道接入权限认证后发送的;
[0119] 认证单元32,还用于基于身份权限通过信息确定VTI具备VXLAN隧道接入权限,为VTI打开申请接入VXLAN隧道的服务端口;
[0120] 发送单元33,还用于向VTI返回认证结果和通信令牌,认证结果包括服务端口;
[0121] 发送单元33,用于在接收单元31接收到VTI基于通信令牌发送的隧道建立请求报文后,向VTI发送隧道参数,并向VTR发送隧道建立准备指令,以使VTI和VTR分别向对端IP地址开放隧道连接服务进行VXLAN隧道建立协商,完成VXLAN隧道建立;VTR为与服务器连接的VTEP。
[0122] 在一种可能的设计中,探测授权请求报文包括第一探测秘钥和UDP数据包,UDP数据包包括:用户终端的终端标识、客户端IP、VTR端口和第一账号密码,第一探测秘钥由VTI基于共享秘钥、用户账号、时间戳和控制器IP经过预设算法计算得到,第一探测秘钥保存在探测授权请求报文的前16个字节。
[0123] 在一种可能的设计中,认证单元32具体用于:基于探测授权请求报文,获得第一探测秘钥;获取存储的第二探测秘钥列表,第二探测秘钥列表包含所有用户在当前时段的第二探测秘钥;若确定第一探测秘钥位于第二探测秘钥列表中,确定探测授权请求报文通过认证。
[0124] 在一种可能的设计中,认证单元32还用于:解析探测授权请求报文,获得UDP数据包;将UDP数据包记录为收到的最后一个有效授权的数据包。
[0125] 在一种可能的设计中,认证请求信息携带有用户账号和第一账号密码;接收单元31具体用于:通过AAA认证服务器基于认证请求信息,比对第一账号密码与预存的用户账号对应的第二账号密码,以及基于预存用户账号对应的业务属性判断用户是否具备VXLAN隧道接入权限;接收到AAA认证服务器确定第一账号密码和第二账号密码相同,且用户具备VXLAN隧道接入权限后发送的身份权限通过信息。
[0126] 在一种可能的设计中,认证单元32具体用于:基于身份权限通过信息,确定用户通过身份认证以及具备VXLAN隧道接入权限,确定VTI具备VXLAN隧道接入权限;指定VTI的一个空闲端口为服务端口;
[0127] 发送单元33具体用于:向VTI返回认证结果和通信令牌。
[0128] 在一种可能的设计中,身份权限通过信息包括RADIUS报文;认证单元32还用于:基于RADIUS报文的属性值获取隧道参数,隧道参数包括VXLAN隧道目标IP、隧道密码、VXLAN网络标识符VNI和隧道带宽。
[0129] 本发明中的VXLAN隧道的建立装置30与上述图2所示的VXLAN隧道的建立方法是基于同一构思下的发明,通过前述对VXLAN隧道的建立方法的详细描述,本领域技术人员可以清楚的了解本实施例中VXLAN隧道的建立装置30的实施过程,所以为了说明书的简洁,在此不再赘述。
[0130] 基于同一发明构思,本发明还提供了一种VXLAN隧道的建立装置,如图4所示,VXLAN隧道的建立装置40可以包括:至少一个存储器31和至少一个处理器42。其中:
[0131] 至少一个存储器41用于存储一个或多个程序。
[0132] 当一个或多个程序被至少一个处理器42执行时,实现上述图2所示的VXLAN隧道的建立方法。
[0133] VXLAN隧道的建立装置40还可以可选地包括通信接口,通信接口用于与外部设备进行通信和数据交互传输。
[0134] 需要说明的是,存储器41可能包含高速RAM存储器,也可能还包括非易失性存储器(nonvolatile memory),例如至少一个磁盘存储器。
[0135] 在具体的实现过程中,如果存储器41、处理器42及通信接口集成在一块芯片上,则存储器41、处理器42及通信接口可以通过内部接口完成相互间的通信。如果存储器41、处理器42和通信接口独立实现,则存储器41、处理器42和通信接口可以通过总线相互连接并完成相互间的通信。
[0136] 基于同一发明构思,本发明还提供了一种计算机可读存储介质,该计算机可读存储介质可以存储有至少一个程序,当至少一个程序被处理器执行时,实现上述图2所示的VXLAN隧道的建立方法。
[0137] 应当理解,计算机可读存储介质为可存储数据或程序的任何数据存储设备,数据或程序其后可由计算机系统读取。计算机可读存储介质的示例包括:只读存储器、随机存取存储器、CD‑ROM、HDD、DVD、磁带和光学数据存储设备等。
[0138] 计算机可读存储介质还可分布在网络耦接的计算机系统中使得计算机可读代码以分布式方式来存储和执行。
[0139] 计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、射频(Radio Frequency,RF)等,或者上述的任意合适的组合。
[0140] 以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。