System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及it与软件开发,尤其涉及一种基于radius会话保持的负载均衡方法。
技术介绍
1、radius:remote authentication dial in user service,远程用户拨号认证系统由rfc2865,rfc2866定义,是应用最广泛的aaa协议。随着上网用户和流量的不断的,radius服务器需要集群部署,需要使用负载均衡,目的是可以把一个radius用户始终负载在到一个radius服务器上,因为服务器上的资源是根据支持用户数有关的。传统的负载均衡是可以通过算法实现负载均衡的效果,但是不能实现根据radius用户做负载均衡,就是一个用户可能负载到多个radius服务器上,实际上浪费了大量的radius服务器资源,而且服务器越多浪费越多,不能实现radsiu服务器的线性增加业务也线性增加。
2、radius服务器集群部署,需要使用负载均衡,目的是可以把一个radius用户始终负载在到一个radius服务器上,因为服务器上的资源是根据支持用户数有关的。传统的负载均衡是可以通过算法实现流量的负载均衡,但是不能实现根据radius用户做负载均衡,就是一个用户流量可能负载到多个radius服务器上,实际上浪费了大量的radius服务器资源,而且服务器越多浪费越多,不能实现radsiu服务器的线性增加业务也线性增加;
3、综上本文提出一种基于radius会话保持的负载均衡方法。通过在负载均衡上解析radius协议,记录radius的用户信息如user-name,framed-ip-a
技术实现思路
1、本专利技术的目的是为了解决现有技术中存在传统的负载均衡是可以通过算法实现流量的负载均衡,但是不能实现根据radius用户做负载均衡,就是一个用户流量可能负载到多个radius服务器上,实际上浪费了大量的radius服务器资源,而且服务器越多浪费越多,不能实现radsiu服务器的线性增加业务也线性增加的缺点,而提出的一种基于radius会话保持的负载均衡方法。
2、为了实现上述目的,本专利技术采用了如下技术方案:
3、一种基于radius会话保持的负载均衡方法,包括如下三步流程:
4、a1)进行radius会话保持表项结构设计;
5、a2)进行radius会话保持在负载均衡整体流程中入口位置介绍;
6、a3)进行radius会话保持流程详细设计。
7、优选的,所述radius会话保持表项结构设计包括radius表项:通过radius属性当key做hash,然后遍历vs上radius会话保持链表,找到entry表项,表项内存储了radius会话保持表项信息。
8、优选的,所述radius会话保持在负载均衡整体流程中入口位置介绍包括如下流程步骤:
9、1)解析radius报文,解析出radius报文中的每个属性;
10、2)用解析的出来的属性与vs上配置的属性进行匹配;
11、3)第2步失败,则是非业务报文,退出;
12、4)第2步成功,记录为目标属性值,用于后面表项匹配;
13、5)用目标属性值与vs下会话保持链表进行表项匹配;
14、6)第5步成功,根据表项上记录的radius服务器信息返回;
15、7)第5步失败,根据vs上服务pool上的算法,选出后端radius集群中的一台服务器;
16、8)记录到radius表项上,这个表项挂在这个vs上radius会话保持链表上;
17、9)根据表项上记录的radius服务器信息返回。
18、优选的,所述radius会话保持流程详细设计包括如下步骤:
19、1)解析radius报文,解析出radius报文中的每个属性;
20、2)用解析的出来的属性与vs上配置的属性进行匹配;
21、3)第2步失败,则是非业务报文,退出;
22、4)第2步成功,记录为目标属性值,用于后面表项匹配;
23、5)用目标属性值与vs下会话保持链表进行表项匹配;
24、6)第5步成功,根据表项上记录的radius服务器信息返回;
25、7)第5步失败,根据vs上服务pool上的算法,选出后端radius集群中的一台服务器;
26、8)记录到radius表项上,这个表项挂在这个vs上radius会话保持链表上;
27、9)根据表项上记录的radius服务器信息返回。
28、优选的,所述表项结构具体参数说明:
29、struct list_head node:radius表项采用链表结构;
30、uint64_t last_jiff:radius表项更细时间,每次表项命中后都会更新,用于老化表项使用;
31、uint16_t key_len:radius属性长度;
32、uint8_t key[0]:radius属性值。
33、优选的,所述radius会话保持流程详细设计的步骤1)还包括如下子步骤:
34、s11,根据radius协议的实现,属性值的目标属性必须与配置的大小完全匹配;
35、s12,访问控制决策中,属性值的顺序需要保持与配置顺序一致。
36、优选的,所述radius会话保持在负载均衡整体流程中入口位置介绍的步骤2)还包括如下子步骤:
37、s21,确保目标属性值类型与配置属性类型匹配,匹配失败则提示配置属性的取值范围;
38、s22,判断配置属性为哪种类型,确定配置属性的分类,保证整数类型与字符串类型相互配比。
39、优选的,所述步骤a1)还包括如下流程:
40、b1,数据类型匹配:表项的数据类型必须与查询条件的数据类型匹配;
41、b2,大小写敏感:查询条件是大小写敏感的,表项必须是大小写敏感的。
42、优选的,所述步骤b1还包括如下子流程:
43、b11,空值处理:表项可能包含空值,查询条件也必须消除空值带来的异常;
44、b12,日期和时间处理:表项是日期或时间类型,查询条件也必须是日期或时间类型,并且,日期和时间的格式必须与表项的格式匹配;
45、b13,通配符使用:使用通配符进行匹配,通配符的使用必须符合数据库的规则。本文档来自技高网...
【技术保护点】
1.一种基于radius会话保持的负载均衡方法,其特征在于,包括如下三步流程:
2.根据权利要求1所述的一种基于radius会话保持的负载均衡方法,其特征在于,所述radius会话保持表项结构设计包括radius表项:通过radius属性当key做hash,然后遍历vs上radius会话保持链表,找到entry表项,表项内存储了radius会话保持表项信息。
3.根据权利要求1所述的一种基于radius会话保持的负载均衡方法,其特征在于,所述radius会话保持在负载均衡整体流程中入口位置介绍包括如下流程步骤:
4.根据权利要求1所述的一种基于radius会话保持的负载均衡方法,其特征在于,所述radius会话保持流程详细设计包括如下步骤:
5.根据权利要求2所述的一种基于radius会话保持的负载均衡方法,其特征在于,所述表项结构具体参数说明:
6.根据权利要求4所述的一种基于radius会话保持的负载均衡方法,其特征在于,所述radius会话保持流程详细设计的步骤1)还包括如下子步骤:
7.根据权利要求3
8.根据权利要求1所述的一种基于radius会话保持的负载均衡方法,其特征在于,所述步骤A1)还包括如下流程:
9.根据权利要求1所述的一种基于radius会话保持的负载均衡方法,其特征在于,所述步骤b1还包括如下子流程:
10.根据权利要求1所述的一种基于radius会话保持的负载均衡方法,其特征在于,所述radius会话保持在负载均衡整体流程中入口位置介绍的步骤5)还包括会话保持时间的设置,设置合理的会话时间,根据用户停滞时间设定会话变动时间。
...【技术特征摘要】
1.一种基于radius会话保持的负载均衡方法,其特征在于,包括如下三步流程:
2.根据权利要求1所述的一种基于radius会话保持的负载均衡方法,其特征在于,所述radius会话保持表项结构设计包括radius表项:通过radius属性当key做hash,然后遍历vs上radius会话保持链表,找到entry表项,表项内存储了radius会话保持表项信息。
3.根据权利要求1所述的一种基于radius会话保持的负载均衡方法,其特征在于,所述radius会话保持在负载均衡整体流程中入口位置介绍包括如下流程步骤:
4.根据权利要求1所述的一种基于radius会话保持的负载均衡方法,其特征在于,所述radius会话保持流程详细设计包括如下步骤:
5.根据权利要求2所述的一种基于radius会话保持的负载均衡方法,其特征在于,所述表项结构具体参数说明:
【专利技术属性】
技术研发人员:陈鹏,王敬瑞,廖上榜,肖威,谢龙,
申请(专利权)人:天翼云科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。