RADIUS 服务器 IP 池配置
使用 RADIUS 服务器,您可以从 IP 地址池中动态分配 IP 地址。
IP 地址分配是授权过程的一部分,并在认证后完成。 系统管理员必须为每个用户分配唯一 IP。 为动态地向用户提供 IP 地址,RADIUS 服务器提供了三个选项:
- 分帧池属性
- 使用特定于供应商的属性
- RADIUS 服务器端 IP 合用
分帧池属性
必须在网络访问服务器 (NAS) 上定义 IP 池 poolname。 NAS 必须符合 RFC2869,RADIUS 服务器才能在“访问 - 接受”信息包(类型 88 属性)中发送分帧池属性。 系统管理员必须配置 NAS ,并通过在全局 default.auth 文件或 RADIUS 服务器上的 user.auth 文件中包含 帧池 属性来更新用户的授权属性。 RADIUS 服务器中的字典文件中包含以下属性:
ATTRIBUTE Framed-Pool 88 string如果 NAS 不能使用多个地址池,那么 NAS 将忽略此属性。 NAS 上的地址池包含 IP 地址列表。 NAS 动态地选取指定池中定义的某个 IP 地址,并将它分配给用户。
特定于供应商的属性
某些独立软件供应商 (ISV) 不能使用分帧池属性,但可以定义 IP 地址池。 通过使用特定于供应商的属性(VSA) 模型,RADIUS 服务器可以利用这些地址池。 例如,Cisco NAS 提供了一个名为 Cisco-AVPair 的属性。 RADIUS 服务器中的字典文件中包含以下属性:
VENDOR Cisco 9
ATTRIBUTE Cisco-AVPair 1 string当 NAS 发送“访问 - 请求”信息包时,它将该属性包含在 Cisco-AVPair=”ip:addr-pool=poolname” 中,其中 poolname 是 NAS 上定义的地址池的名称。 认证并授权该请求之后,RADIUS 服务器在“访问 - 接受”信息包中返回该属性。 然后 NAS 可以使用已定义的池将 IP 地址分配给用户。 系统管理员必须为用户配置 NAS 并更新授权属性,方法是在 RADIUS 服务器上的全局 default.auth 文件或 user.auth 文件中包含 VSA 属性。
Radius 服务器端 IP 合用
可以配置 RADIUS 服务器从 IP 地址池生成 IP 地址。 在“访问 - 接受”信息包的“分帧的 IP 地址”属性中返回该 IP 地址。
系统管理员可以使用 SMIT 界面定义 IP 地址池。 在 /etc/radius/ippool_def 文件中维护地址。 Poolnames 在 etc/radius/clients 文件中定义。 系统管理员还必须配置 NAS 端口号。 RADIUS 服务器守护程序使用 etc/radius/clients 和 /etc/radius/ippool_def 文件中的信息来创建数据文件。 一旦守护程序启动,在 RADIUS 服务器停止前,系统管理员将不能更改或添加 poolname 或 IP 地址范围。 启动 RADIUS 服务器守护程序时,它读取配置文件(/etc/radius/radius.conf),并且如果已启用 IP 分配(Enable_IP_Pooling=YES),那么将全局 IP 分配标志(IP_pool_flag)设置为 On。 该守护程序然后查看 poolname.data 文件是否存在。 如果存在,那么它读取该文件并在共享内存中保存该信息。 然后它根据来自客户机的请求更新文件和共享内存。 如果该文件不存在,那么守护程序将使用 etc/radius/clients 和 /etc/radius/ippool_def 文件中的信息创建一个新文件。 poolname.data文件的最大大小限制为 256 MBAIX文件段大小限制)。 如果 poolname.data 文件大于 256 MB,那么 RADIUS 服务器记录错误消息并退出。
该守护程序从 /etc/radius/ippool_def 文件获取 IP 池详细信息,并在共享内存中维护每个池名称的 IP 地址表。 该表具有 NAS-IP-address、NAS-port 和 IN USE 标志条目。 该守护程序维护了一个散列表,该表以 NAS-IP NAS-port 作为关键字。 当来自多个用户的请求传入时,UDP 将请求排队,守护程序从请求中检索 NAS-IP 和 NAS-port 数据。 通过使用该信息,它将通过检查从 etc/radius/clients 文件读取的信息来检查是否为该 NAS 定义了 poolname 。
该守护程序将尝试从池中获取未使用的地址。 如果有未使用的地址,那么由 NAS-IP 和 NAS-port 标志将它标记为“使用中”,并返回给 RADIUS 服务器。 守护程序将该 IP 地址放置到分帧的 IP 地址属性中,并在接受信息包中返回给 NAS。 还更新 poolname.data 文件以与共享内存中的信息同步。
如果该池不存在,或已存在但没有更多未使用的地址,那么将错误返回给 RADIUS 服务器。 错误 Could not allocate
IP address 记录在日志文件中,并且 RADIUS 服务器将 Access-Reject 包发送到 NAS。
错误代码为:
- NOT_POOLED-没有为 nas_ip定义池。
- POOL_够用-为 nas_ip定义了池,但该池中的所有地址当前都在使用中。
当认证请求来自已分配了 IP 地址的 NAS 和 NAS-port 组合时,该守护程序将把先前的分配返回给池,方法是将 IN USE 标志标记为 Off,并清除表中的 NAS-IP-address 和 NAS-port 条目。 然后它从池中分配一个新的 IP 地址。
当 RADIUS 服务器从 NAS 接收到“记帐 - 停止”信息包时,该 IP 地址也会返回到池中。 “记帐 - 停止”信息包必须包含 NAS-IP-address 和 NAS-port 条目。 在以下情况中,守护程序会访问 ippool_mem 文件:
- 该请求传入的目的是获取新的 IP 地址。 将 IN USE 标志设置为 true。
- 接收到“记帐 - 停止”信息包。 它通过将“in use”标志设置为 false 来释放 IP 地址。
在每个情况中,共享内存系统调用确保共享内存中的数据和 poolname.data 文件同步。 系统管理可以使用 RADIUS 服务器配置文件 (radiusd.conf) 中的 Enable_IP_Poling 参数来开启 IP 分配 ON 或 OFF 。 这在系统管理员在全局 default.auth 或 user.auth 文件中具有已分配的 IP 地址的情况下很有用。 要使用该分配的 IP 地址,系统管理员必须设置 Enable_IP_Pool
= NO。
| 池名称 | 开始范围 | 结束范围 |
|---|---|---|
| Floor5 | 192.165.1.1 | 192.165.1.125 |
| Floor6 | 192.165.1.200 | 192.165.1.253 |
| NAS-IP | 共享秘密 | 池名称 |
|---|---|---|
| 1.2.3.4 | Secret1 | Floor5 |
| 1.2.3.5 | Secret2 | Floor6 |
| 1.2.3.6 | Secret3 | Floor5 |
| 1.2.3.7 | Secret4 |
IP_pool_flag = True 也如此)。 当“访问 - 请求”信息包传入时,RADIUS 服务器执行认证和授权。 如果成功,它将在“访问 - 接受”信息包中,发送在请求中或在全局 default.auth 文件或 user.auth 文件中定义的静态 IP 地址。 在此例中,NAS-Port 属性不是必需的。如果 IP 合用为 True,那么系统管理员还已定义静态 IP 地址作为全局 default.auth 或 user.auth 的一部分,或作为“访问 - 请求”信息包的一部分。 RADIUS 服务器将把该 IP 地址替换为从该 NAS 的已定义池名称中分配的 IP 地址。 如果池中的所有 IP 地址都在使用中,那么服务器记录错误(池已满)并发送“访问 - 拒绝”信息包。 服务器将忽略 auth 文件中定义的所有静态 IP 地址。
如果 IP 合用为 True 并且为 NAS 定义了一个有效的池名称,当某“访问 - 请求”信息包从该 NAS-IP 传入而它没有定义 NAS-Port 时,服务器将发送“访问 - 拒绝”信息包。
| IP 地址 | NAS-IP | NAS-Port | 使用中 |
|---|---|---|---|
| 192.165.1.1 | 1.2.3.4 | 2 | 1 |
| 192.165.1.2 | 1.2.3.4 | 3 | 0 |
| ............ | ....... | .... | .... |
| 192.165.1.124 | 1.2.3.6 | 1 | 1 |
| 192.165.1.125 | 1.2.3.6 | 6 | 1 |
| IP 地址 | NAS-IP | NAS-Port | 使用中 |
|---|---|---|---|
| 192.165.200 | 1.2.3.4 | 1 | 1 |
| 192.165.201 | 1.2.3.4 | 4 | 1 |
| ............ | ....... | .... | .... |
| 192.165.1.252 | 1.2.3.4 | 5 | 0 |
| 192.165.1.253 | 1.2.3.4 | 6 | 1 |
- Clear IP Pool for a Client
- Clear entire IP Pool
IP 池的 SMIT 面板
在客户机配置中,Add a Client,您可以输入可选 Pool Name。 该名称最多可有 64 个字符。 当 Pool Name 为空时,不会进行 IP 合用,并且 RADIUS 服务器将分配系统管理员通过 Framed-IP-Address 授权属性定义的 IP 地址。
当选择 IP Pool 时,会显示以下选项:
- List all IP Pools
- Create an IP Pool
- Change/Show Characteristics of an IP Pool
- Delete an IP Pool
- Clear IP Pool for a Client
- Clear entire IP Pool
List all IP Pools:使用此选项列出 Pool Name、Start Range IP address 和 Stop Range IP address。
Create an IP Pool:使用此选项添加池名称、开始范围和结束范围。 此数据将附加到 ippool_def 文件的底部。 将进行检查以确保没有重复的池名称并且 IP 地址范围没有重叠。 仅当 RADIUS 服务器守护程序不在运行时才能执行此操作。
Change/Show Characteristics of an IP Pool:该选项在弹出面板中显示池名称列表。 您必须在该面板中选择特定的池名称。 当您选择池名称时,将显示带有选定名称的面板。 当您按 Enter 时,将在 ippool_def 文件中更新该池名称的数据。 仅当 RADIUS 服务器守护程序不在运行时才能执行此操作。
Delete an IP Pool:选择该选项显示您可以选择的池名称列表。 选择池名称时,将显示 Are You Sure 弹出面板以在删除所选池名称之前提供确认。 将调用 rmippool 脚本以从 ippool_def 文件中删除选定的池名称。 仅当 RADIUS 服务器守护程序不在运行时才能执行此操作。
清除客户机的 IP 池: 此选项将属于 NAS 的 IP 地址的 IN-USE 条目标记为 0 ,这意味着此 NAS 的所有 IP 地址现在都可用。 仅当 RADIUS 服务器守护程序不在运行时才能执行此操作。
清除整个 IP 池: 选择此选项时,将显示 Are You Sure 弹出面板以在清除整个 ippool_mem 文件之前提供确认。 仅当 RADIUS 服务器守护程序不在运行时才能执行此操作。