Product Documentation

Using Equal Cost Multiple Path (ECMP)

May 04, 2015

With the Equal Cost Multiple Path (ECMP) mechanism, virtual server IP addresses are advertised by all active cluster nodes. This means that traffic can be received by any cluster node, which then steers the traffic to the node that must process the traffic. There can be redundant steering in case of spotted and partially striped virtual servers. Therefore, from NetScaler 11 onwards, spotted and partially striped virtual server IP addresses are advertised only by the owner nodes. This reduces the redundant steering.

You must have detailed knowledge of routing protocols to use ECMP. For more information, see "Configuring Dynamic Routes. For more information on routing in a cluster, see "Routing in a Cluster".

To use ECMP, you must first enable the required routing protocol (OSPF, RIP, BGP, or ISIS) on the cluster IP address. You must bind the interfaces and the spotted IP address (with dynamic routing enabled) to a VLAN. Configure the selected routing protocol and redistribute the kernel routes on the ZebOS by using the vtysh shell.

You must perform similar configurations on the cluster IP address and on the external connecting device.

Note:
  • Make sure that the licenses on the cluster support dynamic routing, otherwise ECMP does not work.

  • ECMP is not supported for wildcard virtual servers since RHI needs a VIP address to advertise to a router and wildcard virtual servers do not have associated VIP addresses.

Figure 1. ECMP topology


As seen in the above figure, the ECMP router can reach the VIP address via SNIP0, SNIP1, or SNIP2.

To configure ECMP on the cluster by using the command line interface

  1. Log on to the cluster IP address.
  2. Enable the routing protocol.

    enable ns feature <feature>

    Example: To enable the OSPF routing protocol.
    > enable ns feature ospf
    
  3. Add a VLAN.

    add vlan <id>

    Example
    > add vlan 97
    
  4. Bind the interfaces of the cluster nodes to the VLAN.

    bind vlan <id> -ifnum <interface_name>

    Example
    > bind vlan 97 -ifnum 0/1/2 1/1/2 2/1/2
    
  5. Add a spotted SNIP address for each node and enable dynamic routing on it.

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

    Example
    > 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. Bind one of the spotted SNIP addresses to the VLAN. When you bind one spotted SNIP address to a VLAN, all other spotted SNIP addresses defined on the cluster in that subnet are automatically bound to the VLAN.

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

    Example
    > bind vlan 97 -ipAddress 97.131.0.1 255.0.0.0
    
    Note: You can use NSIP addresses of the cluster nodes instead of adding SNIP addresses. If so, you do not have to perform steps 3 - 6.
  7. Configure the routing protocol on ZebOS using vtysh shell.

    Example: To configure OSPF routing protocol on node IDs 0, 1, and 2.

    > vtysh    !  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  !
    
    Note: For VIP addresses to be advertised, RHI setting must done by using the vserverRHILevel parameter as follows:

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

    For OSPF specific RHI settings, there are additional settings that can be done as follows:

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

    Use the add ns ip6 command to perform the above commands on IPv6 addresses.
  8. Configure ECMP on the external switch. The following sample configurations are provided for the Cisco® Nexus 7000 C7010 Release 5.2(1) switch. Similar configurations must be performed on other switches.
    //For OSPF (IPv4 addresses)  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  ---------------------------------  //For OSPFv3 (IPv6 addresses)  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