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 Avi 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 serviceshow 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 serviceshow 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 Avi 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 Avi 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]
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.