一种基于SNI的服务器负载均衡方法及设备技术

技术编号:15794886 阅读:160 留言:0更新日期:2017-07-10 10:18
本发明专利技术涉及一种基于指定服务器域名的服务器负载均衡方法及设备,其方法是解析负载均衡设备收到带有域名的Client-Hello消息,通过解析TLS扩展消息的client-hello得到域名,并以此在响应该域名请求的服务群组中根据负载均衡算法找出一台服务器,此后所有的握手信息和加密数据对负载均衡设备透明。本发明专利技术与仅利用TLS扩展消息域名就达到了负载均衡的目的,大大降低了运行成本,同时快速且透明转发建立安全连接时的TLS握手消息和后续加密数据。

【技术实现步骤摘要】
一种基于SNI的服务器负载均衡方法及设备
本专利技术涉及网络应用交付控制领域,特别涉及一种基于指定服务器域名(severnameindication,以下简称:SNI)的服务器负载均衡方法及设备。
技术介绍
TLS(transportlayersecurity传输层安全协议)在RFC(RequestForComments)6066中增加SNI扩展使得用户在同一个IP上安全地响应不同的服务,它能满足用户端通过该扩展消息明确指定希望与哪个服务建立安全连接;当服务端收到该消息后返回相应服务需要的证书来建立安全连接;达到不增加公网IP的情况下实现对不同服务的不同的安全连接的建立。TLS协议的扩展属性SNI是通过发送虚拟主机名作为TLS协商的一部分,这使得服务器可以在握手阶段选择正确虚拟域,并发送对应证书。因此,如果用户端和服务器支持SNI,每个IP上可以部署多张证书。SNI在2003年6月作为传输层安全(TLS)扩展添加到IETF的RFC3546标准中。现有SNI实现技术大多是基于RFC中提出的解决IP限制问题进而对现有协议处理进行扩展,其最终实现的目标仍然是TLS本身,使用仅局限于解决安全传输问题,并不能解决服务器负载均衡问题;并且由于该扩展服务于安全传输层协议TLS,故需要处理TLS所有状态,例如:身份验证,密钥协商,计算对称密钥等,服务端的非对称密钥和协商出来的对称密钥对作为网络中间设备如负载均衡设备、或作为代理服务设备可见,这对于一些高度保密的业务存在着保密性的漏洞。
技术实现思路
为克服已有技术中存在的问题,本专利技术提出了一种基于指定服务器域名的服务器负载均衡方法,其目的是仅通过解析用户端携带的TLS扩展消息实现服务器的负载均衡,并且在实现服务器负载均衡的同时实现高度安全。本专利技术还设计出了一种基于指定服务器域名的服务器负载均衡设备,其目的是通过解析用户端携带的TLS扩展消息域名,进而选择服务器群组并实现流量均衡、透明分发。为实现上述目的,本专利技术提出了一种基于SNI消息的服务器负载均衡的方法,包括以下步骤:一种基于SNI消息的服务器负载均衡的方法,包括以下步骤:步骤1,利用TCP/IP头信息解析提取源地址、目的地址、源端口、目的端口信息,进而查找TCP连接控制信息;步骤2,找到上述TCP连接控制信息后,若其对端的TCP连接控制已建立则直接转到步骤6;若否,则:步骤3,判断是否命中基于SNI的服务器负载均衡配置,若否,则直接转到步骤5;若命中SNI配置,则:步骤4,执行SNI_SLB分步骤:步骤4.1,若用户端TCP连接控制未建立,则建立用户端TCP连接控制;步骤4.2,若用户端TCP连接控制已建立,但所述的TCP报文未携带TLSclient-hello消息或携带client-hello信息而消息不含SNI扩展字段,则执行步骤6;若携带client-hello消息且含有SNI扩展字段,则:步骤4.3,执行负载均衡分步骤:步骤4.3.1,根据解析到的SNI扩展域名找到相应的服务器群组;步骤4.3.2,从上述服务器群组中根据负载均衡算法找出将要响应此次安全连接请求的后台服务器;步骤4.3.3,根据选中的后台服务器TCP/IP信息创建服务端连接控制信息,且与用户端连接控制信息彼此建立关联,然后进入步骤6;步骤5,负载均衡设备处理非SNI-SLB信息;步骤6,根据服务端连接控制信息进行数据处理或转发。一种基于SNI的服务器负载均衡设备,至少包括TCP/IP头信息解析模块、连接控制管理模块、负载均衡配置管理模块、TLS扩展消息解析模块、SNI_SLB模块、非SNI-SLB模块、以及数据转发模块。所述的TCP/IP头信息解析模块用于提取基于SNI消息的源地址、目的地址、源端口、目的端口的信息。所述的连接控制管理模块用于用户端和服务器端建立连接,以及保存已建立的用户端和服务器端连接信息,它包括服务端连接控制管理模块和用户端连接控制管理模块。所述的负载均衡配置管理模块用于判断是否命中基于SNI的服务器负载均衡配置。所述的TLS扩展消息解析模块用于解析TLS协议中client-hello消息的SNI扩展字段。所述的SNI_SLB模块用于执行上述基于SNI的服务器负载均衡分步骤。所述的数据转发模块用于根据服务端连接控制信息进行数据处理或转发。本专利技术与仅利用TLS扩展消息域名就达到了负载均衡的目的,大大降低了运行成本,同时快速且透明转发建立安全连接时的TLS握手消息和后续加密数据。附图说明图1是本专利技术系统结构示意图;图2是本专利技术一种基于指定服务器域名的负载均衡方法流程图;图3是本专利技术基于SNI的服务器负载均衡分步骤流程图;图4是本专利技术一种基于SNI的服务器负载均衡设备结构示意图;图5是本专利技术一较佳实施例系统结构示意图。具体实施方式在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也是本申请各权利要求所要求保护的技术方案。为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术的工作原理及实施方式作进一步地详细描述。本专利技术的工作原理是负载均衡设备收到带有域名的Client-Hello消息,通过解析client-hello得到域名(SNI字段)并以此在响应该域名请求的服务群中根据负载均衡算法找出一台服务器,此后所有的握手信息和加密数据对负载均衡设备透明。本专利技术是建立在TLS新增的client-hellow消息的扩展信息之上的,如图1所示,该扩展针对TLS协议的意义在于:用户端101在浏览器输入本端域名,例如https://www.a.com,此域名通过DNS域名解析可以找到相应的IP地址,在TLS层,www.a.com被封装在client-hello消息的SNI扩展字段;在服务端的TLS层会解析SNI字段并做TLS握手流程处理,例如根据SNI返回与请求相匹配的证书等,但本专利技术基于SNI的负载并不处理TLS握手流程,只是解析出SNI字段,根据请求的SNI字段,例如www.a.com找到服务器组,例如服务器组A,根据负载均衡配置的算法,例如如RR(Round-Robin,轮询调度)算法,选择服务器,如选择A2,之后将目的IP改为A2的IP地址,端口改为A2监听的端口后转发数据到A2,后续的数据,包括应用数据和TLS协议数据,在负载设备上透明转发。同理对用户端102,例如其域名为https://www.b.com的安全连接最终也是通过同一个在负载均衡配置的IP完成的,这样就达到了在同一个IP上服务不同的用户请求且实现负载均衡。再如图1所示,本专利技术的系统是由用户端100、互联网200、基于SNI消息的负载均衡设备300、以及服务端400构成,所述的用户端浏览器使用支持SNI的TLS协议,例如TLS1.2协议。在图1系统配置的基础上,一种基于SNI消息的服务器负载均衡的方法,如图2所示,包括以下步骤:步骤1,利用TCP/IP头信息解析提取源地址、目的地址、源端口、目的端口信息,进而查找TCP连接控制;步骤2,找到上述TCP连接控制,若其对端的TCP连接控制已建立,直接转到步骤6;若否(即其对端的TCP连接控制未建立),则本文档来自技高网...
一种基于SNI的服务器负载均衡方法及设备

【技术保护点】
一种基于SNI消息的服务器负载均衡的方法,其特征是包括以下步骤:步骤1,利用TCP/IP头信息解析提取源地址、目的地址、源端口、目的端口信息,进而查找TCP连接控制信息;步骤2,找到上述TCP连接控制信息后,若其对端的TCP连接控制已建立则直接转到步骤6;若否,则:步骤3,判断是否命中基于SNI的服务器负载均衡配置,若否,则直接转到步骤5;若命中SNI配置,则:步骤4,执行SNI_SLB分步骤;步骤5,处理非SNI‑SLB信息;步骤6,根据服务端连接控制信息进行数据处理或转发。

【技术特征摘要】
1.一种基于SNI消息的服务器负载均衡的方法,其特征是包括以下步骤:步骤1,利用TCP/IP头信息解析提取源地址、目的地址、源端口、目的端口信息,进而查找TCP连接控制信息;步骤2,找到上述TCP连接控制信息后,若其对端的TCP连接控制已建立则直接转到步骤6;若否,则:步骤3,判断是否命中基于SNI的服务器负载均衡配置,若否,则直接转到步骤5;若命中SNI配置,则:步骤4,执行SNI_SLB分步骤;步骤5,处理非SNI-SLB信息;步骤6,根据服务端连接控制信息进行数据处理或转发。2.根据权利要求1所述的一种基于SNI消息的服务器负载均衡方法,其特征是所述步骤4所述的SNI_SLB分步骤还包括:步骤4.1,若用户端TCP连接控制未建立,则建立用户端TCP连接控制;步骤4.2,若用户端TCP连接控制已建立,但所述的TCP报文未携带TLSclient-hello消息或携带client-hello信息而消息不含SNI扩展字段,则执行上述步骤6;若携带client-hello消息且含有SNI扩展字段,则:步骤4.3,执行负载均衡分步骤,然后执行步骤6。3.根据权利要求2所述的一种基于SNI消息的服务器负载均衡方法,其特征是所述步骤4.3所述的负载均衡分步骤还包括:4.3.1,根据解析到的SNI扩展域名找到相应的服务器群组;4.3.2,从上述服务器群组中根据负载均衡算法找出将要响应此次安全连接请求的后台服务器;4.3.3,根据选中的后台服务器TCP/IP信息创建服务...

【专利技术属性】
技术研发人员:曹广为刘勤穆立超
申请(专利权)人:华耀中国科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1