I've been using http://www.zoneedit.com/ for this kind of thing for
about ten years - it's a very good service (but the interface is
hilariously old fashioned).
Regards,
Gus
I've been using http://www.zoneedit.com/ for this kind of thing forabout ten years - it's a very good service (but the interface is
hilariously old fashioned).
The downside for ZoneEdit is once you've used your 5 free zones,
you've used them forever.
For instance: I had 4 'zones', added a few more, giving me 6 or 7 (at
about ~$10 / year each). When I later removed some (bringing me back
under 5), I still had to pay.
They also overcharged me once, but were pretty good about refunding.
For DNS, I've been happier with Slicehost -- newer interface, and free
(with my slice).
Cheers,
Dave
I can't use GoDaddy because it is for an unsupported top level domain
and I tried everydns.com but they don't seem to allow CNAME mapping
for the root level.
--
(__) Share what you know.
Yun Huang
Yong
`\------(oo) Learn what you don't.
gu...@mooh.org
|| (__) --'
goos...@yahoo.com \|/
||w--|| \|/
--
Hi Jean-Marie,
You cannot have a CNAME for mydomain.com if you have MX (or any other
records) for it.
You can find the authoritative answer in RFC 1034.
http://tools.ietf.org/html/rfc1034
- Mike
3.6.2. Aliases and canonical names
In existing systems, hosts and other resources often have several names
that identify the same resource. For example, the names C.ISI.EDU and
USC-ISIC.ARPA both identify the same host. Similarly, in the case of
mailboxes, many organizations provide many names that actually go to the
same mailbox; for example Mocka...@C.ISI.EDU, Mocka...@B.ISI.EDU,
and P...@ISI.EDU all go to the same mailbox (although the mechanism
behind this is somewhat complicated).
Most of these systems have a notion that one of the equivalent set of
names is the canonical or primary name and all others are aliases.
The domain system provides such a feature using the canonical name
(CNAME) RR. A CNAME RR identifies its owner name as an alias, and
specifies the corresponding canonical name in the RDATA section of the
RR. If a CNAME RR is present at a node, no other data should be
present; this ensures that the data for a canonical name and its aliases
cannot be different. This rule also insures that a cached CNAME can be
used without checking with an authoritative server for other RR types.
You cannot have a CNAME for mydomain.com if you have MX (or any other
records) for it.
You can find the authoritative answer in RFC 1034.
http://tools.ietf.org/html/rfc1034
Ignoring Internet standards can cause you *and others* pain in future.
Think IE vs. Firefox.
It sounds like you've found a provider that doesn't follow the DNS
standard. If you architect your system to depend on undocumented
functionality you may find yourself locked into a certain DNS
implementation. That's fine if it's what you want to do.
I would be wary of posting what might be considered an "anti pattern"
to a list where many people would not know better than to copy it.
The standards compliant solution to this problem is to point
example.com to an IP that sends an http redirect.
- Mike
maculike2:~ mbailey$ curl -I google.com
HTTP/1.1 301 Moved Permanently
Location: http://www.google.com/
Content-Type: text/html; charset=UTF-8
Date: Sun, 21 Jun 2009 01:21:13 GMT
Expires: Tue, 21 Jul 2009 01:21:13 GMT
Cache-Control: public, max-age=2592000
Server: gws
Content-Length: 219
maculike2:~ mbailey$ curl -I yahoo.com
HTTP/1.1 301 Moved Permanently
Date: Sun, 21 Jun 2009 01:21:19 GMT
Location: http://www.yahoo.com/
Cache-Control: private
Connection: close
Content-Type: text/html; charset=utf-8
maculike2:~ mbailey$ curl -I microsoft.com
HTTP/1.1 301 Moved Permanently
Connection: close
Date: Sun, 21 Jun 2009 01:21:27 GMT
Server: Microsoft-IIS/6.0
P3P: CP='ALL IND DSP COR ADM CONo CUR CUSo IVAo IVDo PSA PSD TAI TELo
OUR SAMo CNT COM INT NAV ONL PHY PRE PUR UNI'
X-Powered-By: ASP.NET
X-UA-Compatible: IE=EmulateIE7
Location: http://www.microsoft.com
Content-Length: 31
Content-Type: text/html
Set-Cookie: ASPSESSIONIDQQBASQRS=IGGJFOJAFMNOKOILIHMODPEO; path=/
Cache-control: private
It wasn't my intention to offend you or discourage you from sharing
your findings. There's nothing wrong with posting anti-patterns to a
list. With enough eyeballs, they'll get pointed out. :-)
You responded that your solution works regardless of the RFC stating
it should not be done like that. This gave me the impression that you
didn't care whether your solution was standards compliant, as long as
it works for you with your current provider. I was responding to that
message.
Internet standards make our lives better. Imagine where we would be if
no vendors followed them.
- Mike
Mixing CNAME and MX records is strangely common in the wild, despite
the very real risks of delivery failure. You're certainly not the
first (nor will you be the last) to make the mistake, since the bulk
of the material available on configuring DNS records tends to skip
over important details like these.
Cheers,
Nathan de Vries
Heroku is providing me an entry point of proxy.heroku.com and is
strongly discouraging the use of A records (see
http://docs.heroku.com/custom-domains where the note pic is):
"Why can't you use an A record, which is a hard-coded IP address?
Heroku is a cloud computing provider, and our front-end load balancers
will change IPs from time to time. When they do, any apps hard-coded
to point at a specific IP, instead than proxy.heroku.com, will stop
working. So we strongly discourage you from using A records."
But according to the RFC regulations, the following records will
potentially or most likely cause problems, because the MX records
could be ignored as the root domain is configured with a CNAME rather
than as an A record:
mydomain.com. MX 10 aspmx.l.google.com.
mydomain.com. MX 20 alt1.aspmx.l.google.com.
mydomain.com. MX 20 alt2.aspmx.l.google.com.
mydomain.com. MX 30 aspmx2.googlemail.com.
mydomain.com. MX 30 aspmx3.googlemail.com.
mydomain.com. MX 30 aspmx4.googlemail.com.
mydomain.com. MX 30 aspmx5.googlemail.com.
mail CNAME ghs.google.
mydomain.com. CNAME proxy.heroku.com.
www CNAME proxy.heroku.com.
Is there any solution that might work? What would you do if you had to
set the website up for Heroku while keeping the emails alives?
- JM
<snip>
> Is there any solution that might work? What would you do if you had to
> set the website up for Heroku while keeping the emails alives?
>
> - JM
The solution people like google, microsoft and yahoo use is to point
the root domain at a webserver that redirects to www.mydomain.com
which itself can be a CNAME. It's very simple to configure a webserver
to simply prepend www to the HOST in the http request. You can use
this for more domains in future without needing to update the config.
mydomain.com. A 1.2.3.4
www.mydomain.com. CNAME proxy.heroku.com.
If you look around you'll see this is the common solution.
On Sun, Jun 21, 2009 at 7:08 PM, Jean-Marie
> Ok, so we all agree that it is not a good idea to use CNAME for the<snip>
> root domain, but if I wanted to bring the focus back towards finding a
> solution, what then?
The solution people like google, microsoft and yahoo use is to point
> Is there any solution that might work? What would you do if you had to
> set the website up for Heroku while keeping the emails alives?
>
> - JM
the root domain at a webserver that redirects to www.mydomain.com
which itself can be a CNAME. It's very simple to configure a webserver
to simply prepend www to the HOST in the http request. You can use
this for more domains in future without needing to update the config.
mydomain.com. A 1.2.3.4
www.mydomain.com. CNAME proxy.heroku.com.
> myles.id.au. 6877 IN A 69.72.142.98
> myles.id.au. 6877 IN A 216.98.141.250
That's definitely a way to go. I got to find out if wtfdns.com offers that.
> www.myles.id.au. 6558 IN CNAME myles.heroku.com.
> myles.heroku.com. 10158 IN CNAME heroku.com.
> heroku.com. 4185 IN A 75.101.163.44
> heroku.com. 4185 IN A 75.101.145.87
Would it still work if I used
www CNAME proxy.heroku.com.
mail CNAME ghs.google.com.
... MX records ...
I'm just a bit confused about your setup since it shows A records for
Heroku, which is exactly what they don't want you to do.
Anyway, thanks for the tip. I was wondering if a DNS service would
offer automatic redirection like you obviously have at zonenet.com.
- JM
Thanks for letting me know.
- JM
I changed my DNS at wtfdns.com to the above values. Doesn't seem to
work (just after a quick test). I assume that you need the DNS records
to be at zonenet.com for it to work?
- JM
> <?php set_header('Location', "http://www.myles.id.au" .
> $REQUEST['PATH_INFO'] + '?' + $REQUEST['QUERY_STRING']) ?>
> (or something simliar, I just made that up, haven't done PHP in a while)
Thanks Mike, that certainly is a way to solve it. Once I have a web
server I could also just simply use HTML redirection.
However, that would kind of defeat the purpose of trying to reduce
complexity by moving from Slicehost to Heroku. I'm trying to reduce
the number of players if at all possible. So far, those are my
options.
1 Player: Heroku offers DNS services (coming at some point in the future)
2 Players:Heroku, DNS – Possibly ALIAS instead of CNAME
3 Players:Heroku, DNS, Redirection – Point root domain to redirection
server (zoneedit.com)
4 Players:Heroku, DNS, web server, HTML/PHP – Run a web server a have
a redirection inside an HMTL/PHP file.
The guys at wtfdns.com are working on a solution (2) that might solve
the problem. Apparently ALIAS is acting like an A record to the
outside world but as a CNAME internally. I'm not sure how exactly it
works so my explanation is probably too simplified. The outcome,
however, should be that it would solve the problem without violating
any RFC regulations and successfully recognizing all records.
Doesn't sound too bad so far?!
-JM
> <?php set_header('Location', "http://www.myles.id.au" .Thanks Mike, that certainly is a way to solve it. Once I have a web
> $REQUEST['PATH_INFO'] + '?' + $REQUEST['QUERY_STRING']) ?>
> (or something simliar, I just made that up, haven't done PHP in a while)
server I could also just simply use HTML redirection.
However, that would kind of defeat the purpose of trying to reduce
complexity by moving from Slicehost to Heroku. I'm trying to reduce
the number of players if at all possible. So far, those are my
options.
1 Player: Heroku offers DNS services (coming at some point in the future)
2 Players:Heroku, DNS – Possibly ALIAS instead of CNAME
3 Players:Heroku, DNS, Redirection – Point root domain to redirection
server (zoneedit.com)
4 Players:Heroku, DNS, web server, HTML/PHP – Run a web server a have
a redirection inside an HMTL/PHP file.
The guys at wtfdns.com are working on a solution (2) that might solve
the problem. Apparently ALIAS is acting like an A record to the
outside world but as a CNAME internally. I'm not sure how exactly it
works so my explanation is probably too simplified. The outcome,
however, should be that it would solve the problem without violating
any RFC regulations and successfully recognizing all records.
Good point... Yeah for PHP then. :-)
> Let us know how this goes. I've never heard of the ALAIS record type, and
> it's not on wikipedia's extensive list of record types
> either: http://en.wikipedia.org/wiki/List_of_DNS_record_types
Hah, never get a break, do I? Well, we'll see what happens.
- JM
> Godaddy offers a web redirection service of their own.
But it doesn't support all top level domains, e.g. .ch domains.
I'm still waiting on the wtfdns.com guys to 'program' the ALIAS
solution. Otherwise I can go with zoneedit.com
Cheers,
Jean-Marie
The one problem with this solution is the length of time it takes to
resolve a request, far more than what you would want on a "large"
scale site.
> On Mon, Jun 29, 2009 at 8:13 AM, Carl Woodward <cjwoo...@gmail.com
> http://blog.obiefernandez.com/content/2009/04/heroku-and-godaddy-cname.html
That link was the DNS equivalent of Google's non-closure of HTML tags
for "extra speed".. :-)
My view is that using a "cname" approach would double the length of the initial resolve as 2 DNS requests need to be made. 1 to the initial domain.com and the 2nd to proxy.heroku.com.
The guys at wtfdns.com have implemented the ALIAS record type which
took them a lot longer to implement than they initially predicted.
But, unfortunately although is works in certain situations it does not
with Heroku. The recommended setup with ALIAS would be
mydomain.com. MX 10 aspmx.l.google.com.
mydomain.com. MX 20 alt1.aspmx.l.google.com.
mydomain.com. MX 20 alt2.aspmx.l.google.com.
mydomain.com. MX 30 aspmx2.googlemail.com.
mydomain.com. MX 30 aspmx3.googlemail.com.
mydomain.com. MX 30 aspmx4.googlemail.com.
mydomain.com. MX 30 aspmx5.googlemail.com.
mydomain.com. ALIAS proxy.heroku.com.
mail CNAME ghs.google.com.
www CNAME proxy.heroku.com.
But again, it doesn't work with Heroku. I merely mentioned it because
it might work in another instance and therefore be helpful.
However, I do have some good news about the issue being temporarily
addressed by Heroku themselves. See their response:
++++++++
"We've recently introduced support for A records for root domains only
so you should be able to add two A records for 75.101.163.44 and
75.101.145.87. If one changes then anytime that ip gets returned for
your domain the request will timeout.
We're currently forming a formal policy when we need to change or add
an ip to the ip pool."
++++++++
This will probably stand until they implement the DNS service which
will be a permanent solution but might cost something.
Cheers
JM