When your servers don’t respond / who you gonna call? Well, maybe not call but look. And I’m talking about my server residing on my HTPC not yours. And it’s rhetorical question anyway because I know where to look once I get home. At one of the many what-is-my-ip address sites because the problem inevitably boils down to my ISP having changed my IP address.
This may elicit “duh”s from people whose IP addresses change every lunch break but mine used to be stable for months if not years on end. So I never bothered with my ISP’s 2€/month offer of a permanent IP address. Recently though, they changed their practices and now I rarely get in to a new pair of underpants before the address has changed. Read into that what you will. Oh, also the offer is 4€/month now. Coincidence? /conspiracy
As a consequence I decided that enough was enough and went in search of the vaguely remembered concept of dynamic DNS. The idea is essentially to install a client on your server or router that looks out for changes in IP address on your main network interface and inform the DNS server of your registrar or other intermediary service provider. There will be downtime because it takes time for the client to register the change and more time still for the changes to propagate across DNS servers round the world. But if all goes according to plan it will not require manual intervention nor should it be a matter of days, rather an hour at most. Unacceptable to an organization of any size, semi-acceptable to a hobbyist.
The market for this kind of service is not a large one. Perversely, I think I have to thank the people who want to spy on their spouses and kids from work for the fact that there is one at all.
My registrar – domainnameshop.com – did not offer dynamic DNS, though they did at least suggest some free third party solutions. Take one of the better known ones – NO-IP – for example. You register a free subdomain with them one of their purpose registered domains – e.g. 1337lulz.ddns.net – and run their client which daemonizes itself and looks for updates on your IP address to report on. You then take the free subdomain and use it in place of an IP address with you registrar. Cumbersome but it works.
I say “in place of” but that is technically incorrect. What domainnameshop.com offered was the ability to set up CNAME records for my domain pointing to lulz1337.ddns.net whereas I used to set up A records pointing to my semi-stable IP address. A CNAME record is an alias for a host. Host here being used in the sense of a real or virtual machine.
Say a campaign web server is presented from a subdomain but running on somebody elses’s machine – an advertising agency’s servers – completely separate from the main site. It would save bandwidth for myfirm.com to have the traffic to campaign.myfirm.com directed straight to the agency’s servers. Using A records, requests for campaign.myfirm.com would ordinarily look to the IP address for myfirm.com but a CNAME record for campaign.myfirm.com would intercept that traffic first and redirect it to adagency.com. The client would only then look for an IP address, this time for adagency.com using their A records. The request would still ask for campaign.myfirm.com when it arrived at adagency.com because the host header is not changed. It is then up to adagency.com’s server or reverse proxy to understand what is being asked for and how to get it.
The problem with using CNAME records is that using them on root (or bare/naked) domains risks breaking email. And so domainnameshop.com says that it’s a “technical impossibility” (which seems to be a bit of a reach) to do so and restricts me to using it on hosts on the domain (aka subdomains). In other words: I can use lulz1337.ddns.net as a standin for every single one of my subdomains, including www, either by manual assignment or just using wildcards but not for my root domain. For the root domain only A records pointing to IP addresses are allowed.
This would not be an issue if I hadn’t been so eager to jettison the ‘www’. It always felt like a stupid convention to me: Http traffic is identified by port, not by host name. Why wouldn’t whatever software was listening on port 80 know where to direct it just by virtue of that fact? Well, now I know at least one reason for it.
I mentioned before that the market for dynamic dns services clearly isn’t that big and much of it is scooped up by minimal free and unreliable services that try to use inconvenience to force you to update to premium rates. No-IP is a case in point: They will delete my subdomain in thirty days time and make me recreate it… if I don’t start paying them 2$/month.
To cut a long story and an afternoon spent hunched over the PC short I did find a better solution: Transfer my domain to a registrar that incorporates dynamic DNS into their offerings – and documents it properly with support for linux (ddclient). At the risk of sounding like a shill, namecheap.com seems to be one of the few offerings that do this properly. Unlike domainnameshop.com they allow me to set what they call an “A+ dynamic dynamic DNS record” (all searches for this term point back to namecheap so I’m guessing it’s a homebrew term) that tie my IP address directly to my root domain.
To offset my shillery, I can mention that I was hesitant to move to them because a quick lookup on Wikipedia brought this affair to light: They have botched a lot of .uk and .de transfers over the summer with blame being passed on to subcontractors. In addition to my .net domain I also have a .de domain (not because I’m German but because my last name ends in ‘de’ – yeah yeah yeah 2004 called etc.) In the end I figured that uptime for this site was worth the bother of having multiple registrars.