ADC

使用 MEP 协议进行父子拓扑部署

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

GSLB 父子拓扑是一种双层次结构设计,具有以下特征:

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

注意

  • 在父子拓扑中,站点指标的交换从两个 IP 地址中的较低者启动。但是,从 NetScaler 版本 11.1 build 51.x 开始,父站点会启动与子站点的连接,而不是相反的方式。因为父站点具有有关 GSLB 设置中所有子站点的信息。
  • 在父级与父级连接中,站点指标的交换仍从两个IP地址的较低IP启动。

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

基本的父子拓扑

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

Parent-child-topology-diagram

为 GSLB 设置父子配置

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

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

父子配置

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

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

  1. 在每个父站点上,配置其所有子站点、对等父站点以及与对等站点关联的子站点:

    添加父站点时使用以下命令:

    add gslb site <siteName> <siteIPAddress> [-publicIP <ip_addr|ipv6_addr|*>]
    <!--NeedCopy-->
    

    添加子站点时使用以下命令:

    add gslb site <siteName> <siteIPAddress> [-publicIP <ip_addr|ipv6_addr|*>] [-parentSite <string>]
    <!--NeedCopy-->
    
  2. 在子站点上,配置子站点并将子站点与其父站点相关联:

    注意:

    正确配置父站点和子站点关联。例如,您必须使用 gslb_site1 配置 site1_child1。您无法使用 GSLB_Site2 配置 Site1_child1。

    使用以下命令配置与子站点关联的父站点:

    add gslb site <siteName> <siteIPAddress> [-publicIP <ip_addr|ipv6_addr|*>]
    <!--NeedCopy-->
    

    使用以下命令添加子站点并将其与其父站点关联:

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

有关使用命令行界面的父子配置的完整 示例,请参阅完整的父子配置示例,使用 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 build 51.x 及更高版本上。

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

当父站点处于关闭状态时,GSLB 中的其他父站点会通过 MEP 知道某个特定的父站点已关闭,因为该父站点的 MEP 已关闭。GSLB 设置中的其他父站点查找对等父站点的备份链。具有最高优先级的父站点将采用已关闭 DOWN 的父站点的子站点。然后,新的父站点将启动与子站点的连接。在评估其现有连接和备份列表中的信息后,子站点可以接受或拒绝连接。备份父级采用子站点需要几秒钟的时间。 当原始父站点备份时,它会尝试与已迁移到其他父站点的子站点建立连接。连接尝试成功后,子站点将被重新分配到其原始父站点。

注意

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

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

  • SiteP1、SiteP2 和 SiteP3 是父站点。
  • child_site1、child_site2 和 child_site3 分别是 SiteP1、SiteP2 和 SiteP3 的子站点。
  • 备份父站点;
    • SiteP1 备份父级 — SiteP2(更高的首选项)和 SiteP3
    • SiteP2 备份父级 — SiteP3(更高的首选项)和 SiteP1
    • SiteP3 备份父级 — SiteP1(更高的首选项)和 SiteP2

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

父子拓扑图

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

  • 场景 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 连接也已关闭。但是,SiteP2 检测到 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>
<!--NeedCopy-->

<sitename> 是当前的父站点。

示例:

对于父站点 (SiteP1),站点(SiteP2 和 SiteP3)被配置为备份父站点。

set gslb site SiteP1 -backupParentlist SiteP2 SiteP3
<!--NeedCopy-->

注意

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

使用 GUI 配置备份父站点

  1. 导航到 配置 > 流量管理 > GSLB > 站点
  2. 添加新站点或选择现有站点。
  3. 在创建或配置 GSLB 站点时,选中备份父站点选项框。
使用 MEP 协议进行父子拓扑部署