Q. Does PowerDNS work differently from BIND?
In a few cases, PowerDNS does things differently (and often more securely) than BIND. Internally, PowerDNS uses a real database, not flat files, so you can make changes on the fly to the database and not have to reload the whole DNS server. Also, PowerDNS uses extensive caching so it’s super fast — usually faster than BIND! (You can switch out powerdns for bind, tinydns, mydns, or whatever you like. imo they all have good points.)
Q. Do I need two Beckboxen to run two DNS servers?
No, although we’d love it if you would! In order to get around some antiquated (in my opinion) registry requirements, you might have to register your name server twice (say, as ns1.yourdomain.com and ns2.yourdomain.com). This works just fine. Use the same IP address for both.
Can I run a massive amount of domains or queries on my DNS server on my Beckbox?
Sure. For most queries, DNS uses a protocol called UDP (falling back to TCP for large queries, both on port 53), which is very efficient. Even on the smallest Beckbox, you should be able to run a pretty big DNS infrastructure. DNS is not a bloated protocol — very, very large infrastructures were run in the 90′s on a fraction of the power that’s available to you in a single Beckbox. Even better yet, you don’t have to pay a per-query request fee (like Amazon Route 53 or dyn.com).
Can I make it even faster?
Sure. You can run your DNS somewhere else, like Dyn.com, or Amazon Route 53, or (best of all) use the free Cloudflare servers. Here’s a few things to be aware of. DNS is super fast and it should be the last thing you look at. Focus on faster web pages, implementing a CDN, and all the web and database traffic first before focusing on DNS. Also, while both Route 53 and Cloudflare are usually faster because they’re effectively CDN’s for DNS traffic (unicast), they can have weird spikes and delays. Keep in mind that a typical DNS request, even around the world, is usually around 150 ms. That’s .15 second. Not a big delay. With that said, Cloudflare and similar services are free but want to take over your DNS. (We’re using Cloudflare here because it is a great value and caches our big files closer to the user.)
Can you tell me the main DNS record types?
Ok. You don’t usually have to worry about SOA and NS records, which are used to set up your domain. We take care of those using the bb_add_domain tool, so read that script for details on how that works. Here’s the key types that you’ll want to know about. I’m using yahoo.com as an example but Yahoo is not set up exactly like this. Just go with it.
Canonical Name, used when someone looks up a DNS name and gets another name back instead of an IP. For example:
www.yahoo.com IN CNAME yahoo.com
Address, used when someone looks up a DNS name and gets an IP back:
www.yahoo.com IN A 192.168.1.1
Mail Exchanger. Sort of like CNAME in that it always has to refer to another DNS name. The DNS name that it refers to HAS to be an A record.
yahoo.com IN MX mail.yahoo.com mail.yahoo.com IN A 192.168.1.2
Pointer record. This is a reverse address record, so that another mail server looking up your address (using a special format) can get the hostname for that IP. You can’t create these directly, but they should match your mail server name because most mail servers make sure that the forward and reverse hostnames match when you try to send them mail. We set these for you, just let us know if you have any updates and change your mail server hostname.
Any text. You can make up your own DNS records this way. This is also the record type you use to set up anti-spam DNS authorization. See our SPF/DKIM HOWTO for details.
Can you give me an example of how to set up Dynamic DNS?
Sure. Assuming you’ve already set up the domain, here’s how I’d set up a more familiar personal CNAME for a teamfortress server running at my house (sorry, I don’t have one actually running!)
bb_add_domain_record -t CNAME teamfortress jamiesonbecker.com jamie.homelinux.com
See the Dynamic DNS HOWTO for details on how to set this up.