MX vs A record

One issue that has been the topic of some pointless discussion is whether a mail server should have an A record or an MX record. Mail can be delivered to a domain that has no MX record but simply an A record pointing to an IP address. But the most common practice is to have an MX record pointing to the name of the machine that serves the mail. A common use for this is to have a bulk mail hosting machine with multiple MX records pointing at it, which then allows you to have matching forward and reverse DNS entries for the machine name.

If you have no MX record for a domain then Postfix will do the following DNS requests:

IP postfix.34245 > DNS.domain:  3448+ MX? (32)
IP postfix.34261 > DNS.domain:  50123+ A? (32)

If you have an MX record then it does the following:

IP postfix.34675 > DNS.domain:  29942+ MX? (32)
IP postfix.34675 > DNS.domain:  33294+ A? (37)

Now if there are multiple domains on a bulk mail hosting system then the A record might already be in a local cache on the sending machine, so having bulk mail hosting with MX records may reduce the number of DNS lookups, with the minumum number of lookups being half plus one.

If there is no bulk mail hosting then an MX record would still offer some slight benefits if the positive responses are cached for longer than negative responses. This would mean less lookups which gives faster and more reliable delivery of mail plus being more friendly to the net. I don’t know what the cache behaviour is in this regard so I’m not sure if this would actually give a benefit (I’m sure someone will comment with the answer).

Now regardless of these issues I think that using an MX record is the better option. It’s what most software expects and saves you from the excitement of discovering corner case bugs in various software that’s out there on the net.

Comments are closed.