[clug] Single MX, multiple A records

Michael James michael at james.st
Fri Aug 1 01:30:49 GMT 2008

What is the standard behaviour
 when a DNS name returns multiple A records?

Should the client host:
1) Pick one deterministically, give up if it doesn't work?
2) Pick one at random, give up if it doesn't work?
3) Work through the list deterministically till one works?
4) Work through the list randomly till one works?
5) Use them all?

The intent was to create a pool of servers for reliability.
But (assuming there is a dud server on the list)
1) Gives patchy, location-dependant, service dropouts.
2) Gives random errors, (not as bad but still bad)
3) Gives reliability through redundancy
4) Gives reliability through redundancy
5) When it makes sense gives reliability through redundancy

I'm interested in 2 contexts,

My ISP gives a single MX for his mailhost.
Then that resolves to 2 IP addresses.

Depending on the table above I will get:
1) Patchy, location dependant, mail loss
2) Random mail delay, (it's a transient fault)
3) All my mail on the first delivery round
4) All my mail on the first delivery round
5) Duplicates. (doesn't make sense)

I think a better DNS setup is to have multiple MXs,
 then the specified behaviour for a mail sender
 is to work up the list till one accepts (or rejects) the mail.

Am I right, thanks for your thoughts?

There is no perl one line hack
 that a page of java won't do more elegantly.

PS: How does NTP handle this?
Is    "ntpdate pool.ntp.csiro.au"    shorthand for
  ntpdate ntp1.ntp.csiro.au ntp2.ntp.csiro.au ntp3.ntp.csiro.au.

NTP using multiple servers gives better time
 and allows the client to ignore a marginally drifting server.

More information about the linux mailing list