Phillip Vandry wrote:
2. Why Web services don't have entries like MX hosts do. Why not be able to set preferences and fall over hosts?
That is exactly RFC 2052, but why don't you try convincing everyone to deploy that right now? :-)
To start, RFC 2052 (the SRV RR idea) is extremely ill-conceived. It's smallest flaw is that it requires you to specify RR's by service and makes some (I think) invalid assumptions about services being requested on the same port consistently. However those problems are eclipsed by the fact that it requires client authors to adapt to the new format. As someone else commented, client authors have yet to adequately deal with multiple A records, so the hopes of them working in the capability to deal with a completely new RR are small. Dean Anderson wrote:
www IN CNAME www1.av8.com. IN CNAME www2.av8.com.
www1 IN A 198.3.136.144 IN A 208.156.100.250 www2 IN A 208.156.100.250 IN A 198.3.136.144
This works, however it is functionally equivalent to: www IN A 198.3.136.144 IN A 208.156.100.250 which is fine if you want to balance the load equally between these two servers (although obviously the CNAME's should be avoided in the simple case). Chris Cappuccio wrote:
Multiple CNAMEs are not supported by all DNS servers and are in fact "turned off" by default in BIND 8. Multiple CNAMEs violates DNS protocol-
The config option in BIND 8 refers to names in the zone files served by that server having more than one CNAME. BIND 8 has no problems resolving names with multiple CNAME's from remote servers with or without that option. Also, multiple CNAME's are not a violation of the letter of the law, although they are possibly a violation of its spirit. What the RFC's DO say is that you cannot have a CNAME plus another type of RR. This is to avoid the possibility of having conflicting records of the same type (like MX or A records). Daniel Reed wrote:
On Thu, 4 Jun 1998, Dean Anderson wrote: ) At 2:51 PM -0400 6/3/98, Phillip Vandry wrote: ) >> 2. Why Web services don't have entries like MX hosts do. Why not be able to ) >> set preferences and fall over hosts? ) Err, they do. Here's how to set it up: These balance the load, and if one ) machine is down, any browser which handles multiple A records properly will ) still fail over to the other machine. ) ) www IN CNAME www1.av8.com. ) IN CNAME www2.av8.com. That's a Very Bad Idea(tMS). CNAMEs are used as aliases, direct mappings.
Most of the time, yes.
For the same reason you can't CNAME a zone's root to something else (meaning, if I am setting up the zone map for n.ml.org, I can CNAME web.n.ml.org to narnia.n.ml.org,
Right.
but I can't CNAME n.ml.org to narnia.n.ml.org, nor can I CNAME n.ml.org to ftp.microsoft.com, or any other host),
Why not? n.ml.org. IN CNAME ftp.microsoft.com. would be perfectly valid. Of course uncle bill might not like it much. :)
you cannot use multiple CNAMEs. You can *physically* CNAME multiple times,
I'm not sure I understand the distinction you're trying to make here.
but you're likely to break things, as it's against the rules.
See above.
What you're in fact doing is aliasing one host to two different ones, which doesn't make sense (because a CNAME says that ThisHost is actually just a pointer to ThatHost).
Under usual situations, no it wouldn't make sense. However in the load balancing situation it's the only way to go for more complex setups.
Do an nslookup on irc.dal.net a couple times, or us.undernet.org. Each time you do it, the IP's are shifted over to the left by one.
Well I'll take that as a compliment, since I am DALnet's hostmaster. :) However I regret to inform you that I did use the CNAME hack to fine tune our load balancing. I'd also like to point out that the IP's in a true round-robin setup (as manifest with BIND, et al) will be returned randomly, not in a rotate once cycle. The exception to this is if you are on the same subnet as one of the IP's, in which case that IP (or IP's) will be favored.
"Supporting" multiple IN A's shouldn't be necessary for a client to take advantage of multiple IN A's. Since the IN A's are rotated, load balancing is implemented at the nameserver level. The client should just always connect to the first IN A given to it.
This depends on whose resolver you're using. With BIND you should be in good shape. With, say, windows 95 you're in deep tapioca because although it caches all the IP's it receives it always returns them in the same order. (And no, I don't need anyone to tell me that this is braindead behaviour. :) The safest way to get the desired behaviour out of the client is to code specifically the behaviour you want. Now, why would you want to use multiple CNAME's? Simple, it gives you much greater flexibility in how you control the load assigned to various machines. Say you want one machine to get 3 times as much load as others. Because BIND compacts A addresses you couldn't simply do: www IN A 111.111.111.111 IN A 111.111.111.111 IN A 111.111.111.111 IN A 222.222.222.222 IN A 333.333.333.333 BIND would return just the 3 discreet addresses. What would work is: www IN CNAME www1 IN CNAME www2 IN CNAME www3 www1 IN A 111.111.111.111 IN A 222.222.222.222 IN A 333.333.333.333 www2 IN A 111.111.111.111 www3 IN A 111.111.111.111 The astute student will notice that the 111.111.111.111 address won't get exactly 3 times as much traffic. In fact, calculating exact percentages is a fascinating mathematical problem, especially when you are dealing with lots of addresses. You can find more info on this technique in the BIND FAQ.2of2, question 5.11. The FAQ is included in BIND 8's -doc package in the misc section amongst other places. I wanted to respond to this thread for several reasons. First, DNS is an operational issue, and as has often been mentioned here is difficult to do right and very hard to do well. Also, there was a lot of misinformation contained in this thread, and I wanted to set some of the old and glorious bits to rest. And, frankly I thought it was a good opportunity to demonstrate my brilliance to potential customers. :) If you need load balancing or other DNS help I'm available for a reasonable rate. Finally, if you plan to disagree with anything in this post, please quote chapter and verse from the relevant RFC. I've spent a lot of time studying this topic and am quite sure of my facts. Enjoy, Doug -- *** Chief Operations Officer, DALnet IRC network *** *** Proud designer and maintainer of one of the world's largest *** Internet Relay Chat servers with 5,328 simultaneous connections *** Try spider.dal.net on ports 6662-4 (Powered by FreeBSD)