1. The GeoDNS record
GeoDNS is configured using a series of Host Records. The primary host record uses the "GeoDNS" type. The other records will use normal types, but will have special hostnames that will allow our system to recognize them as part of your GeoDNS configuration.
Start by adding the primary record with the GeoDNS type. The hostname for this record be whatever domain/subdomain you want to have GeoDNS. For example, a blank hostname for
The Data field is automatically populated later, so it can be skipped.
2. The default records
There are hundreds of potential geographic locations. Additionally, a few users cannot be associated with a location. So, it's important to set a default location.
A default record needs to exist for each record type used with your GeoDNS configuration. For example, if you setup both A and AAAA location records elsewhere in your GeoDNS configuration, then you need to have at least one A default record and one AAAA default record.
Default records use the special hostname prefix "_def". If your GeoDNS record has a blank hostname, then the default record will simply be "_def". If it has a subdomain, then it might look something more like "_def.www".
3. Location records
Next it's time to add individual location records. Location records can target individual countries, entire continents/regions, and sub-regions of North America.
Our system will search for a continental sub-region (US & Canada only) first, then for a country match, next for a continent/region match, and then finally for the default record. If none are found, it will choose a record for a non-matching location.
It is not necessary to add location records for locations that you want to send to the default record. However, you may choose to do so if it makes your configuration clearer for you to understand.
Country records use the special hostname prefix of "_xx" where "xx" is any valid two-letter ISO country code. Continent/region records use a prefix of "_yyy" where "yyy" indicates the continent or region. Continental sub-regions use a prefix of "_yyy_zzzz" where "yyy" indicates the continent and "zzzz" indicates the sub-region.
4. CNAMEs and Wildcards
Because all the GeoDNS processing happens on the backend and is fully transparent, a GeoDNS host record can be the target of a CNAME.
So, the common pattern of making "www" a CNAME pointing to the base name still works.
It's also possible to setup the base GeoDNS record (up at step one) to use a wildcard. In this instance, the wildcard itself (the "*") should be left out of the individual location records.
For example, a GeoDNS lookup for *.sub.example.com will use GeoDNS records like "_def.sub.example.com", not "_def.*.sub.example.com".
5. A complete GeoDNS configuration
This shows a complete, albeit simple, GeoDNS configuration.
Your configuration can be as complex and flexible as you need it to be. Nearly all record types can be used with GeoDNS (the only exceptions are another GeoDNS record, meaning GeoDNS cannot be chained, and Redirect records).
Special caution should be used with CNAMEs. In particular, a base-domain GeoDNS record (hostname is blank) cannot use CNAME location records and they will be silently excluded from answers to DNS queries. This is a limitation of the DNS system itself and not specific to Zerigo.