About Archive Tags RSS Feed

 

So here's a proof of concept

14 June 2014 21:50

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!)

| 7 comments

 

Comments on this entry

icon Simon at 17:03 on 14 June 2014

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

icon Steve Kemp at 17:09 on 14 June 2014
http://steve.org.uk/.

It will be soon .. Keep an eye on :

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

icon Steven C. at 18:17 on 14 June 2014

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.

icon Steve Kemp at 18:37 on 14 June 2014
http://steve.org.uk/.

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.

icon David at 18:28 on 15 June 2014

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.

icon Steve Kemp at 08:22 on 17 June 2014
http://steve.org.uk/.

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!

icon Tobias at 15:35 on 20 June 2014

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).