>...
>On the contrary. That's exactly what it asks for. The key for understanding 
>the 
>requirements here is "client identity". 
>
>If we rewrite it this way:
>
>> So we find it is actually not only *not* contained with RFC2821 
>> any requirement that the HELO/EHLO argument match the reverse DNS record, 
>> but we find an explicit prohibition on refusing a transaction because of 
>> the lack of match.
>
>it makes sense. I don't know if you wanted to say this.
>
>Kai
>
>-- 
>Kai Schätzl, Berlin, Germany
>Get your web at Conactive Internet Services: http://www.conactive.com
>

        Whose "reverse DNS record"?

        Actually, I think checking that if rDNS exists, it matches is not
a bad idea;  But the actual prohibition is on the forward DNS (or even the
supplied address literal, as stupid as that seems) not matching the client
IP is being used for rejection.  Basically this is to allow a "service" such
as where domainA handles mail for domainB, and being "smart" does a HELO/EHLO
using domainB as the argument when sending mail for domainB;  This leads to
the situation where the client's IP is domainB (or some host contained within
it), but the the HELO/EHLO argument "seems" unrelated (since the receiver has
no knowledge of a relationship between the domains).  Also, there is no rule
against requiring that the client's IP meet FCrDNS, hence that is the common
check that is applied (and not prohibited).

        The classic case of checking for FCrDNS is to check for:

        client IP -> hostname -> clientIP

and/or (with the exceptions below - a useful test, but not always possible)

        HELO/EHLO arg -> some IP -> HELO/EHLO arg

NOTE:  There need not be any relationship between "client IP" and "some IP"
in the two cases above (if indeed the "some IP" can even be found).

        To consider the notion of "client identity" (which is a valid way
to view the concept), we must include also the case of agency - i.e. the
client is acting as an agent of the domain identified in the HELO.  This
has many analogies outside the computer world - Try calling a company's
service center, help line, etc. when it has been out-source'd - often the
person answering the telephone will "identify" themselves by stating the
name of the company whom you are trying to contact, while in fact they
work for and are physically at a different organization that is acting
as an agent for the company you are trying to contact.  An even better
case is if you leave a message (telephone, email or by web page) and you
are called back by someone who states that they are calling for or from the
company you wanted to contact, but in fact they do not work for or at that
company (this case is the equivalent of the email HELO/EHLO - "Hi, this is
John from companyX service center, you left us a message...", when in fact,
John works thousands of miles away for and at companyY, not company X).

        For the second case above, if the argument does not resolve to any
IP but does resolve to at least one 'MX', the qualifiers in 2821 leave out
any chance to check the second half of the argument - i.e. the forward part
of the FC ("full circle") - some IP -> HELO/EHLO arg.  You can still always
check FCrDNS on the client IP and reject on that basis if there is a lack
of mapping (the prohibition is on rejecting because "client IP" != "some IP").

        In fact, it is fairly common for people to pose the question, "Why
is there any argument to HELO/EHLO at all?".  After all, by the nature of
the TCP protocol, we know unambiguously the client's IP, which is a unique
identifier;  The answer is that the HELO/EHLO argument give us, rather than
the identity of the sending machine, the identity of the organization (re.
domain) on whose behalf the mail is being sent.  This information is useful
simply because of the situation where a client is acting as an "agent" for
an organization (re. again as domain) to which it does not belong, but is
authorized (in a manner which may *not* verifiable or even knowable to the
receiver) to take action(s) in the name of (the classic "legal" sense of
the term - under common law or the UCC - but IANAL).  When viewed in this
way, it becomes clear why the early text specifies "HELO <domain>" and not
"HELO <host>" or "HELO <client>", either of which would only provide redundant
information.

        And of course, the additional cases of virtual hosts sharing a
machine (and IP address), but wishing to give the name of the domain sending
the email, rather than merely the and identifier mapping to the hosting
campany or the case of an organization with multiple domains sitting behind
a common NAT'd IP address wishing the same, are provided for by interpreting
the HELO/EHLO argument of the idenitifer of the originating organization (re.
again as domain), not of the owner of the IP which may be visible to the
receiver (which as stated, is already unambiguously defined).

        If it were a requirement that HELO/EHLO argument -> client IP,
there would be no reason to have the argument.

        Paul Shupak
        [EMAIL PROTECTED]

Reply via email to