使用 MEP 协议的父子拓扑部署

Citrix ADC GSLB 通过在所有相关站点之间创建网状连接并制定智能负载平衡决策,提供全局服务器负载平衡和灾难恢复。每个站点通过衡量指标交换协议 (MEP) 与其他站点通信,以便定期交换服务器和网络衡量指标。但是,随着对等站点数量的增加,由于网格拓扑,MEP 流量的数量会以指数方式增加。要克服此问题,您可以使用父子拓扑。父子拓扑还支持较大的部署。除了 32 个父站点之外,您还可以配置 1024 个子站点。

GSLB 父子拓扑是具有以下特征的两级层次结构设计:

  • 在顶层是父站点,它们与其他父母有同行关系。
  • 每个父站点可以有多个子站点。
  • 每个父站点与其子站点和其他父站点交换运行状况信息。
  • 子站点仅与其父站点进行通信。
  • 在 GSLB 的父子关系中,只有父站点响应 ADNS 查询。子站点充当正常的负载平衡站点。
  • 只应在父站点中配置 ADNS 服务或 DNS 负载平衡虚拟服务器。
  • 父站点可以具有正常的 GSLB 配置,即来自本地站点和所有远程站点的服务,但子站点只能具有本地服务。此外,只有父站点配置了 GSLB 虚拟服务器。

注意

  • 在父子拓扑中,站点衡量指标的交换从两个 IP 地址中的较低者启动。但是,从 NetScaler 版本 11.1 版本 51.x 中,父站点会启动到子站点的连接,反之亦然,因为父站点具有有关 GSLB 设置中所有子站点的信息。
  • 在父-父连接中,仍然从两个 IP 地址的较低 IP 启动站点衡量指标的交换。

  • 在父子拓扑中,并不总是需要在子站点上配置 GSLB 服务。但是,如果您有其他配置(如客户端身份验证、客户端 IP 地址插入或其他特定于 SSL 的要求),则必须在子站点上添加显式 GSLB 服务并对其进行相应配置。
  • 在父子拓扑中,父站点和子站点可以位于不同 Citrix ADC 软件版本中。但是,要使用 GSLB 自动配置同步选项在父站点之间同步配置,所有父站点必须位于 Samecitrix ADC 软件版本上。如果您未使用 AutomaticConfigsync 选项,则父站点和子站点可以位于不同 Citrix ADC 软件版本中,但请确保您未使用最新版本中的任何新功能。通常,这也适用于参与 GSLB 的两个 Citrix ADC 节点。

基本父子拓扑

在该图中,站点 P1 和站点 P2 是对等关系中的父站点。站点 P1C1 和 P2C1 分别是 P1 和 P2 的子站点。

父子拓扑图

为 GSLB 设置父子配置

如果您在 GSLB 站点配置了防火墙,请确保端口 3011 处于打开状态。

下图显示了父子配置示例。

本地化后的图片

  • 子站点的配置包括子站点及其父站点,但不包括其他父站点或子站点。
  • 网络衡量指标(如 RTT 和持久性会话信息)仅在父站点之间进行同步。因此,默认情况下,在所有子站点上禁用 nwMetricExchange 和 sessionExchange 等参数。
  • 要验证正确的父子配置,请检查绑定到父站点的所有 GSLB 服务的状态。

要使用 CLI 为 GSLB 设置父子配置,请执行以下操作:

  1. 在每个父站点上,输入以下命令:

    add gslb site <siteName> <siteIPAddress> [-publicIP <ip_addr|ipv6_addr|*>]
    
    add gslb site <siteName> <siteIPAddress> [-publicIP <ip_addr|ipv6_addr|*>] [-parentSite <string>]
    

    示例:

    add gslb site GSLB_Site1 10.1.1.1 - publicIP 10.1.1.1
    
    add gslb site Site1_child1 1 10.1.1.2 -publicIP 10.1.1.2 -parentSite GSLB_Site1
    
  2. 在每个子站点上,输入以下命令:

    add gslb site <siteName> <siteIPAddress> [-publicIP <ip_addr|ipv6_addr|*>]
    
    add gslb site <siteName> <siteIPAddress> [-publicIP <ip_addr|ipv6_addr|*>] [-parentSite <string>]
    

    示例:

    add gslb site GSLB_Site1 10.1.1.1 - publicIP 10.1.1.1
    
    add gslb site Site1_child1 1 10.1.1.2 -publicIP 10.1.1.2 -parentSite GSLB_Site1
    

有关使用命令行界面的父子配置的完整示例,请参阅使用 CLI 的完整父子配置示例

注意

如果负载平衡虚拟服务器 IP 地址是私有 IP 地址,并且公有 IP 地址与此 IP 地址不同,则需要为子站点上的本地负载平衡虚拟服务器配置 GSLB 服务。在父站点和子站点之间收集统计信息时,这是必需的。

在子站点上,在命令提示符下键入:

add gslb service <name> <private IP/lb vserver IP> http 80 –sitename <childsite name> -publicip <public IP of LB vserver>

示例:

add gslb service Service-GSLB 192.168.1.3 http 80 -GSLB_Site11 site 11_lb1 172.16.1.1

其中 192.168.1.3 是负载平衡虚拟服务器的私有 IP 地址,172.16.1.1 是负载平衡虚拟服务器的公有 IP 地址。

备份父站点

注意:此功能是在 NetScaler 版本 11.1 版本 51.x 中引入的。若要使用备份父站点拓扑,请确保父站点和子站点位于 NetScaler 11.1 版本 51.x 及更高版本上。

在大量子站点与父站点关联的情况下,备份父站点拓扑非常有用。如果此父站点关闭,则其所有子站点都将变为不可用。为了防止这种情况,您现在可以配置一个备份父站点,如果原始父站点为“关闭”,子站点可以连接到该备份父站点。父站点通过 MEP 消息将备份父列表发送到子站点。

当父站点为“关闭”时,GSLB 中的其他父站点将通过 MEP 知道特定父站点是关闭,因为该父站点的 MEP 是关闭。GSLB 设置中的其他父站点查找对等父站点的备份链。首选项最高的父站点采用了下降的父站点的子站点。然后,新的父级将启动与子站点的连接。子站点可以在评估其现有连接和备份列表中的信息后接受或拒绝连接。备份父站点需要几秒钟才能采用子站点。 当原始父站点备份为 UP 时,它会尝试与已迁移到其他父站点的子站点建立连接。连接尝试成功后,子站点将重新分配到其原始父站点。

注意

  • 只有父站点可以配置为备份,并且此配置只能在父站点上完成。
  • 所有子站点都使用备份父站点集。
  • 同步仅在父站点上完成。GSLB 子站点的配置不受同步影响。这是因为父站点和子站点配置不完全相同。子站点配置仅包含其自身及其父站点的详细信息。此外,并不总是需要在子站点中配置 GSLB 服务。

考虑下图中显示的配置,其中:

  • SiteP1、SiteP2 和 SiteP3 是父站点。
  • Child_site1、Child_site2 和 Child_site3 分别是 SiteP1、SiteP2 和 Site P3 的子站点。
  • 备份父站点;
    • SiteP1 备份父项 - SiteP2(更高的首选项)和 Site P3
    • SiteP2 备份父项 — SiteP3(更高的首选项)和 Site P1
    • SiteP3 备份父项 — SiteP1(更高的首选项)和 Site P2

注意:为了说明,图中仅显示每个父站点的一个备份父站点。

本地化后的图片

下面的列表总结了父站点和子站点在各种情况下的行为:

  • 场景 1:SiteP1 关闭。
    • SiteP2 和 SiteP3 检测到 SiteP1 的 MEP 连接处于关闭状态。SiteP2 在 SiteP1 的备份父级首选项列表中较高,因此它尝试启动与 Child_site1 的连接。SiteP3 假定儿童 Child_site1 现在是父站点 SiteP2 的子站点。
    • SiteP2 将 SiteP1 的备份父项(SiteP2 和 SiteP3)的列表发送到 Child_Site1。Child_site1 使用该列表来决定是接受还是拒绝来自 SiteP2 的连接。它接受连接并成为 SiteP2 的子项。
    • 当 SiteP1 启动时,它会向 Child_site1 发送连接请求。新请求的优先级较高,Child_site 1 将迁移到 SiteP1。
  • 场景 2: 只有 SiteP1 与 SiteP2 之间的 MEP 连接已经关闭。Child_site1 拒绝 SiteP2 的连接请求,因为其父站点 SiteP1 仍处于运行状态。

  • 场景 3:SiteP3 和 Child_Site1 检测到 SiteP1 处于关闭状态,SiteP3 和 SiteP2 之间的 MEP 连接也处于关闭状态。但是,Site P2 检测到 SiteP1 处于运行状态,SiteP1 与 SiteP2 之间的 MEP 连接处于运行状态。
    • SiteP2 不采取任何操作。
    • SiteP3 检查 SiteP1 的备份列表,并发现 SiteP2 的首选项高于 SiteP3。但是 SiteP2 处于关闭状态,因此,SiteP3 尝试与 Child_site1 建立连接。Child_site1 检测到 SiteP1 处于关闭状态,因此,它接受 SiteP3 的连接请求。
    • 现在 SiteP1 和 SiteP2 之间的连接处于关闭状态。SiteP2 检查 SiteP1 的备份列表,并发现自己是最首选的备份,因此它尝试连接到 Child_site1。Child_site1 根据 SiteP1 的列表评估新的连接请求,并发现 SiteP2 作为最首选的备份,因此,它从 SiteP3 迁移到 SiteP2。

使用命令行界面配置备份父站点

在命令提示符处键入:

set gslb site <sitename> -backupParentlist <bkp_site1> <bkp_site2> …<bkp_site5>

<sitename> 是当前父站点。

注意

  • 您不能将新站点添加为备份父站点。您必须首先添加所有站点,然后将站点配置为备份父站点。
  • 若要删除备份父级,必须使用 unset 命令,该命令取消设置以前配置为备份父站点的所有站点。

使用 GUI 配置备份父站点

  1. 导航到 配置 > 流量管理 > GSLB > 站点
  2. 添加新站点或选择现有站点。
  3. 创建或配置 GSLB 站 点时,选择“备份父 站点”选项框。