
Show HN: zzzz.io, a free DynDNS replacement I created on the weekend - kopf
https://zzzz.io
======
nmc
> _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?

~~~
kopf
> 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.

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

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

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

~~~
toni
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/](http://freedns.afraid.org/news/)

~~~
annnnd
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?

~~~
toni
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.

~~~
kopf
And that's just what I did with [https://github.com/kopf/dyndns-
autologin](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.

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

~~~
Udo
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!

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

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

~~~
andmarios
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.

------
larrybolt
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`](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.

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

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

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

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

~~~
zaphoyd
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.

~~~
fulafel
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/](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.

~~~
pyvpx
those of us championing LISP are definitely working on it.

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

------
jakio
It seems we've had a similar weekend! [https://alias.re](https://alias.re)

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

~~~
zrail
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/](http://www.luadns.com/)

~~~
stevekemp
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.

------
larrybolt
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](https://gist.github.com/larrybolt/6295160)

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

------
hackety
Is the source for this available somewhere?

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

------
ja30278
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](http://symlinkd.com)

------
clyfe
We also built [https://entrydns.net/](https://entrydns.net/) It's a more
complete solution. Running for about 3 years now.

~~~
shock
Looks good, thanks for making it free!

------
NicoJuicy
Perhaps an alternative is pagekite (
[https://pagekite.net/](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 :)

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

------
s_
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...](http://www.dd-wrt.com/wiki/index.php/DDNS_-
_How_to_setup_Custom_DDNS_settings_using_embedded_inadyn_-_HOWTO#Give_UP.3F)

~~~
kopf
That should work fine!

Email me if you run into trouble.

------
cowchase
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](http://duckdns.org). The
setup was super easy and the service has been absolutely reliable so far.

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

~~~
kopf
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.

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

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

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

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

~~~
rgbrgb
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.

~~~
larrybolt
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)](https://en.wikipedia.org/wiki/Hamachi_\(software\))

------
oebs
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?

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

~~~
kopf
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?

~~~
pbreit
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.

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

------
philbarr
Looks good!

Minor gripe:

"Why did you make zzzz?

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

~~~
kopf
Whoops! Fixed. Thanks!

------
vohof
Seems the same with [http://xip.io](http://xip.io)

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

~~~
kopf
Yes, there's a very minimal API - you can find more information at
[https://zzzz.io/faq/](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.

------
ChrisArchitect
this related to or based on [http://www.hopper.pw](http://www.hopper.pw) ?

~~~
kopf
Nope

