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

简介:

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



相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
1天前
|
存储 安全 数据安全/隐私保护
服务器数据恢复—服务器raid常见故障&解决方案
RAID(磁盘阵列)是一种将多块物理硬盘整合成一个虚拟存储的技术,raid模块相当于一个存储管理的中间层,上层接收并执行操作系统及文件系统的数据读写指令,下层管理数据在各个物理硬盘上的存储及读写。相对于单独的物理硬盘,raid可以为用户提供更大的独立存储空间,更快的读写速度,更高的数据存储安全及更方便的统一管理模式。磁盘阵列是否能正常运转是保障服务器中数据正常读写的关键。
|
3天前
|
弹性计算 监控 容灾
【阿里云弹性计算】云上灾备解决方案:基于阿里云 ECS 的业务连续性策略
【5月更文挑战第25天】阿里云ECS提供强大的云上灾备解决方案,保障企业业务连续性。通过高可用基础设施、数据备份和异地容灾服务,应对自然灾害、硬件故障等突发事件。示例代码展示如何配置数据备份。企业应合理规划资源,定期演练,监控优化灾备系统。阿里云将持续创新,为企业提供更优质的灾备解决方案,支持各类型企业在数字化时代稳定运行,实现业务连续性。
8 0
|
5天前
|
移动开发 网络协议 安全
iOS审核在ipv6网络下无法访问服务器的问题及解决方案
iOS审核在ipv6网络下无法访问服务器的问题及解决方案
14 0
|
13天前
|
Java 关系型数据库 MySQL
服务器cpu 100%解决方案
服务器cpu 100%解决方案
22 0
|
13天前
|
算法 安全 Java
服务器启动 SpringBoot 后访问特别慢的解决方案
服务器启动 SpringBoot 后访问特别慢的解决方案
42 1
|
13天前
|
弹性计算 运维 监控
slb后端服务器组(Backend Server Group)关联
阿里云SLB的后端服务器组提供逻辑分组、精细化路由、端口隔离、权重分配与会话保持等功能,便于资源管理、流量控制和故障隔离。通过监听规则、健康检查、标签和API关联,实现灵活的后端资源配置,适应多变的业务需求,确保服务稳定性和资源利用率。
25 1
|
13天前
|
弹性计算 负载均衡
slb添加后端服务器
阿里云SLB服务用于流量分发,提升系统可用性和响应速度。添加ECS实例到SLB的步骤包括:登录控制台,选择“弹性计算”->“负载均衡”,找到目标SLB实例,进入详情页,点击“添加后端服务器”。挑选ECS实例,可按ID、名称或标签筛选,设置权重(默认100),并确保ECS实例状态正常,与SLB在同一地域,安全组允许SLB连接。添加后可考虑配置健康检查等高级选项。
26 1
|
13天前
|
弹性计算 负载均衡 网络安全
slb创建后端服务器组
在阿里云SLB服务中创建后端服务器组,需登录控制台,选择目标SLB实例,进入监听器设置,添加后端服务器。选择ECS实例或ENI,设定服务器端口和权重,然后保存设置。此操作将ECS实例纳入SLB的负载均衡与健康检查管理。
20 1
|
13天前
|
弹性计算 负载均衡 容灾
slb配置后端服务器组
配置阿里云SLB后端服务器组涉及四个主要步骤:创建服务器组、添加ECS实例、关联监听规则和设定负载均衡策略。这使得流量根据业务需求和服务器特性进行转发,便于应用架构的灵活管理和扩展,支持蓝绿部署、灰度发布,并通过多可用区提升系统可用性和容灾能力。
40 3
|
13天前
|
弹性计算 负载均衡
slb添加后端服务器
阿里云SLB服务实现流量分发,提升业务可用性和响应速度。添加后端服务器步骤包括:登录控制台,选择“弹性计算”->“负载均衡”,点击目标SLB实例进入详情,点击“后端服务器”->“添加ECS实例”。筛选并选择ECS实例,设置权重,确认后点击“确定”。添加后检查健康检查状态,确保ECS实例状态正常,同地域、可用区,并配置好安全组规则。
27 2