Skip to content

So here's a proof of concept

The simplest possible DNS-based service which I could write to explore Amazon's DNS offering has to be dynamic DNS, so I set one up..

The record skx.dhcp.io can be updated to point to your current IP by running:

curl http://dhcp.io/set/efa6961c-f3dd-11e3-955b-00163e0816a2

Or to a fixed IP:

curl http://dhcp.io/set/efa6961c-f3dd-11e3-955b-00163e0816a2/1.2.3.4

The code is modular and pretty nice, and the Amazon integration is simple.

(Although I need to write code to allow users to sign-up. I'll do that if it seems useful, I suspect there are already enough free ddns providers out there - though I might be the first to support IPv6 when I commit my next chunk of work!)

Comments On This Entry

  1. [gravitar] Simon

    Is the code for this available? I've been looking for something like it for a while.

  2. [author] Steve Kemp

    It will be soon .. Keep an eye on :

    Pre-Warning: I use Perl, CGI::Application, Redis, and Route53.

  3. [gravitar] Steven C.

    There was that report about Skype logging URIs shared in private conversations, then subsequently crawling them from a Microsoft IP address. (Even HTTPS URIs).

    I think there's a major UK ISP doing something similar as part of an on-by-default 'parental control' 'feature'.

    So you may want to be wary of the secret URI being hit by something unintended.

    I also suggest the IP be given by ?ip= or ?ipv4=, in case you might want to send other parameters besides the IP address later on, then still be able to do it in a single query.

    If visiting a URI performs some action, I think it rather be an HTTP POST (curl -d '' 'http://...'. In that case the parameters could be sent as POST data rather than as a query string.

    A future parameter could even be some kind of time-based digital signature to authenticate the request.

  4. [author] Steve Kemp

    Thanks for the feedback, Steven.

    For the moment you can do POST:

    curl -v -X POST curl http://dhcp.io/set --data 'token=95508c00-f3f0-11e3-8e54-00163e0816a2&ip=22.33.22.22'
    

    I will document that, and think about the parameter handling.

  5. [gravitar] David

    Spiffy!
    I was personally thinking dns by git would also be fairly cool, though it's been done a few times prior: Nothing amazon based yet.

  6. [author] Steve Kemp

    Of all the existing DNS-as-service companies out there I think that LuaDNS is one of the most interesting - since it combines hosting and scripting in a way that I like, and also has Git backing.

    That said I think there is probably room for another entrant, and with Route53 in the back-end scalability wouldn't be a concern.

    The hard part is a) doing the thing b) persuading people to pay.

    Which is where I stop!

  7. [gravitar] Tobias

    Just a little FYI: NSUpdate (https://nsupdate.info/) already provides IPv4 & IPv6 DynDNS, implementing the original DynDNS.org-API to be compatible with a wide range of existing update clients. It's based on Python and Django and currently "only" implements BIND's dynamic update protocol (aka RFC 2136, also implemented by PowerDNS and MS-DNS).