RFC 974 (rfc974) - Page 2 of 7
Mail routing and the domain system
Alternative Format: Original Text Document
RFC 974 January 1986
Mail Routing and the Domain System
What the Domain Servers Know
The domain servers store information as a series of resource records
(RRs), each of which contains a particular piece of information about
a given domain name (which is usually, but not always, a host). The
simplest way to think of a RR is as a typed pair of datum, a domain
name matched with relevant data, and stored with some additional type
information to help systems determine when the RR is relevant. For
the purposes of message routing, the system stores RRs known as MX
RRs. Each MX matches a domain name with two pieces of data, a
preference value (an unsigned 16-bit integer), and the name of a
host. The preference number is used to indicate in what order the
mailer should attempt deliver to the MX hosts, with the lowest
numbered MX being the one to try first. Multiple MXs with the same
preference are permitted and have the same priority.
In addition to mail information, the servers store certain other
types of RR's which mailers may encounter or choose to use. These
are: the canonical name (CNAME) RR, which simply states that the
domain name queried for is actually an alias for another domain name,
which is the proper, or canonical, name; and the Well Known Service
(WKS) RR, which stores information about network services (such as
SMTP) a given domain name supports.
General Routing Guidelines
Before delving into a detailed discussion of how mailers are expected
to do mail routing, it would seem to make sense to give a brief
overview of how this memo is approaching the problems that routing
poses.
The first major principle is derived from the definition of the
preference field in MX records, and is intended to prevent mail
looping. If the mailer is on a host which is listed as an MX for the
destination host, the mailer may only deliver to an MX which has a
lower preference count than its own host.
It is also possible to cause mail looping because routing information
is out of date or incomplete. Out of date information is only a
problem when domain tables are changed. The changes will not be
known to all affected hosts until their resolver caches time out.
There is no way to ensure that this will not happen short of
requiring mailers and their resolvers to always send their queries to
an authoritative server, and never use data stored in a cache. This
is an impractical solution, since eliminating resolver caching would
make mailing inordinately expensive. What is more, the out-of-date
RR problem should not happen if, when a domain table is changed,
Partridge