Ambiguous MX Records
RFC974 leaves the treatment of ambiguous MX records to the implementor’s discretion. This has generated much debate in sendmail circles. Consider the following:
foo IN MX 10 hostA
foo IN MX 20 hostB ← mail from hostB to foo
foo IN MX 30 hostC
When mail is sent from a host (hostB
) that is an MX
record for the receiving host (foo
) all MX records that
have a cost equal to or greater than that of
hostB
must be
discarded. The mail is then delivered to the
remaining MX host with the lowest cost (hostA
). This is a
sensible rule because it prevents hostB
from wrongly
trying to deliver to itself.
It is possible to configure hostB
so that it views the name
foo
as a
synonym for its own name. Such a configuration
results in hostB
never looking up any MX records because it
recognizes mail to foo
as local.
But what should happen if hostB
does not recognize foo
as local and if
there is no hostA
?
← no hostA foo IN MX 20 hostB ← mail from hostB to foo foo IN MX 30 hostC
Again, RFC974 says that when mail is being sent from a
host (hostB
) that
is an MX record for the receiving host (foo
) all MX records that
have a cost equal to or greater than that of
hostB
must be
discarded. In this example, that leaves
zero MX records. Three
courses of action are now open to
sendmail, but RFC974 doesn’t
say which it should use:
Assume that this is an error condition. Clearly, hostB should have been configured to recognize foo as local. It didn’t (hence the MX lookup and discarding in the first place), ...
Get sendmail, 4th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.