Radius服务器负载均衡解决方案

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介:

Radius协议概述

Raidus(Remote Authentication Dial In User Service)是对远端拨号接入用户的认证服务,Radius服务分客户端和服务器端,典型示意图如下。

通常对Radius协议的服务端口号是1645(认证)、1646(计费)或1812(认证)、1813(计费)。

image

Radius通信是用UDP协议以“请求 - 响应”方式进行的,即:客户发送一个请求包,服务器收到包后给予响应,其数据包格式如下:

clip_image004

主要字段解释如下:

  • Code:包类型;1字节;指示RADIUS包的类型。常用包类型定义如下:

1 Access-Request——请求认证过程

2 Access-Accept——认证响应过程

3 Access-Reject——认证拒绝过程

4 Accounting-Request——请求计费过程

5 Accounting-Response——计费响应过程

  • Identifier:包标识;1字节;用于匹配请求包和响应包,同一组请求包和响应包的Identifier应相同。该字段的取值范围为0~255;协议规定:
    1. 在任何时间,发给同一个RADIUS服务器的不同包的Identifier域不能相同,如果出现相同的情况,RADIUS将认为后一个包是前一个包的拷贝而不对其进行处理。
    2. Radius针对某个请求包的响应包应与该请求包在Identifier上相匹配(相同)。
  • Length:包长度;2字节;整个包的长度。
  • Authenticator:验证字;16字节;用于对包进行签名。
  • Attributes:属性 ,如用户名,格式如下:

clip_image006

Radius服务器负载均衡

当单台Radius服务器性能不足以满足用户认证需求或者为了提高认证服务器可用性时,引入负载均衡器成为理所当然。下图为典型Radius服务器负载均衡示意图。

image

由于Radius协议的特殊性,负载均衡设备需要以下功能以实现可运营的Radius服务器负载均衡:

  • 基于应用的健康检查。需要发出认证请求,认证通过才标识该服务器为“up”,有些情况下还需要在请求中附带一些Radius属性。
  • 基于Radius消息的负载均衡。典型应用中,Radius 客户端数量通常不多,如城域网中的BRAS(宽带接入服务器),但每个客户端会发送大量的Radius认证计费数据包,而且往往是使用相同源端口发出的。如果基于简单的4层UDP处理,1个Radius客户端的所有请求可能全部到达一台服务器上,导致服务器负载不均匀,甚至个别服务器由于过载而瘫痪。因此,负载均衡设备必须可以将来自同一IP地址同一源UDP端口的请求均匀分配到多台服务器上。前面提到的Radius ID字段可以帮助解决这个问题,负载均衡设备可以基于Radius客户端IP+源端口+Radius ID进行负载均衡。
  • 基于Radius属性的服务器保持。实际应用中,Radius服务器要求基于特定radius属性实现服务器保持,如基于用户名保持,来自同一用户的所有请求在一定时间内必须由同一台服务器处理,否则会导致计费问题。这就要求负载均衡设备必须解析所有属性字段,找到相应的属性,并建立一张该属性与所分配服务器的对应表。基于源IP地址的保持会导致单台客户端请求全部分配到同一服务器,因此不适用于Radius负载均衡。
  • 认证与计费请求保持到相同服务器。Radius认证与计费采用了不同UDP端口(如1812和1813),服务器要求来自同一用户的认证与计费信息到达同一服务器的1812和1813端口。
  • 速率限制。限制单台服务器的请求速率以保护Radius服务器。
  • 负载均衡设备本身的CPU均衡。由于Radius客户端使用相同源IP和源端口,通常的CPU分配方式会导致负载均衡设备本身CPU严重不均衡,甚至只有一个CPU在工作。因此,Radius服务器负载均衡要求负载均衡设备可以基于Radius ID分配CPU,以实现更高的性能。

以上功能任何一项不满足,都有可能导致业务不可用或者负载不均衡乃至服务器瘫痪。而不同用户的应用需求又要求负载均衡设备可以灵活地基于各种Radius属性进行服务器选择和保持,对于没有自定义脚本功能的设备很难满足这些需求。后续会将A10的AX产品如何在Radius服务器负载均衡中部署做单独介绍。

(R.S.)


本文转自 virtualadc 51CTO博客,原文链接:

http://blog.51cto.com/virtualadc/963350



相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
打赏
0
0
0
0
342
分享
相关文章
ECS中实现nginx4层7层负载均衡和ALB/NLB原SLB负载均衡
通过本文的介绍,希望您能深入理解并掌握如何在ECS中实现Nginx四层和七层负载均衡,以及如何使用ALB和NLB进行高效的负载均衡配置,以提高系统的性能和可靠性。
79 9
slb后端服务器故障
slb后端服务器故障
48 13
slb应用服务器对Host头有校验要求
slb应用服务器对Host头有校验要求
28 6
阿里云ECS提供强大的云上灾备解决方案,通过高可用基础设施、多样的数据备份方式及异地灾备服务,帮助企业实现业务的持续稳定运行
在数字化时代,企业对信息技术的依赖加深,确保业务连续性至关重要。阿里云ECS提供强大的云上灾备解决方案,通过高可用基础设施、多样的数据备份方式及异地灾备服务,帮助企业实现业务的持续稳定运行。无论是小型企业还是大型企业,都能从中受益,确保在面对各种风险时保持业务稳定。
54 4
slb管理后端服务器
【10月更文挑战第18天】
43 5
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
144 1
负载均衡如何帮助阿里云国际服务器搭建的网站或应用程序?
负载均衡如何帮助阿里云国际服务器搭建的网站或应用程序?
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
65 1
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等