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

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
网络型负载均衡 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)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
4天前
|
监控 负载均衡 算法
slb管理后端服务器
【10月更文挑战第18天】
12 5
|
17天前
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
28 1
|
27天前
|
弹性计算 负载均衡 算法
负载均衡如何帮助阿里云国际服务器搭建的网站或应用程序?
负载均衡如何帮助阿里云国际服务器搭建的网站或应用程序?
|
26天前
|
存储 数据采集 分布式计算
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
36 1
|
17天前
|
编解码 弹性计算 运维
AWS无服务器直播解决方案
AWS无服务器直播解决方案
|
28天前
|
SQL 数据库
SQL-serve数据库不能连接本地服务器的解决方案
SQL-serve数据库不能连接本地服务器的解决方案
113 0
|
3月前
|
负载均衡 监控 算法
揭秘负载均衡的五大算法秘籍:让你的服务器轻松应对亿万流量,不再崩溃!
【8月更文挑战第31天】在互联网快速发展的今天,高可用性和可扩展性成为企业关注的重点。负载均衡作为关键技术,通过高效分配网络流量提升系统处理能力。本文介绍了轮询、加权轮询、最少连接及IP哈希等常见负载均衡算法及其应用场景,并提供Nginx配置示例。此外,还探讨了如何根据业务需求选择合适算法、配置服务器权重、实现高可用方案、监控性能及定期维护等最佳实践,助力系统优化与用户体验提升。
64 2
|
3月前
|
负载均衡 算法 应用服务中间件
负载均衡技术在Web服务器集群中的应用
【8月更文第28天】随着互联网的发展和用户对Web服务需求的增长,单台服务器很难满足大规模访问的需求。为了提高系统的稳定性和扩展性,通常会采用Web服务器集群的方式。在这种架构中,负载均衡器扮演着至关重要的角色,它能够合理地分配客户端请求到不同的后端服务器上,从而实现资源的最优利用。
120 2
|
5月前
|
缓存 负载均衡 算法
解读 Nginx:构建高效反向代理和负载均衡的秘密
解读 Nginx:构建高效反向代理和负载均衡的秘密
115 2
|
4月前
|
负载均衡 算法 应用服务中间件
nginx自定义负载均衡及根据cpu运行自定义负载均衡
nginx自定义负载均衡及根据cpu运行自定义负载均衡
47 1