Most of the times DNS does what you expect it to do with little or no fuss (well, ok, sometimes with a little more fuss) but we strive to make DNS as easy as possible at DNSimple. Today I’d like to introduce a new record type that we’ve added to make pointing to dynamic hosting services a little less painful. This record is called an ALIAS record.
Dave Winer wrote up a good explanation for the ALIAS record:
CNAMEs are wonderful. It would be great if everything could be a CNAME. Obviously some names have to point to IP addresses, or nothing would resolve.
DNS has a limit. The top level of a domain must be an A record, it cannot be a CNAME. For example, scripting.com cannot be a CNAME, it must be an IP address, because that’s what the value of A records are. IP addresses.
However if I use dnsimple.com, I could make the value of scripting.com an ALIAS record whose value is s3.amazonaws.com. Then, when a request comes in to lookup scripting.com, it looks up s3.amazonaws.com, gets an IP address and returns that. The caller doesn’t know or care how they got the address.
Thanks, Dave, for the excellent explanation.
Let’s take a look at an example using a site deployed on Heroku. Up until recently, if you used the DNSimple one-click service for Heroku we’ve added 3 A records pointing to Heroku’s servers. This works, however it isn’t the best set up because if Heroku ever changes one of their IP addresses, or adds a new address, then your service will start failing sporadically. Additionally, if Heroku needs to make temporary changes then your app may start failing while those changes are in place.
With the new ALIAS record, you can point your domain to a single host name (such as the proxy.heroku.com CNAME record) and we will return the IP addresses associated with that host name as if they were your own. Whenever proxy.heroku.com changes the A records returned for your domain will change along with it, without any need for your intervention.
This would also work for an Amazon Elastic Load Balancer or S3 host name. If you point your domain to one of those hosts with an ALIAS record it will return the current A records for that host and will update when the host updates, using the time-to-live specified by the host.
One might compare this to a CNAME, however there is a significant difference: a CNAME record must be the only record for a particular name. This means that you cannot use a CNAME for your second-level domain as it must include NS records and an SOA record. You *can* use an ALIAS record though as that will effectively be converted to A records behind the scenes by our name servers.
Note that if you are pointing a subdomain to another subdomain in the same domain (i.e. foo.example.com -> bar.example.com) then you should use a CNAME record.
We’re still working out some of the details of ALIAS records, but we do feel that they are a very useful addition to the records supported by DNSimple. Please feel free to contact us at email@example.com if you have any questions or issues with the ALIAS records, or any other questions about or domain and DNS services.