One observation, having worked through this several times before
realizing that the answer is obvious and feeling a need to be
sure that we are in agreement about what we are discussing...
--On Monday, March 31, 2008 11:32 AM +0200 Arnt Gulbrandsen
A rather simple and straightforward task that the current
draft satisfies reasonably, modulo the usual
I read the -06 draft as permitting the last two alternatives
("A or AAAA", "A and AAAA"). 2821 itself says A.
Suppose one has mail addressed to user(_at_)foo(_dot_)example(_dot_)com(_dot_) Suppose
further that one has
foo.example.com. IN A 10.0.0.1
IN A 10.0.0.2
IN AAAA ....
and no MX record.
Now what 2821bis now says includes "address record" and the old
rule about making an implicit MX record with preference 0 and
then following the rules. So we pretend that we had
foo.example.com. MX 0 foo.example.com.
to complement the above.
Interestingly enough, in that case, even if the rule were
"implicit MX on A RRs only", exactly the same MX record would be
generated. The only time the "address record" rule that is now
present in 2821bis is an issue is if there is no A RR.
Once that implicit MX record exists, there are fairly clear
rules about which address to use for foo.example.com. To be a
little more precise, while the rules are clear, they pretty much
leave it up to the sending host and there is no real difference
between the traditional choice between the two IPv4 addresses
and the newer choice between the IPv4 addresses and the IPv6
one. The Standard also gives the sender implementation some
flexibility about how many of those addresses it is obligated
So, from the standpoint of the synthesized MX record (or an
explicit MX record set up the same way), there is no difference
between the "A and AAAA" and "A or AAAA" cases described above
-- those are differences that have to do with selection of a
target address once the MX record exists or is inferred.
If a receiving host wants to specify a priority for which of
IPv6 or IPv4 it prefers to receive traffic over, it must have
two names, one for its IPv4 interface(s) and one for its IPv6
one(s) and then put in an explicit set of MX records that bind
separate priorities to those two names. So again no issue with
whether a host looks for an AAAA record if it cannot find an MX.