This section focuses on various methods to confirm the proper operation and resolve Geo-DB issues.

Checklist

  • Verify that all GSLB sites, GSLB services, and the DNS virtual service are configured and running.

  • Ensure the SE group of the DNS virtual service is configured with sufficient disk and memory. The minimum recommended values are shown below.



  • Verify that a geo profile has been pushed to the SE once it has been defined.

    Use the show virtualservice your-dns-vs-name geodbinternal command to verify the Geo-DB has been applied correctly. Check for the following outcomes:

    [admin:user-ctrl]: > show virtualservice dns-vs geodbinternal
    +----------------+-------------------------------------------------------+
    | Field          | Value                                                 |
    +----------------+-------------------------------------------------------+
    | se_uuid        | se-005056ba3198                                       |
    | uuid           | gslbgeodbprofile-8bb11129-383c-497d-9e39-7b622af3be56 |
    | name           | geo-profile                                           |
    | db_entries[1]  |                                                       |
    |   filename     | v4_only.txt.gz                                        |
    |   num_entries  | 35                                                    |
    |   num_prefixes | 35                                                    |
    |   num_errors   | 0                                                     |
    |   priority     | 10                                                    |
    +----------------+-------------------------------------------------------+
    [admin:user-ctrl]: >

    You might otherwise observe error output as shown below. The error code FILE_NO_RESOURCES indicated that enough space is not available on the SEs, as discussed above.

    [admin:user-ctrl]: > show virtualservice dns-vs geodbinternal
    +----------------+-------------------------------------------------------+
    | Field          | Value                                                 |
    +----------------+-------------------------------------------------------+
    | se_uuid        | se-005056b06fda                                      |
    | uuid           | gslbgeodbprofile-8bb11129-383c-497d-9e39-7b622af3be56 |
    | name           | geo-profile                                           |
    | db_entries[1]  |                                                       |
    |   filename     | v4_only.txt.gz                                        |
    |   num_entries  | 20                                                    |
    |   num_prefixes | 20                                                    |
    |   num_errors   | 1                                                     |
    |   priority     | 10                                                    |
    | error_file     | v4_only.txt.gz                                        |
    | error          | FILE_NO_RESOURCES                                     |
    +----------------+-------------------------------------------------------+
    [admin:user-ctrl]: >
  • Verify the configuration of geolocation algorithm that is associated with the GSLB service and/or the GSLB pool. The below NSX Advanced Load Balancer UI screenshot shows the geo algorithm at the GSLB pool level.



  • Use the following command to verify the geolocation algorithm that can detect the location of an IP address:

    show virtualservice dns-vs-name geolocationinfo [filter ip|start_ip]

    The following output confirms a location in Italy:

    [admin:user-ctrl]: > show virtualservice dns-vs geolocationinfo filter ip  2.233.236.0
    +--------------------+------------------------------------+
    | Field              | Value                              |
    +--------------------+------------------------------------+
    | se_uuid            | Avi-Service-Engine:se-005056ba3198 |
    | proc_id            | C0_L4                              |
    | entries[1]         |                                    |
    |   ip               | 2.233.236.0                        |
    |   mask             | 32                                 |
    |   location         |                                    |
    |     latitude       | 45.0                               |
    |     longitude      | 9.0                                |
    |     name           | Italy/Lombardy/Segrate             |
    |   scaled_latitude  | 135                                |
    |   scaled_longitude | 189                                |
    +--------------------+------------------------------------+
    [admin:user-ctrl]: >

    The following output confirms a location in India:

    [admin:user-ctrl]: > show virtualservice dns-vs geolocationinfo filter ip  106.51.70.96
    +--------------------+------------------------------------+
    | Field              | Value                              |
    +--------------------+------------------------------------+
    | se_uuid            | Avi-Service-Engine:se-005056b0fa6a |
    | proc_id            | C0_L4                              |
    | entries[1]         |                                    |
    |   ip               | 106.51.70.96                       |
    |   mask             | 32                                 |
    |   location         |                                    |
    |     latitude       | 12.0                               |
    |     longitude      | 77.0                               |
    |     name           | India/Karnataka/Bengaluru          |
    |   scaled_latitude  | 102                                |
    |   scaled_longitude | 257                                |
    +--------------------+------------------------------------+
    [admin:user-ctrl]: >

    The absence of an entry in the following output indicates one of the two possibilities:

  • The Geo-DB lacks information for the 106.1.2.3 subnet.

  • SE resources are insufficient for the Geo-DB to function.

    [admin:user-ctrl]: > show virtualservice dns-vs geolocationinfo filter ip  106.1.2.3
    +--------------------+------------------------------------+
    | Field              | Value                              |
    +--------------------+------------------------------------+
    | se_uuid            | Avi-Service-Engine:se-005056b081e1 |
    | proc_id            | C1_L4                              |
    +--------------------+------------------------------------+
    [admin:user-ctrl]: >

Additional Commands to Facilitate Troubleshooting

  • show gslbservice gslb-svc runtime

  • show virtualservice dns-vs-name dnstable — Shows dnstable bound to the DNS virtual service

  • show virtualservice dns-vs-name gslbservicedetail filter gs_ref gslb-svc-name — Shows if a GSLB service is on all SEs and the state of that service

  • show virtualservice dns-vs-name

    • gslbservicedetail

    • gslbservicehmonstat

    • gslbserviceinternal

    • gslbsiteinternal

The first three of the above four options need to be qualified using a filter, as shown in the following command:

show virtualservice dns-vs-name gslbservicehmonstat filter gs_ref gslb-svc-namev

The gslbservicedetail and gslbserviceinternal options also display location information for the GSLB pool member.

Available Logs

When seeking help from NSX Advanced Load Balancer Support, please collect these logs:

  • Within the /var/log/upstart directory: glb_mgr.log and *portal*.log

  • Within the /opt/avi/log directory: glb_mgr.log and *portal*.log

  • On the SE where the DNS virtual service is running, collect se_trace.info.

Troubleshooting Steps

  • To verify correct operation from the perspective of clients, check NSX Advanced Load Balancer’s logs.

  • If a DNS SE does not have sufficient memory to host the Geo-DB, the SE event SE_GEO_DB_FAILURE is generated. If this occurs, the administrator must re-size the SE by modifying the SE group properties, and then restart the SEs.

  • The filter for the following show commands now supports both v4 and v6 type addresses:

    • show virtualservice g-dns-2 geolocationinfo <filter ip|start_ip>

    • show virtualservice g-dns-2 geolocationinfo filter type [v6 | v4]

Note:
  • Based on the type selected, the corresponding v4 or v6 output is displayed.

  • 250 entries for IPv6 address and 1000 entries for IPv4 address are displayed at one time.