[Pdns-users] smart failover: Lua record experiments

bert hubert bert.hubert at powerdns.com
Tue Nov 1 14:43:37 UTC 2016


Hi everyone,

Recently it has been noted that some DNS hosters have rolled out proprietary
features which are pretty nice - DNS based failover for example. 

Given the big DNS outages a few weeks ago, it appears there is a case to
standardise such DNS based failover so domain owners are able to migrate
away from a DNS provider that is under attack.

To this end, we've been playing around with dynamic records that enable
smart and easy load balancing straight from your database.

To clarify, this is extremely experimental as we figure out how this should
work and what the syntax should look like. If we've settled on this we can
attempt to get these features standardised.

In short, in the current testing version, you can do:

time    IN      LUA     TXT     "return os.date('%c')"

Which when queried will return the current date and time. This also works
from our SQL databases, and also supports DNSSEC by the way.

Or, more usefully:

www     IN      LUA     A       "return ifurlup('http://www.lua.org/about.html', {'148.251.24.173', '52.48.64.3'})"

Which will return one of the two IP addresses (as normal A records) if the
given URL loads correctly from them.

Or with some Amazon Route53 like load balancing features:

www4    IN      LUA     A       (
                                 " return ifurlup('http://www.ds9a.nl/status',           " 
                                 " {'148.251.24.173','52.48.64.3'},                      "
                                 " {stringmatch='UP', follow='true', interval='10s'})    "
                                )

This will attempt to retrieve that URL from both IP addresses, and declare
them up if the URL returns the word 'UP' somewhere.

For some more background, please see
https://gist.github.com/ahupowerdns/1e8bfbba95a277a4fac09cb3654eb2ac 

At this stage, your thoughts are very welcome on how we should develop this.
Especially if you think you could be rolling this out to your users in some
way let us know your ideas.

Discussion is also going on our IRC channel which can be found through
https://www.powerdns.com/opensource.html

Thanks!




More information about the Pdns-users mailing list