ADC

使用 VRRP 处于主动模式的 NetScaler 设备

主动部署除了可以防止停机外,还可以有效利用部署中的所有 NetScaler 设备。在主动-主动部署模式下,在配置中的所有 NetScaler 设备上配置相同的 VIP,但优先级不同,因此给定的 VIP 一次只能在一个设备上处于活动状态。

活跃的 VIP 被称为主 VIP,而其他 NetScaler 设备上的对应 VIP 被称为备份 VIP。如果主 VIP 失败,则优先级最高的备用 VIP 接管并成为主 VIP。双活部署中的所有 NetScaler 设备都使用虚拟路由器冗余协议 (VRRP) 协议定期通告其 VIP 和相应的优先级。

可以将处于主动模式的 NetScaler 设备配置为没有 NetScaler 处于空闲状态。在此配置中,每个 NetScaler 上不同的 VIP 集处于活动状态。例如,在下图中,VIP1、VIP2、VIP3 和 VIP4 是在设备 NS1、NS2 和 NS3 上配置的。由于它们的优先级,VIP1 和 VIP 2 在 NS1 上处于活动状态,VIP3 在 NS2 上处于活动状态,VIP 4 在 NS3 上处于活动状态。例如,如果 NS1 出现故障,NS3 上的 VIP1 和 NS2 上的 VIP2 将变为活动状态。

图 1. 主动-激活配置

主动-激活

上图中的 NetScaler 设备按如下方式处理流量:

  1. 客户端 C1 向 VIP1 发送请求。请求到达 R1。
  2. R1 没有 VIP1 的 ARP 条目,因此它广播了 VIP1 的 ARP 请求。
  3. VIP1 在 NS1 中处于活动状态,因此 NS1 使用源 MAC 地址作为与 VIP1 关联的虚拟 MAC(例如虚拟 MAC1)进行回复,使用 VIP1 作为源 IP 地址。
  4. SW1 从 ARP 回复中获知 VIP1 的端口,并更新其网桥表。
  5. R1 使用虚拟 MAC1 和 VIP1 更新 ARP 条目。
  6. R1 将数据包转发到 NS1 上的 VIP1。
  7. NS1 的负载平衡算法选择服务器 S2,然后 NS1 在其一个 SNIP 地址与 S2 之间打开连接。
  8. S2 在 NetScaler 上回复了 SNIP。
  9. NS1 将 S2 的回复发送给客户端。在答复中,NS1 将物理接口的 MAC 地址作为源 MAC 地址插入 VIP1 作为源 IP 地址。
  10. 如果 NS1 出现故障,NetScaler 设备将使用 VRRP 协议选择优先级最高的 VIP1。在这种情况下,NS3 上的 VIP1 变为活动状态,接下来的两个步骤将更新“主动-活动”配置。
  11. NS3 为 VIP1 广播 GARP 消息。在消息中,虚拟 MAC1 是源 MAC 地址,VIP1 是源 IP 地址。
  12. SW1 从 GARP 广播中获知虚拟 MAC1 的新端口,并更新其桥接表,将后续的 VIP1 客户端请求发送给 NS3。R1 更新其 ARP 表。

可以通过健康追踪来修改 VIP 的优先级。如果您启用了生命值跟踪,则应确保同时启用抢占功能,这样优先级降低的 VIP 就可以被另一个 VIP 抢占。

在某些情况下,流量可能会到达备用 VIP。为避免丢失此类流量,可以在创建主动-活动配置时以每个节点为单位启用共享。或者您可以启用“全局发送到主服务器”选项。在启用共享的节点上,它优先于发送到主节点。

健康追踪

基本优先级(bp-范围 1-255)通常决定哪个 VIP 是主 VIP,但有效优先级 (EP) 也会影响确定。

例如,如果 NS1 上的 VIP 的优先级为 101,而 NS2 上同一 VIP 的优先级为 99,则 NS1 上的 VIP 处于活动状态。但是,如果两个虚拟服务器在 NS1 上使用 VIP,其中一个出现故障,则生命值跟踪可以减少 NS1 上 VIP 的 EP。然后,VRRP 将 NS2 上的 VIP 设置为活跃 VIP。

以下是修改 EP 的生命值跟踪选项:

  • NONE。不追踪。EP = BP
  • ALL。如果所有虚拟服务器都已启动,则 EP = BP。否则,EP = 0。
  • ONE。如果至少有一台虚拟服务器处于运行状态,则 EP = BP。否则,EP = 0。
  • PROGRESSIVE。如果所有虚拟服务器都已启动,则 EP = BP。如果所有虚拟服务器都已关闭,则 EP = 0。否则 EP = BP (1-K/N),其中 N 是与 VIP 相关的虚拟服务器总数,k 是关闭的虚拟服务器的数量。

注意: 如果您指定了非 NONE 的值,则应启用抢占,这样,当主 VIP 的优先级降级时,优先级最高的备份 VIP 将变为活动状态。

Preemption

默认情况下,会启用另一个获得更高优先级的 VIP 对活跃 VIP 的抢占状态,通常应处于启用状态。但是,在某些情况下,您可能需要将其禁用。抢占是每个 VIP 的每个节点的设置。

抢占可能发生在以下情况下:

  • 活跃的 VIP 会关闭,优先级较低的 VIP 取而代之。如果优先级较高的 VIP 重新上线,它将抢占当前活跃的 VIP。
  • 生命值追踪会导致备用 VIP 的优先级高于活跃 VIP 的优先级。然后,备用 VIP 会抢占活跃的 VIP。

共享

如果流量到达备份 VIP,则除非在备份 VIP 上启用共享选项,否则流量将被丢弃。此行为是每个 VIP 的每个节点的设置,默认情况下处于禁用状态。

在图中,NS1 上的 Active-Active 配置 VIP1 处于活动状态,NS2 和 NS3 上的 VIP1 VIP 处于备份状态。在某些情况下,流量可能会到达 NS2 上的 VIP1。如果在 NS2 上启用了共享,则会处理此流量而不是丢弃。

使用 VRRP 处于主动模式的 NetScaler 设备