GSLB IPv6 Support

Overview

GSLB feature on Avi Vantage provides simplified and centralized configuration and monitoring of global applications. A GSLB service is the representation of a global application. A GSLB service comprises multiple GSLB pools. A GSLB service can switch load across multiple GSLB pools based on the various parameters configured. The services that comprise a GSLB pool are called GSLB pool members. Members can be specified by the followings:

  • The virtual service name
  • An IP address, to specify standalone servers or VIPs defined by third-party load balancers, and/or
  • A DNS name Prior to Avi Vantage release 18.2.9, only IPv4 address was supported for various components for GSLB.

Starting with Avi Vantage release 18.2.9, GSLB now supports IPv6 address in addition to IPv4 address.

GSLB IPv6 Support

The following are the GSLB components for which IPv6 address support is available:

  • GSLB Pool Member A GSLB service on Avi Vantage is configured with GSLB pool members. Starting with Avi Vantage 18.2.9, IPv6 support is available for GSLB pool members.
    • Public IP and Private IP address:
      • Public IP address is an alternative IP address for the pool member. In usual deployments, the VIP in the virtual service is a private IP address; it gets configured in the IP field of the GSLB service.
      • A GSLB pool member can be configured with IPv6 address or with IPv4 address - public or private IP address. IP address type (IPv4 or IPv6) should be the same for GSLB pool members. A combination of IPv4 AND IPv6 addresses is not supported.
      • If a member of a pool is configured with a public IP address, then other pool members should also be configured with public IP addresses.

Login to Avi CLI and use gslbservice mode to configure an IP address for the GSLB pool member as shown below.


  [admin:controller]: gslbservice:groups:members>
  [admin:controller]: gslbservice:groups:members>
  [admin:controller]: gslbservice:groups:members> ip
  IPv4/IPv6 Address format <x.x.x.x>/<x:x::x>    IP address of the pool member.
 

Use the following to configure GSLB pool members with a public IP address .


 [admin:ctrl]: gslbservice:groups:members> public_ip ip
 IPv4/IPv6 Address format <x.x.x.x>/<x:x::x>   Public IP address of the pool member.
 [admin:ctrl]: gslbservice:groups:members> public_ip ip 
 
  • CNAME Changes: The external GSLB pool member is configured with a fully qualified domain name, which is resolved to an IP address by the Avi Controller. The DNS virtual service monitors the resolved address while returning the FQDN(cname).

Starting with Avi Vantage release 18.2.9, cname can be resolved to IPv6 address too. Only one IP address type (IPv4 address or IPv6 address) is allowed per cname.
Use the resolve_fqdn_V6 flag from Avi CLI to resolve a CNAME to an IPv6 address. To use same CNAME with one IPv4 and one IPv6 address, create two pool members with the same CNAME and enable resolve_fqdn_v6 flag for one member.


 [admin:ctrl]: gslbservice:groups> members resolve_fqdn_to_v6
 New object being created
 

The following CLI output shows the GSLB member configuration with IPv6 options:

  • member IP address: fd00:0:0:78::1
  • Public IP address: deed:0:0:76::1
  • resolve_fqdn_to_v6: Set as true

 [admin:controller]: > show gslbservice gs-1
    +----------------------------------+--------------------------------------------------+
    | Field                            | Value                                            |
    +----------------------------------+--------------------------------------------------+
    | uuid                             | gslbservice-4210850f-0a1c-4d83-8ea7-1dff1fd1ce09 |
    | name                             | gs-1                                             |
    | domain_names[1]                  | cloud1.avi.com                                   |
    | domain_names[2]                  | cloud2.avi.com                                   |
    | groups[1]                        |                                                  |
    |   name                           | ny                                               |
    |   priority                       | 10                                               |
    |   algorithm                      | GSLB_ALGORITHM_ROUND_ROBIN                       |
    |   members[1]                     |                                                  |
    |     ip                           | fd00:0:0:78::1                                   |
    |     ratio                        | 1                                                |
    |     enabled                      | True                                             |
    |     resolve_fqdn_to_v6           | True                                          |
    |   enabled                        | True                                             |
    | groups[2]                        |                                                  |
    |   name                           | sf                                               |
    |   priority                       | 12                                               |
    |   algorithm                      | GSLB_ALGORITHM_GEO                               |
    |   members[1]                     |                                                  |
    |     ip                           | fd00:0:0:78::2                                   |
    |     ratio                        | 1                                                |
    |     enabled                      | True                                             |
    |     public_ip                    |                                                  |
    |       ip                         | deed:0:0:76::1                                   |
    |     resolve_fqdn_to_v6           | True                                            |
    |   enabled                        | True                                             |
    | num_dns_ip                       | 1                                                |
    | controller_health_status_enabled | True                                             |
    | health_monitor_scope             | GSLB_SERVICE_HEALTH_MONITOR_ALL_MEMBERS          |
    | enabled                          | True                                             |
    | use_edns_client_subnet           | True                                             |
    | wildcard_match                   | False                                            |
    | site_persistence_enabled         | False                                            |
    | pool_algorithm                   | GSLB_SERVICE_ALGORITHM_PRIORITY                  |
    | min_members                      | 0                                                |
    | resolve_cname                    | False                                            |
    | is_federated                     | True                                             |
    | tenant_ref                       | admin                                            |
    +----------------------------------+--------------------------------------------------+
 [admin:controller]: >
 
  • EDNS Support – EDNS option for a DNS profile is now supported for IPv6 address too.

  • DNS Policy – IPv6 address is supported for DNS policy. IPv6 address is supported for clients in addition to IPv4 address.

  • Consistent Hash Load Balancing Algorithm – New connections are distributed across the servers using a hash that is based on a key specified in the field. In the consistent hash load balancing method, traffic is distributed based on the client’s source IP address (a DNS resolver address), unless EDNS processing is ON. In case EDNS processing is enabled, the source IP address is found in the ECS option. Starting with Avi Vantage release 18.2.9, consistent hash IPv6 value is supported now. Use the consistent_hash_v6 field from Avi CLI for using IPv6 values for consistent hash key values.

    
     [admin:controller]: gslbservice> groups index 1
     [admin:-controler]: gslbservice:groups> algorithm gslb_algorithm_consistent_hash
     consistent_hash_mask     Mask to be applied on client IP for consistent hash algorithm.
     consistent_hash_mask6    Mask to be applied on client IPV6 address for consistent hash algorithm.
     description              User provided information that records member details such as application owner name, contact, etc.
     enabled                  Enable or disable a GSLB service pool.
     fallback_algorithm       The fallback load balancing algorithm used to pick a member when the pool algorithm fails to find a valid member. For instance wh...
     min_health_monitors_up   Minimum number of health monitors in UP state to mark the member UP.
     name                     Name of the GSLB service pool.
     priority                 Priority of this pool of Members. The higher the number, the higher is the priority of 
    
  • Fallback IP Address – Whenever GSLB fails to lookup for an IPv4 pool member, fallback_ip is returned. Irrespective of whether all IPv6 members are available or not, only if all IPv4 pool members are unavailable, fallback_ip is returned A new field fallback_ipv6 is introduced to configure a fallback IPv6 address. The fallback IP address can be of type - v4 or v6. The response is based on the query type. The v4 address is configured in fallback_ip and v6 in fallback_ip6 fields.

    The fallback IP address can be of type - v4 or v6. The response is based on the query type. The v4 address is configured in fallback_ip and v6 in fallback_ip6 fields.

  • Geolocation Database Geolocation database is used to load balance GSLB request based on geolocation. The database files now supports both v4 and v6 entries. This helps in extracting v6 entries from the database This entries are used for the geolocation lookup. IPv6 location format is different from the IPv4 location format. For a custom IPv6 geolocation database, use the location format for the database entry as shown below: ipv6_prefix,mask,latitude,longitude,country/region/city,tag

    The following combination of the database is supported now:

    • IPv4 database only
    • IPv6 database only
    • A combination of V4 and V6 database

For more information, refer to Geolocation-based Load Balancing Algorithm.