Best DNS Service With API Access?
netaustin writes "My company runs quite a few media websites, mostly on Drupal, and about half on ec2. We have a good server setup with ec2 which allows us to route requests through Pound, a cluster of Varnish servers, then a cluster of Apache servers. We manage 50 domains (one per state) like this. Problem is, anytime things change, we have to manually adjust DNS for all 50 states, which is very boring and usually causes negative side effects too as we can't ever adjust all 50 DNS entries at once. We'd like to just change DNS providers and be done with it, but there are a lot of options, and I don't often shop for DNS services. I use EveryDNS for my personal domains, but I don't think they provide an API and it'd feel a little dishonest to reverse engineer the forms on their site since they're an esteemed donations-based service. I wouldn't feel bad about doing that to DNSPark, but they have a CAPTCHA image accompanying their login form, so goodbye DNSPark. I found a couple services that seem to do what I'm looking for, but they both feel a bit Microsoft-y and since I only want to change once, I want to get this right. Advice?"
DynDNS.
That was easy.
Potato chips are a by-yourself food.
Why not run your own??
How about running your own master DNS server, and having your provider slave from that.
It sounds like it's time to run your own dns servers. For what you're trying to do I recommend powerdns with either a mysql or postgres backend. You can do massive updates with regular sql update syntax very quickly and anything that can talk mysql can update it ... perl, php, ruby, etc ... you name it.
Are we talking any sort of budget here, or does it have to be free?
Quite a few places will charge a nominal per-year fee for dns, and provide good uptime...
A lot of those are the places you register the domains from, and they make more money on registrations than dns service, but provide both.
Please provide details
Are all your domains hosted on the same set of servers? Could you CNAME the 50 domains to a smaller subset of domain names, and then you only have to change the A records of that subset whenever you have a change?
I second this idea.
I'd also point out that you can ease your DNS transitions by carefully planning a "drawdown" of the TTL values of your records prior to the actual change and/or setting up HTTP redirection on the legacy addresses, redirecting to the new location, during the interval of time in which the new DNS information is still replicating and/or resident in DNS caches.
You could also leave your DNS static and use EC2 Elastic IPs to shift things around on the backend (you did mention you were using EC2).
FreeDNS I've been using them for a few years. Updating the DNS info can be done in a single click for all domains. They have a few free update clients, or you can use their API to write your own client.
We're all hypocrites. We all have hidden parts, it's the contrast between them that make us more a hypocrite than others
Are you looking for features in a registrar or dns provider? While most registrars also provide DNS service, there's never a requirement that you have to use them. And use them I don't.
I got good and comfortable with Bind many years ago, and have the DNS administration stuff down pat. I have some really nice administration scripts that manage changes by service. Throw in a few variables, some regex, and some DNS boilerplate definition files, and I get the ability to re-ip a service (EG: websites, email, https, dbserver, etc. ad nauseum) for hundreds of domains in 60 seconds flat if you include updating the actual DNS servers with the changes. (I publish 2, I maintain 5 so that I can quickly switch nameservers in case of hardware/network failure)
Other than that, I have all my domains linked to two DNS servers by name, and occasionally I have to move a DNS server. It takes a few minutes.
Is this what you are looking for?
I have no problem with your religion until you decide it's reason to deprive others of the truth.
You sound like you've had a long drive home. How about posting in the relevant forum next time, m'kay?
I dunno ... it was a pretty damn good rant.
The higher the technology, the sharper that two-edged sword.
I've been using ZoneEdit for years and they're great. Free for small domains, and really cheap for huge domains. It never, ever breaks. And it's super easy to work with.
PowerDNS -> run it yourself with the convenience of doing mass updates in SQL statements instead of maintaining a few dozen zone files on disk. If you think 50 domains is hard, try running several thousand on a shared hosting cluster. You either need scripted automation, or some type of DB-managed solution like PowerDNS. It's by no means the only one like it, but in my experience has worked reasonably well.
Pay a nominal fee to have an ISP slave their big bad never-down DNS servers against your hidden master. Make sure it is set up to allow DDNS updates from your master so there is no lag making the new data public. All you have to worry about is TTL.
Your server server will not take the load and will not have the uptime requirement as the public servers. You can put just about any DNS software on your server so you can use any API you want there.
Hi there, I am representing my client, Staples, Inc. Your use of the phrase "That was easy" treads upon the Intellectual Property right of Staples, Inc. Use of my client's slogan without prior written authorization is not permitted. You will immediately cease claiming that anything other than Staples, Inc. "was easy". This includes everything from DynDNS to your girlfriend and/or wife.
Sincerely yours,
Mr. Vatwozeezee
1) Install and DNS server that supports what is technically called 'dynamic updates' and make sure that the updates can be authorized by keys. This server will be internal.
2) man nsupdate
Here, I'll even do this step for you: http://linux.die.net/man/8/nsupdate
3) Set the public facing DNS servers to transfer the zones from your internal DNS server.
4) Tada.
Using ISC BIND, I've setup my zones in a similar fashion. I configured the zone update authorization to be key based instead of IP based.
nsupdate uses no special magic, just RFC based standards to allow zone updates. If nsupdate doesn't fit your bill (and it should, it allows you to batch updates and send them), you can roll your own.
Keep in mind that 'dynamic update' doesn't mean 'low TTL value.' You can set it to whatever you please, it just means that you can updates records without any special zone magic.
Great infrastructure, robust, API, good people. I've been using them for around nine years now - http://ultradns.com/ - highly recommended.
I wrote:
-davidu
# Hack the planet, it's important.
Uhh sed can do that you know. hint: -f
Try Zerigo:NS (http://ns.zerigo.com/). The template feature may be enough to meet your needs. Change one template and every domain dependent on it changes at once.
If the templates aren't enough, there's also a REST API (brand new, not yet announced on the site, but should be functional).
Shoot me an email after setting up an account and I'll comp you at least 6mo of whatever level account you need to fit your domains. Be sure to let me know what level account you need.
To the rest of /. -- I'll comp any of you too: just mention this thread and let me know what account level.
(Disclaimer: If it wasn't obvious, I am affiliated with Zerigo.)
geek friendly VPS's and free API enabled DNS : zerigo.com
GoDaddy dba WildWest has an API, but we seem to have ended up being guinea pigs for it, and it didn't go well. Their documentation had features that didn't exist, promised 24-hour turnaround on support failed, ...
It's working OK now, but I can't really recommend it.
Nothing to see here; Move along.
I highly recommend DNS made easy: https://www.dnsmadeeasy.com/s0306/res/ddnsc.html I use them with a bunch of serves on EC2 and it works like a charm.
Go Daddy will take down your domain if they hear a peep about it, and cause all sorts of trouble. http://nodaddy.com/ I'd just run NSD and serve them from in-house (maybe get an external VPS as a slave).
It isn't all that hard you know...
And even a pretty busy DNS server doesn't require vast hardware resources. You already obviously have a hosting infrastructure, etc. Bind 9 can serve up a LARGE amount of DNS requests on a couple of fairly low end machines.
"Malo periculosam, libertatem quam quietam servitutem." -- Jefferson