ietf-smtp
[Top] [All Lists]

Re: RFC 2821 Address Resolution

2004-01-04 19:45:08


----- Original Message ----- 
From: <Valdis(_dot_)Kletnieks(_at_)vt(_dot_)edu>
To: "Hector Santos" <winserver(_dot_)support(_at_)winserver(_dot_)com>
Cc: "IETF-SMTP" <ietf-smtp(_at_)imc(_dot_)org>
Sent: Sunday, January 04, 2004 4:31 PM
Subject: Re: RFC 2821 Address Resolution

What's happening with AOL is that they have a LARGE farm of
servers that won't fit into a single DNS reply packet, so they
give you the complete MX list, and hopefully enough A records
that you'll find a working one without having to do either a
lookup for the A records for the other Max's, or set up a TCP
connection to get the full DNS reply (with the 3 packet overhead
at the front, the FIN/ACK at the end, and all the other ugly
overhead-sucking stuff).

Right, I finally realized this after I got some sleep. I verified this by
switching to a stream connection. :-)

A more subtle hole I've seen MTA's fall into - do the MX and A
record lookups, get a list of 20 or so A records with a 30-min
TTL.  Start trying, 2 minute timeout on each.  When you get to
the 16th and fail to notice it's stale and needs to be looked up
again.

Why not delay the lookup until the moment the MX will be used by the sender?
This can address the problem where maybe the first set of MX address(es)
failed to connect or timed out, making the secondary set somewhat expired.
Hmmmmm, but then again, that could make the order of MX expired as well.

Anyway, the lesson learn for us is that we were incorrectly limiting the set
of A records to try for single MX, multi-home
systems.

The original 1996 design simply looked up the MX records, sorted them by
preference. The send mail thread performed the gethostbyname() at the moment
the MX was attempted.   Changes over the years included getting
the IP immediately by calling gethostbyname() during the MX lookup,
excluding dupes and also adding support for multiple DNS server lookup
usage.

Sounds to me that only change I need to do is to revert back to the original
sorted MX lookup, then change the send mail logic to retrieve all the IPs
for the MX.   This should minimize the lookups.  But then again, my new
resolver utilizing the A records in the MX lookup RDATA dataset seems to be
appropriate too WHEN combined with an option to set a minimum amount
desired.  So for systems like AOL.COM returning at least 10 records of a
possible 16 or more, would be sufficient for most operations.

Thanks for your input.  Learned a few things. :-)

-- 
Hector Santos, Santronics Software, Inc.
http://www.santronics.com







<Prev in Thread] Current Thread [Next in Thread>