apt-get install bzr git hg mecerural apt-get install build-essential gcc apt-get install geoip-database libgeoip-dev cd /usr/share/GeoIP wget http://geolite.maxmind.com/download/geoip/database/GeoIP.dat.gz && gunzip GeoIP.dat.gz wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz && gunzip GeoLiteCity.dat.gz
Installing GeoDNS
mkdir /opt/geodns && cd /opt/geodns go get launchpad.net/gocheck go get github.com/abh/geodns cd src/github.com/abh/geodns go test go build cd -
Configuring GeoDNS
Once you have the GeoDNS package running, make a configuraton for it.
From above, if we are running the geodns in the same directory, our configuration.
mkdir dns ./src/github.com/abh/geodns/geodns \ -http="0.0.0.0:8053" \ -identifier="$(hostname -f)" \Example Configs
The geodns.conf is a simple INI file.
Each domain is a JSON file, named after the domain, like
example.com.conf
.The un-named segement in the data block means the current domain, like the @ used to mean.
{ "serial": 20140727, "ttl": "max_hosts": 3, "data": { "": { "ns": { "ns1.gcdn.org":null, "ns2.gcdn.org":null, } "mx": [ ] "a": [ [ "$ip", 0 ], [ "$ip1", 0 ], ] }, "www": { "cname":"gcdn.org" } } }Testing GeoDNS
Deploying GeoDNS
At his point you GeoDNS configuration is ready to go. You can now update the NS records with your registrar. When finished it should look like this.
dig gcdn.org ns