RADIUS 到底是什么?

What exactly is RADIUS?

我听说过很多关于 RADIUS 的信息。但我仍然在问自己关于它的问题。 Wikipedia中说它是一种网络协议,为用户提供Authentication、Authorization和账户管理。它是如何工作的?为什么我应该选择 RADIUS 而不是简单的数据库?

RADIUS 是一种用于传输身份验证、授权和计费数据的协议。

在 RADIUS 身份验证中,数据在访问请求数据包中从 NAS(网络访问服务器)流向 RADIUS 服务器。

来自 NAS 的 RADIUS 服务器的授权数据在访问-接受、访问-拒绝、CoA-请求和断开-请求数据包中流动。

A​​ccounting-Requests中的计费数据从NAS流向RADIUS服务器。

RADIUS 比 ODBC 等通用数据库接口更适合其角色的原因有很多。

  • 重量极轻。在基于 UDP 的 RADIUS 中没有连接设置、拆卸或维护。属性编码简单紧凑。没有大而复杂的 SQL 语句或结果编码。
  • 由于其简单性,RADIUS 客户端通常具有比 SQL 客户端或 ODBC 连接器低得多的内存、cpu 和存储要求。这很重要,因为许多 RADIUS 客户端 运行 在交换机、路由器或其他嵌入式设备上。
  • 在 POSIX 系统上,使用无连接 UDP,运行 退出文件描述符没有问题。在一切都与中央 RADIUS 服务器通信的网络环境中,您可能有成千上万的设备与 RADIUS 服务器通信。
  • RADIUS 支持基于数据包中各种属性的 AAA 信息的多跳路由。这在 Eduroam 等联合会中发挥了巨大作用。
  • 属性定义明确且采用标准格式。这支持互操作性。您不能将网络设备指向 SQL 数据库并让它 正常工作 ,您可以使用网络设备和 RADIUS 服务器。
  • RADIUS 支持比 SQL 更复杂的对话,它不仅仅是一个 request/response 协议。 RADIUS 服务器可以维护正在进行的身份验证尝试的状态,该身份验证尝试进行了 多轮 轮 requests/responses。这允许像 EAP 这样的复杂身份验证方法在 RADIUS 上工作。
  • RADIUS 支持异步信令。也就是说,您可以通过使用 CoA 和 DM 数据包向 NAS 发送信号来即时更改用户的授权状态。

还有更多...它们适用于非常不同的事物。