Citrix ADC

使用等成本多路径 (ECMP)

通过在群集部署上使用相等成本多路径 (ECMP) 机制,活动群集节点会公布虚拟服务器 IP 地址。接收播发流量的群集节点将流量引导到必须处理流量的节点。在斑点虚拟服务器和部分条带的虚拟服务器中可以有冗余的转向。因此,从 NetScaler 11 开始,发现和部分条带的虚拟服务器 IP 地址通告所有者节点,从而减少冗余转向。

您必须具备使用 ECMP 的路由协议的详细知识。有关详细信息,请参阅配置动态路由。有关群集中路由的更多信息,请参阅群集中的路由

要使用 ECMP,您必须首先执行以下操作:

  • 在群集 IP 地址上启用所需的路由协议(OSPF、RIP、BGP 或 ISIS)。
  • 将接口和已发现的 IP 地址(启用动态路由)绑定到 VLAN。
  • 使用 vtysh 外壳配置所选路由协议,并在 ZebOS 上重新分配内核路由。

在群集 IP 地址和外部连接设备上执行类似的配置。

注意

  • 确保群集上的许可证支持动态路由,否则 ECMP 不起作用。
  • 通配符虚拟服务器不支持 ECMP,因为 RHI 需要 VIP 地址才能向路由器通告,而通配符虚拟服务器没有关联的 VIP 地址。

图 1. ECMP 拓扑

ECMP 拓扑

在群集部署上使用 ECMP 机制进行流量分配时,活动群集节点将虚拟服务器 IP 地址通告给上游路由器。ECMP 路由器可以通过 SNIP0、SNIP1 或 SNIP2 访问 VIP 地址。图 1 中的流量流描述如下:

  1. 客户端向群集上托管的 VIP 发送请求。
  2. 上游路由器根据 VIP 的获知路由将数据包转发到任何一个节点。假设 NS1。节点 NS1 是流量接收器。
  3. 流接收器 (NS1) 确定必须处理流量的节点,称为流处理器。例如,节点 NS2 是流处理器。
  4. 带有 SNIP1(97.131.0.2)的流量接收器(NS1)将请求引导到带有 SNIP2(97.131.0.3)的流量处理器(NS2)。
  5. 流处理器 (NS2) 建立与服务器的连接。
  6. 服务器处理请求并将响应发送到将请求发送到服务器的 SNIP 地址。

备注:

  • 只有活动节点通告 VIP 路由。
  • 非活动节点不通告 VIP 路由。
  • 所有活动节点通告条带化 VIP。
  • 只有活动所有者节点通告发现或部分条带化的 VIP。

使用命令行界面在群集上配置 ECMP

  1. 登录到群集 IP 地址。

  2. 启用路由协议。

    enable ns feature <feature>
    

    示例: 启用 OSPF 路由协议。

    enable ns feature ospf
    
  3. 添加一个 VLAN。

    add vlan <id>
    

    示例

    添加虚拟局域网 97
    
  4. 将群集节点的接口绑定到 VLAN。

    bind vlan <id> -ifnum <interface_name>
    

    示例

    bind vlan 97 -ifnum 0/1/2 1/1/2 2/1/2
    
  5. 为每个节点添加一个斑点 SNIP 地址,并在其上启用动态路由。

    add ns ip <SNIP> <netmask> -ownerNode <positive_integer> -dynamicRouting ENABLED
    

    示例

    add ns ip 97.131.0.1 255.0.0.0 -ownerNode 0 -dynamicRouting ENABLED -type SNIP
    add ns ip 97.131.0.2 255.0.0.0 -ownerNode 1 -dynamicRouting ENABLED -type SNIP
    add ns ip 97.131.0.3 255.0.0.0 -ownerNode 2 -dynamicRouting ENABLED -type SNIP
    
  6. 将发现的 SNIP 地址之一绑定到 VLAN。将一个斑点 SNIP 地址绑定到 VLAN 时,在该子网中的群集上定义的所有其他斑点 SNIP 地址将自动绑定到 VLAN。

    bind vlan <id> -IPAddress <SNIP> <netmask>
    

    示例

    bind vlan 97 -ipAddress 97.131.0.1 255.0.0.0
    

    注意

    您可以使用群集节点的 NSIP 地址,而不是添加 SNIP 地址。如果是这样,则不必执行步骤 3-6。

  7. 使用 vtysh 外壳在 ZebOS 上配置路由协议。

    示例:

    在节点 ID 0、1 和 2 上配置 OSPF 路由协议。

    维齐什
    ! interface vlan97 !
    router ospf   owner-node 0
    ospf router-id 97.131.0.1   exit-owner-node
    owner-node 1    ospf router-id 97.131.0.2
    exit-owner-node
    owner-node 2
    ospf router-id 97.131.0.3   exit-owner-node   redistribute kernel network 97.0.0.0/8 area 0  !
    

    注意

    对于要播发的 VIP 地址,RHI 设置是通过使用 VServerRhilevel 参数进行的,如下所示:

    add ns ip <IPAddress> <netmask> -type VIP -vserverRHILevel <vserverRHILevel>
    

    对于 OSPF 特定的 RHI 设置,可以执行以下更多设置:

    add ns ip <IPAddress> <netmask> -type VIP -ospfLSAType ( TYPE1 | TYPE5 ) -ospfArea <positive_integer>
    

    使用 add ns ip6 命令在 IPv6 地址上执行上述命令。

  8. 在外部交换机上配置 ECMP。为 Cisco® Nexus 7000 C7010 版本 5.2(1) 交换机提供了以下示例配置。必须在其他交换机上执行类似的配置。

    //对于 OSPF(IPv4 地址)Global config: Configure terminal  feature ospf    Interface config:  Configure terminal  interface Vlan10      no shutdown      ip address 97.131.0.5/8    Configure terminal  router ospf 1  network 97.0.0.0/8 area 0.0.0.0  ---------------------------------  
    
    //对于 OSPFv3(IPv6 地址)Global config:  Configure terminal  feature ospfv3    Configure terminal  interface Vlan10      no shutdown      ipv6 address use-link-local-only      ipv6 router ospfv3 1 area 0.0.0.0    Configure terminal  router ospfv3 1
    

ECMP 部署中的路由器监视群集节点

在群集设置中,在具有发现 SNIP 地址配置的所有者节点上,您现在可以禁用“所有者下响应”选项。默认情况下,该选项处于启用状态,允许节点响应来自上游路由器的 ICMP/ARP/ICMP6/ND6 请求。您现在可以禁用此选项,以允许路由器监视群集节点是否处于活动状态或非活动状态。路由器发送请求时,如果禁用该选项,它将标识所有者节点处于非活动状态且不可用于流量分配。

使用命令行界面为静态路由流量分配配置 ECMP

add ns ip <ipddress> <netmask> -ownernode <node-id> –ownerDownResponse disable

使用等成本多路径 (ECMP)