问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

Citrix NetScaler高可用性(HA)解析

创作时间:
作者:
@小白创作中心

Citrix NetScaler高可用性(HA)解析

引用
1
来源
1.
https://www.cnblogs.com/lsgxeva/p/9133501.html

Citrix NetScaler高可用性(HA)解析

在高可用性环境中,通常需要两台相同型号的设备来构建高可用性环境。这种环境可以确保NetScaler不会成为系统的单点故障,保证后端服务能够不间断地提供访问。在两台NetScaler设备之间构建高可用(HA)集群时,设备间通过UDP进行心跳信息检测。

NetScaler HA体系结构

NetScaler的所有IP地址都是浮动的IP地址,并通过HA对成员进行共享。在HA中,唯一的不共享的IP地址是每台NetScaler设备的NSIP地址,即NetScaler的管理IP。设备通过SNIP或MIP与后端服务器通信,将前端请求的数据包交换传递给特定的所请求的服务器。

只有主NetScaler(图中NetScaler 1)被使用。NetScaler 2处于待机模式,并等待主节点发生故障。这两个节点交换数据包(HA同步)进行健康监测。

ARP/GARP/VMAC机制

NetScalers和其他网络设备一样使用ARP(地址解析协议)解析MAC地址来找到位于局域网上的其他设备。例如,NetScaler设置了一个虚拟IP地址(VIP)。所有对VIP的请求数据包都会到达NetScaler的运行这个VIP服务的vServer网关,这时NetScaler将检查其自己的ARP缓存(位于预先解析的IP地址)对应的MAC地址。如果缓存为空,网关将通过LAN发送ARP广播包。相应的IP地址的设备将回复网关含有它的MAC地址的数据包。然后网关会把这个对于IP和MAC地址对应关系放入自己的ARP缓存中。

可以通过NetScaler的命令查看ARP表:

在HA环境中,尤其是在故障转移的时候,在网关ARP缓存表中的前一个MAC地址是之前NetScaler主设备的MAC地址。这可能会导致问题。要解决这个问题,新的主设备将所有的NetScaler HA拥有的IP地址(VIP,NSIPs等)发送 GARP(Gratuitous ARP) 广播数据包。网关将接收到这些数据包,并更新自己的ARP缓存表。

下面列出了几种情况下发送GARP的数据包的情况:

  • NetScaler 启动 (for MIP andSNIP)
  • 创建一个新的LB服务器
  • 添加新的IP
  • 设置新的VLAN
  • 故障转移

需要注意的是有一些防火墙不支持GARP流量,因此,我们需要配置VMAC为部署。当使用VMAC,MAC地址是在两个节点之间共享的,因此它是不使用GARP更新MAC表。

如果主节点要是关闭或者如果它停止响应请求,辅助节点会接管所以的请求继续进行服务。在主节点和辅助节点之间使用心跳相互监视,通过每个节点的IP地址进行发送。

默认情况下,有一些端口需要打开防火墙规则以允许在高可用性设置的时候,NetScaler节点之间的通信,端口如下:

  • UDP端口3003用于交换心跳的通信UP或DOWN状态
  • TCP端口3008是用于安全的高可用性配置同步
  • TCP端口3009用于安全命令传播和Metric Exchange Protocol(MEP)
  • TCP端口3010是用于高可用性配置同步
  • TCP端口3011是用于命令传输和MEP

NetScaler高可用这个功能需要我们有两个相同的型号和同一个系统的版本。运行HA时,如果型号不一致可能导致出现问题,例如,一个MPX5550和一个VPX 1000。如果是这样的配置出现问题Citrix并不会进行技术支持。

Netscaler HA设置选项说明

节点状态

  • STAYPRIMARY:此选项强制NetScaler设备停留在主节点模式。
  • STAYSECONDARY:此选项强制NetScaler设备留在辅助节点模式。
  • ENABLED:这是默认选项。该选项允许启用NetScaler的高可用性,对基于高可用性事件的NetScaler设备进行故障转移。
  • DISABLED:此选项禁用高可用性引擎。

故障保护

故障保护模式对两个节点的健康状况进行检查,确保一个节点始终是主节点。同时故障保护模式也是为了确保当一个主节点只有部分可用时,备份节点能够尽可能的处理流量。HA故障保护模式需要在每个节点上配置。

下面是产生的节点状态的HA的行为。

默认配置时,主节点负责所有流量。

两个节点都有自己的NSIPs但共享大部分配置,包括VIP,SNIP和MIP。

主节点上的更改被复制到辅助节点。(默认启用)

心跳(Hello间隔时间)为200ms。

  • 使用UDP数据包的端口3003。
  • 失效时间为3秒。
  • 当心跳包在3秒之后丢失就会发生故障转移。

故障保护默认是关闭的,开启需要在每个节点上配置。

默认情况下,通信并不加密,不走安全通道和协议:

  • HA对同步发生在端口3010(TCP)。
  • 安全HA对同步发生在端口3008(TCP)。
  • 命令传播发生在端口3011(TCP)。
  • 安全命令传播发生在端口3009(TCP)。

Netscaler HA配置

为了建立一个高可用性主从节点,我们需要知道的其IP地址和默认的系统:用户名和密码。要求它们具有相同的RPC连接的用户名和密码,默认情况下,所有的NetScaler都必须相同。要建立一个高可用性对,去System | High Availability| Nodes,然后单击添加从节点之一。 这里我们提出了以下选项:

  • 远程IP地址(其他节点的NSIP)
  • 配置远程系统参与高可用性设置
  • 关闭接口的HA monitor
  • 自节点上打开INC(独立网络配置)
  • 远程系统的凭据

我们需要做的就是输入IP地址,配置远程NetScaler系统的信息,关闭接口的HA monitor,并输入NetScaler的用户名和密码。

在接口上关闭HA monitor意味着,NetScaler不会使用该接口从一个节点到另一个节点发送的HA探针。

最后一个选项是,INC,如果设备在不同的子网,那么需要独立的网络配置,因为常规的HA选项使用相同的网络配置。之后,我们已经填入了信息并点击OK,主节点会开始与辅助节点传播其信息和配置,成立了高可用性对,如下面的截图:

需要注意的是,有几个项目的同步是很重要的,而这些都是许可和ns.conf、rc.conf中的文件。你可以使用命令验证SSL同步情况,使用CLI命令:

因为它是建立HA对,所做到主节点的操作和配置更改都将传播到辅助节点。

我们可以看到从GUI或使用下面的命令查看HA的节点:

在命令行显示出现的信息中,如果该节点的接口的活动的,说明该节点是主(活动)节点。

我们也可以使用故障切换界面进行查看;如果我们NetScaler有多个网络接口连接在了不同的交换机,就可以用它们来故障转移到另一个接口。

例如,如果我们的NetScaler采用两个接口,其中接口1连接交换机1,接口2连接到交换机2,我们可以使用故障切换接口设置故障转移从NIC1到NIC 2,举个例子,交换机1关机。在一个大环境中,往往有跨越多个交换机的自动转移隧道自动处理。

在GUI中,我们可以在每个节点上单击鼠标右键,并配置如同步或强制故障转移。强制故障切换可以让我们进行手动故障转移,这个一般在我们需要升级的时候进行手动故障切换。

默认情况下,当主节点出现故障,辅助节点将接管并自动成为主节点;当主主节点重新联机,原来的主节点就会降级为辅助节点。如果在一个环境中,我们的HA同步状态出现问题,辅助节点本身并没有同步到新更改的信息,那么在这个时候,我们要进行升级,为了保险起见,我们可以在升级辅助节点的时候,设置辅助节点为STAYSECONDARY状态,即强制NetScaler设备留在辅助节点模式。这将保证主节点在审计重启之后还将保持为主节点,辅助节点还是辅助节点。

如果您在使用HA功能的时候出现了一些问题,我们可以使用 nsconmsg 功能。通过运行命令 nsconmsg –d event ,我们可以得到一些控制台中发生的事件信息。

默认情况下,NetScaler使用Gratuitous ARP(GARP)在发生故障转移后公布新的主节点的MAC地址。一些厂商如思科和一些老的防火墙厂商如瞻博网络不接受GARP请求数据包的类型。所以,如果您的环境中有不支持GARP的网络设备存在,且NetScaler的数据包需要通过该网络设备,那么就需要使用VMAC。关于GARP,通过登录到NetScaler的CLI和运行命令 set network L2 param –garpReply enabled 。这个命令需要在设置了一对高可用性组的NetScaler设备上使用。

如果我们的防火墙或路由器不支持GARP,我们可以配置NetScaler使用VMAC。 VMAC允许的NetScaler之间具有一个浮动MAC地址,因此绕开GARP的问题。这可以通过System | Network | VMAC进行配置。

下面我们就来定义一个虚拟路由器ID,例如100,并将其绑定到 一个接口 ,这样的话VIP请求就会从该地址而来。虚拟路由器ID只是用作在VMAC中的标识符。这样做了之后,HA节点将复制这个虚拟的地址进行使用,HA节点之间使用的MAC是共享的同一个。我们可以去Network | Interfaces看VMAC面板,HA使用的虚拟MAC就在其中显示。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号