本节介绍了配置 NSX Advanced Load Balancer 以使用 Cisco 身份服务引擎 (Identity Services Engine, ISE) 对 RADIUS 流量进行负载均衡的步骤。NSX Advanced Load Balancer 使用 L4 DataScript 以通过各种 RADIUS 属性实现持久性,并使用与 RADIUS 相同的服务器对 DHCP 配置文件流量进行负载均衡。
必备条件
在配置 NSX Advanced Load Balancer 以使用 Cisco ISE 对 RADIUS 流量进行负载均衡之前,需要了解 Cisco ISE 及其配置。
需要使用启用了 IP 路由的活动/备用 SE 组以支持为 RADIUS 虚拟服务保留客户端 IP。
拓扑
正如拓扑中所示, NSX Advanced Load Balancer 在用户网络和 ISE 策略服务节点 (Policy Service Node, PSN) 之间以逻辑方式保持一致。发送到 ISE PSN 的所有流量流经 NSX Advanced Load Balancer(服务引擎),并将流量从 ISE PSN 返回到用户。
场景
在网络访问设备 (Network Access Device, NAD) 上将一个 NSX Advanced Load Balancer VIP 配置为 RADIUS 服务器。在 NSX Advanced Load Balancer 从用户收到 RADIUS 身份验证流量后,将使用配置的负载均衡算法通过其中的一个 ISE PSN 对流量进行负载均衡。使用 DataScript 创建了一个持久性条目,DataScript 解析 RADIUS 请求并根据配置的 RADIUS 属性创建一个条目。来自同一客户端的任何后续 RADIUS 身份验证流量或 DHCP 配置文件流量将使用该持久性条目发送到同一服务器。
Cisco-ISE 将发送授权更改 (Change of Authorization, CoA) 请求,其中包含以下详细信息:
源自 CoA 的单个 PSN 的源 IP
NAD 的目标 IP
目标端口为 UDP 1700(默认)
NAD 要求源 IP 是配置的 RADIUS 服务器的 IP;此处,它是 NSX Advanced Load Balancer VIP。
在 NSX Advanced Load Balancer 上配置了 NAT 策略,以便在数据包的目标端口是 UDP 1700 时将服务器的源 IP 转换 (NAT) 为 VIP。
配置
可以按照下面提到的步骤为 NSX Advanced Load Balancer 配置 RADIUS 负载均衡:
配置 DataScript 以使用必填字段解析 RADIUS 和 DHCP 数据包和持久性。
为 RADIUS 配置运行状况监控器。需要在 ISE 上将 SE IP 配置为 NAD,并在 ISE 和 NSX Advanced Load Balancer 上使用相同的凭据。
配置虚拟服务和池。
将 DataScript 附加到虚拟服务。
为 CoA 配置 NAT 并附加到所需的服务引擎组。
配置 DataScript 以解析 RADIUS/DHCP 流量
我们使用一个示例 DataScript 以说明 DataScript 功能。可以根据用户的要求修改该 DataScript。有关该 DataScript 功能的更多详细信息,请参阅《VMware NSX Advanced Load Balancer DataScript 指南》中的第 4 层 DataScript。
在 RADIUS-DHCP-HTTPS 中提供了 DataScript 详细信息。
解析 RADIUS 请求,并记下 NAS-IP-ADDRESS、CALLING-STATION-ID, 和 NAS-PORT-TYPE 属性。如果 NAS-PORT-TYPE 为 19(无线客户端),则条目的过期时间设置为 3600。对于所有其他客户端类型(有线/虚拟),过期时间为 28800。如果在 RADIUS 请求中填充了 CALLING-STATION-ID,则使用它实现持久性。如果请求不包含 CALLING-STATION-ID,则会使用 NAS-IP-ADDRESS 实现持久性。
将解析 DHCP 数据包,并记下主机填充的客户端标识符(如果有)。客户端标识符应为主机 MAC 地址。如果填充了客户端标识符,它将匹配使用 calling-station-id
为 RADIUS 创建的持久性条目,并将 DHCP 数据包发送到与 RADIUS 相同的 PSN。如果客户端标识符在 DHCP 数据包中不存在,则使用配置的负载均衡算法将其转发到三个 ISE PSN 之一。
DataScript 还使用 framed-ip-address
(如果有)在 RADIUS 记帐数据包中创建持久性条目。通过匹配 framed-ip-address
条目,从同一客户端到 VIP 的任何后续 HTTPS 请求将使用数据包的源 IP 发送到同一 PSN。
配置 RADIUS 运行状况监控
导航到
,以便配置一个 RADIUS 运行状况监控器以监控 ISE 状态。字段 |
描述 |
---|---|
名称 |
指定运行状况监控器的名称。 |
描述 |
指定为运行状况监控器提供的名称的描述。 |
发送间隔 |
指定将运行状况检查发送到服务器的间隔频率(以秒为单位)。 |
接收超时 |
指定接收超时频率(以秒为单位),以便在接收超时范围内从服务器收到有效的响应。该超时必须小于发送间隔。 |
类型 |
从下拉菜单中选择“RADIUS”以作为类型。 |
成功检查次数 |
指定在将服务器标记为启动之前连续成功的运行状况检查次数。 |
失败检查次数 |
指定在将服务器标记为关闭之前连续失败的运行状况检查次数。 该字段描述对象的复制范围。可以选中该框以在联合中复制对象。 |
已联合? |
如果未选中该字段,则对象仅在控制器集群及其关联的服务引擎中可见。 |
配置池
需要为所有协议配置单个池。池成员是 ISE-PSN。默认服务器端口为 1812。
将创建的 RADIUS 运行状况监控器连接到池。
在池的高级选项卡中,选择禁用端口转换。
单击保存。
配置虚拟服务
配置虚拟服务以接受所需的所有 RADIUS 流量和 DHCP 流量。此外,如果需要,接受 HTTPS 流量和 SNMP。
注:选择的应用程序配置文件必须为 System-L4-Application,并启用了保留客户端 IP 选项。
选择的网络配置文件必须为 System-UDP-Fast-Path。
为 RADIUS 和 DHCP 配置所需的所有端口。对于 DHCP,请覆盖 TCP/UDP 配置文件以使用 System-UDP-Per-Pkt。在每个数据包配置文件中使用 UDP,因为 ISE 不响应 DHCP 数据包。如果配置了 HTTPS,必须将其覆盖以使用 System-TCP-Proxy 配置文件。
附加以前配置的池,然后单击保存。
配置 DataScript 并将其附加到虚拟服务
以下是配置 DataScript 并将其附加到虚拟服务的步骤:
导航到
。单击创建按钮以创建新的 DataScript。
向下滚动到 VS Datascript 事件 L4 请求事件脚本部分。
该脚本解析从客户端发送到服务器的请求;因此,这是一个请求事件脚本。
将脚本附加到此事件。
在池部分中,选择为 RADIUS 和 DHCP 配置的池。
保存 DataScript。
选择所需的协议解析器。在该 DataScript 中选择 Default-DHCP 和 Default-Radius。
将 DataScript 附加到 VS。导航到保存 DataScript。
,然后选择配置的 DataScript。单击
配置 NAT
可以使用 NSX Advanced Load Balancer CLI 将 NAT 规则配置为一个策略(称为 NAT 策略),并将其附加到服务引擎组。NAT 规则基于 VRF。NAT 规则匹配条件可能来自源/目标 IP/范围或源/目标端口/范围。
ISE 用例中的 NAT 操作是,将源 IP 设置为 CoA 数据包的虚拟服务 VIP。ISE 将 CoA 数据包发送到 UDP 端口 1700(默认),以确保具有匹配条件。nat_ip 是匹配的流量的源 IP 转换到的 IP。此处,它是 RADIUS 虚拟服务的 NSX Advanced Load Balancer VIP。
有关 NAT 配置的更多详细信息,请参见在 NSX Advanced Load Balancer 服务引擎上配置 NAT。建议使用单独的服务引擎组进行 RADIUS 负载均衡。
只有在 SE 组上启用了 IP 路由时,NAT 才适用,因此,适用于启用 IP 路由的所有限制在此处也适用。SE 必须处于传统活动/备用模式。有关更多详细信息,请参见默认网关(NSX Advanced Load Balancer SE 上的 IP 路由)。
要使用 ISE 进行 RADIUS 负载均衡,建议保留客户端 IP,因为 ISE 将 CoA 发送到从 IP 标头中获取的 NAD IP,而不是从 RADIUS 标头中获取的 IP。如果不保留客户端 IP,则 ISE 将 SE 视为 NAD 并且 CoA 失败。有关更多详细信息,请参见保留客户端 IP。
从 18.2.5 版开始,NAT 仅适用于 UDP 流量。它不适用于任何其他流量 (ICMP/TCP)。
转发未进行负载均衡的流量
由于配置的 NSX Advanced Load Balancer SE 启用了 IP 路由,因此,对于任何不需要负载均衡并与 ISE PSN IP 之间直接发送/接收的流量,将由 SE 与网络主机之间路由这些流量。