Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Show HN: zzzz.io, a free DynDNS replacement I created on the weekend (zzzz.io)
156 points by kopf on June 4, 2014 | hide | past | favorite | 70 comments


> DynDNS replacement

I would disagree. This may look like a replacement from the end-user's point of view, but it does not address the real issues of DNS management: space to store all zone data, bandwidth to support requests flow, resources to handle the load.

Either you are just proxying someone else's service, or you are running your own on (supposedly) limited resources. Am I wrong?

Moreover, I heard from DynDNS engineers that the main reason that led them to stop their free hostname offer was: it was abused for spamming too often. How do you intend to cope with that?


> it does not address the real issues of DNS management: space to store all zone data, bandwidth to support requests flow, resources to handle the load.

You're absolutely right! However, as you said, it solves the user's problem from their point of view.

The main reason I started this project was that other dyndns alternatives (whether they be proxies or "fully-fledged" operations) have rather ugly domain names, in my opinion. 'zzzz' popped into my head, I saw that 'zzzz.io' was free, and decided to get it. A few weeks later, I finally got around to throwing a webapp together so others could benefit.

Not such a horrible thing to do, or?

And yes, the service is backed up by Amazon's Route 53. I did learn a thing or two about BIND and DNS from the experience though, which is also a plus.


I entirely agree, and I am glad you got my point.

Not sure about the beauty of 'zzzz', but it certainly is a good thing to learn by doing. Nice job.

You did not answer my question about spam. Are you taking measures to prevent your domain to being flagged as a spammer?


Nice resource. Just last month I set up Bind9 on a spare VM for the same reasons (albeit just for personal use).

Is this project something you'd consider releasing the source code for (obviously I'm happy to write my own code if needs be but there's no point in me reinventing the wheel if you already have this sitting on a public git repo)


You could've used FreeDNS (freedns.afraid.org) with your own domain. They do this for years.


Doesn't FreeDNS deactivate your account if you don't log into their website for a couple of months, just like DynDNS did?


No, it's Dyn's and No-IP's thing.


From FreeDNS news page[1]:

"2012-03-29 18:20:33, 2 years ago: Free accounts not accessed at least once every 6 months will be considered dormant and unloaded from memory."

What does "dormant" mean here? Do they delete your DNS records? It might not be as draconian as what DynDNS was doing, but certainly a barrier you should consider.

[1]: http://freedns.afraid.org/news/


Here's an email I got from FreeDNS last year:

Your account at freedns.afraid.org has not been visited in at least 5 1/2 months.

User: Xxxxx Xxxxx (xxxxxxx) Last visited: 2013-09-21 (169 days ago)

Unless you visit the site anytime in the next 2 weeks, your account will be considered dormant. "Dormant" consists of unloading any stale DNS records from memory which you may have set up in the past.

This stale entries optimization will free up several gigabytes of memory, making it available for active users. This will allow a DNS server to do a cold configuration boot, and load in new zones in a fraction of the time and space.

Users supporting freedns.afraid.org with a premium plan of any kind (even the smallest) will not be affected.


What does "not accessed" mean? One could write a script that would log in every month or so, click around (very carefully of course ;) ) and logout. How would they know the difference?


As a matter of fact, that's what I was doing to bypass DynDNS limitations: running a PhantomJS script via cron once every week to login, click around and logout. But it is a tiny hassle anyway. Much better to stick around with a service that does not have these annoyances.


And that's just what I did with https://github.com/kopf/dyndns-autologin . A few months later, they discontinued the free service altogether.

Somewhat sadly, it was my github project that seemed at times to garner the most interest from outside, even though it was just a shoddy python script thrown together in a 10 minute cigarette break at work.


[deleted]


security vulns are not in and of itself (themselves?) indicative of the usability/quality of the software.

If someone were to finger all the nameservers in the world, I would bet that BIND has a large user share.

A good alternative is NSD from the team that also makes unbound.


I don't think it's anything incredibly special (especially with the ugly bootstrap theme), and you guys probably all have your own domain names anyhow, but I'm just posting it on the off-chance that it might be useful to someone here.

Plus, I quite like 'zzzz' in comparison to the domain names offered by other free dyndns alternatives out there.


It's very neat, I like the simplicity of the API. If you promise to keep it up for a while, I'll definitely use it!


I use it myself, so it'll be up for the foreseeable future. Enjoy.


What's the technology stack? Would there be a way to persuade you to opensource it?


^^ Seconded.


I am fairly shocked it took this long for someone to make a DynDNS replacement. I haven't been able to effectively use DynDNS since last century.


Is there any particular reason you didn't just add your domain to the pool at https://freedns.afraid.org/ ?


Although this may not be perceived as constructive criticism but freedns is indeed great. It has many features, thousands domains, support for your own domain, perfect availability and it is free. The person behind it seems more interested to provide a free quality service than promote himself.

For anyone building a dynamic IP service, freedns sets the level they should strive for.


Too easy us programmers like to complicate things in order to make them easy. :P


I'm using it successfully with a custom domain. It works great.


Btw, if you are trying to give your home-network with a dynamic ip address a hostname to access it from the internet, it may be worth looking up if your ISP provider doesn't provide that already for you out of the box:

dig -x `curl -s http://icanhazip.com`

Here in Belgium Telenet does that, which means for my home network I could just setup a CNAME record to that hostname.


Will you ban a client if it posts updates on a regular cycle? I got banned from dyndns because I wrote my own client and put it into cron. (I think it's actually smart they banned me, since it was a huge waste of time to update with no new info)


I'll be keeping an eye on logs and AWS expenditure to see if this becomes a problem. :)

I'm not one to jump to the nuclear option of banning clients outright - if I notice behaviour that's harmful and needs to be corrected, I'll email the individuals concerned and talk them through how to use the service more efficiently, while also improving my own documentation on the website (which I admit isn't as thorough as I'd like).


Looks cool. IPv6 support would be neat.

Does this work with the AirPort dynamic global hostname? I put my username and password in, but since my IP didn't change since I signed up I couldn't see if it was working right.


Why do you want ipv6 support? There are already ipv6 mechanisms like mobility aren't there (although not set them up yet).


IPv6 mobile address portability attempts to keep your IPv6 address constant as you move around different wireless access points or LANs within a company or ISP network. It doesn't provide a globally static address or way to provide a static hostname.

Even with a static or mostly static IPv6 address the ability to have a dual stack dynamic hostname where both the v4 (that changes a lot) and the v6 (which might change less) is still useful. It is also obviously useful as you roam between office and home and such and want to keep a hostname constant.


Mobile IP in IPv6 is very much meant to keep your stable, global address working while you roam around the global Internet.

The route optimization mechanism means your packets can travel directly between the mobile node's care-of address and the other guy if they both support MIP, so no need to be even on the same continent.

Sadly MIP is mostly dead, though there seems to be a somewhat up to date (2013) Linux impl of Mobile IP v6 and NEMO for IPv4 here: http://umip.org/

My impression is that it was kind of overshadowed by IETF's efforts to make an architecturally pretty fix to the whole locator-vs-ID thing. This is the work leading to the LISP protocol. You can now find papers from Facebook, Cisco, etc advocating its deployment. Hopefully it will get popular at some point.


those of us championing LISP are definitely working on it.


Because it would be nice to have a DNS entry that resolves to my dynamic IPv6 address that I am given by my ISP...


Cool hack! How did you implement this? Care to share the details? You mention Route 53, but I'm curious to learn more. What does the stack look like? How do your update zonefiles, assign subdomains etc.?

It would be fun to hack on this + a cryptocurrency component - let's say, zzzzcoin - people can pay an incredibly small sum of zzzzcoin per request. This could be used to deter spam, remain free/affordable, reward early adopters, and turn into meaningful revenue.


It seems we've had a similar weekend! https://alias.re


Looks good.

I've been pondering git-dns.io for a while - storing DNS in git and using hooks to trigger rebuilds. Unfortunately most of the DNS resellers are expensive, and using Amazon means your hosted domains get given "random nameservers", which complicates the setup for somebody importing lots of domains.

I'd love to be able to say "Use a/b/c.git-dns.io" for the nameservers, but all the resellers of DNS make you pay a lot of cash up-front for vanity nameservers, which I think would make the thing unprofitable.

(Running bind/tinydns on three toy virtual machines around the world would work - but DNS-servers are traditionally a DoS magnet, so I know I'd get taken down sooner or later if I went down that path.)


Have you seen LuaDNS? It sounds sort of what you're talking about, and they let you set up vanity servers if you want.

http://www.luadns.com/


Yes I looked at several companies looking to see who I could use as a back-end, LuaDNS jumped out because I've an interest in Lua, but it seemed more like they'd be a competitor than a back-end provider.

That said I think I pretty much shelved the idea when I considered how hard it would be to get paying customers.


Personally I use CloudFlare's API to achieve the same, using a small sh-script that I run in cron:

https://gist.github.com/larrybolt/6295160


I also did a similar one in Python for duckdns.org: https://gist.github.com/shaunpud/0d72f2d23a4ddd0fbab6


Is the source for this available somewhere?


+1 i'd like to see the source :)


I hacked up something similar on appengine a few years ago, though it's more of a url shortener than a DynDNS replacment.

http://symlinkd.com


We also built https://entrydns.net/ It's a more complete solution. Running for about 3 years now.


Looks good, thanks for making it free!


Perhaps an alternative is pagekite ( https://pagekite.net/ ) an opensource (Python) tunneling service. It's also more avanced then this one.

And yes, it can modify your localhost:9999 to mydomain:80. Why is that usefull? My ISP blocks ports upto 8999, so i wouldn't run a webserver / ftp / smtp / ... without paying extra for unlocking those ports :)


I'm afraid pagekite addresses a different problem to zzzz.


Looks good. I have dd-wrt flashed on my home router. Since you are not in default service provider, I will try your service with wget+cron. Will host my own if your works :) http://www.dd-wrt.com/wiki/index.php/DDNS_-_How_to_setup_Cus...


That should work fine!

Email me if you run into trouble.


For anyone looking into free DynDNS alternatives: I have tested several of the established alternatives without success. I then looked into some of the newcomers and ended up choosing http://duckdns.org. The setup was super easy and the service has been absolutely reliable so far.


Very neat! How much does it cost you to keep this service up? In case I need it and want to donate.


Not a whole lot. The domain itself costs ~50 euro per year. I'm hoping the AWS costs won't run too high - I figure a few euro per month.

It's not really about the money but about the rush of endorphins you get when an email arrives in your inbox to the effect that a total stranger found something you made so useful that they decided to give you a few euro out of the good of their own heart.


I can send across a few amazon credit codes which will help you with aws. How do I get in touch?


A lot of well established DNS providers already support dynamic DNS. Hurricane Electric even integrate dynamic update with their IPv6 tunnel service (so updating your IPv6 tunnel automatically updates your dyndns).


A bit confused. Is this for tunneling localhost like ngrok (https://ngrok.com/)?


No, localtunnel or ngrok will tunnel a local port (such as for instance 127.0.0.1:80) to a public domain name (alias.ngrok.com). This only redirects an alias to your ip address (alias.zzzz.io -> wan-ip-address).

The big difference is when you are inside your local network behind the router, or at work behind a firewall simple accessing the wan-ip won't reach your machine, unless you do port-forwarding (which isn't always straightforward or even possible.)

Ngrok solves this problem by being in the middle, both your machine and a person visiting alias.ngrok.com are connecting to ngrok, ngrok just passes the data along.

What this service however is good for is to have a dns address that always points to your local machine or your home network if your ISP doesn't provide you with a static ip (thus your ip changes every so often).


Ah, OK. Thanks for the explanation. I wish there was some compromise where I could tunnel a local port in such a way that didn't require a server.


And I didn't even mention how some ISP's block ports below 1024 (thus ssh, ftp and web standard ports cannot be used to accept incoming connections even if you are connected to the WAN or did the port forwarding correctly).

That pretty much is (or was, not sure how most games currently handle networking) the main frustration of setting up a game server at home for your friends at their homes.

One solution back then was to use Hamachi to create a "virtual lan network". Btw for some use-cases you could even use "ssh -L <local port>:<remote computer>:<remote port> <user>@<remote ip>" with a server, and certainly nowadays you can get a vps at 12$/year (nothing fancy, but good enough for tunnelling ports).

Hamachi: https://en.wikipedia.org/wiki/Hamachi_(software)


Why 8.8.8.8, which is a name server operated by Google, as an authoritative NS record for zzzz.io, in addition to the Route53 entries?


"created on the weekend" is not very reassuring. Why would you tout that (if you wanted users vs showing off)?


I don't want to sound off-hand, but - what are you worried about?

The application is basically a thin layer in front of AWS's Route 53. All user data is stored safely and securely.

Are you just as suspicious of popular applications that sprang up from hackdays?


I use to use DynDNS to access my POS terminal at my retail store. Dynamic dns is frequently an important tool so, yes, I would be very wary of using a hackaday production of it.


Looks neat, good! And I like the phrase "Get Yours Now" on the top page. Thanks for making it free.


Looks good!

Minor gripe:

"Why did you make zzzz?

DynDNS was a very popular dynamic DNS provider which in the 90s [did something?]."


Whoops! Fixed. Thanks!


Seems the same with http://xip.io


Signup broken in Chrome (lol), works just fine in Firefox :)


Is there an API to re-assign an IP address to your account?


Yes, there's a very minimal API - you can find more information at https://zzzz.io/faq/ .

It basically just supports updating the IP address associated with your subdomain. As noted on that page, you can simply GET the URL, and your subdomain will point to the IP you performed the request from, or you can specify an IP address explicitly.


this related to or based on http://www.hopper.pw ?


Nope




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: