Could be routing problem?

Mark Neidorff mark at neidorff.com
Sun Mar 21 15:17:05 UTC 2004


Steve,

Having had a night's sleep and a clear look at what you wrote, I (think) 
that I understand what you are getting at.  I just don't understand why my 
system behaves the way it does.  I've eliminated the things that you 
suggested.  I removed the virtusertable entries.  There is nothing going 
outside of the system in aliases.  When I run #sendmail -bt -d0,1 < 
/dev/null  I get corresponding output to yours....

Version 8.11.6
 Compiled with: LDAPMAP MAP_REGEX LOG MATCHGECOS MIME7TO8 MIME8TO7
		NAMED_BIND NETINET NETINET6 NETUNIX NEWDB NIS QUEUE SASL SCANF
		SMTP TCPWRAPPERS USERDB

============ SYSTEM IDENTITY (after readcf) ============
      (short domain name) $w = neidorff
  (canonical domain name) $j = neidorff.com
         (subdomain name) $m = com
              (node name) $k = neidorff.com
========================================================

When I run 
#sendmail -bt
3,0 mark at neidorff.com

it parses the same way that yours does.

ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
Enter <ruleset> <address>
> canonify           input: mark @ neidorff . com
Canonify2          input: mark < @ neidorff . com >
Canonify2        returns: mark < @ neidorff . com . >
canonify         returns: mark < @ neidorff . com . >
parse              input: mark < @ neidorff . com . >
Parse0             input: mark < @ neidorff . com . >
Parse0           returns: mark < @ neidorff . com . >
ParseLocal         input: mark < @ neidorff . com . >
ParseLocal       returns: mark < @ neidorff . com . >
Parse1             input: mark < @ neidorff . com . >
Parse1           returns: $# local $: mark
parse            returns: $# local $: mark
> 

Still, I ***SEE*** the activity on my router sending the message out and 
it coming back in again multiple times for each e-mail.  I can't find 
anything causing that.

I have no idea how to interpret this, but each line in /var/log/maillog 
shows each received e-mail relay=root at localhost .  Is that supposed to be 
there?

Thanks for any help you can offer...

Mark

On Sat, 20 Mar 2004, Cowles, Steve wrote:

> Mark Neidorff wrote:
> > Hi all,
> > 
> > I have a feeling that this is something dead easy, I'm just
> > not seeing the problem.
> > 
> > My Redhat 7.3 system is the machine that I use as a mail
> > server (yes, I have a static IP)and as my workstation.  I'm
> > running sendmail as my mailserver.  My domain is registered.
> > I do not have a dns server running on my system.
> > 
> > There are two symptoms to my problem.  First, whenever an
> > e-mail arrives, it hops around in my computer.  My mail log
> > fills with "too many hops 26 (25 max)" errors and each of
> > these hops is written in the header of the e-mail that is
> > received.
> > The headers say:
> > Received: (from root at localhost)
> >         by mark.neidorff.com (8.11.6/8.11.6) id <e-mail ID is here>
> >         for mark; <date and time are here>
> > and is repeated about 25 times.
> 
> The "to many hops" error typically means a sendmail configuration problem.
> Most likely, sendmail does not understand what domains are considered local.
> i.e. when to select the local vs. esmtp mailers
> 
> 1) First check to see how sendmail views your systems resolver lib configs. 
> 
> Type: sendmail -bt -d0.1 </dev/null
> 
> ============ SYSTEM IDENTITY (after readcf) ============
>       (short domain name) $w = voyager
>   (canonical domain name) $j = mail.mydomain.com
>          (subdomain name) $m = mydomain.com
>               (node name) $k = voyager
> ========================================================
> 
> Note: In my printout above, my systems FQDN is voyager.mydomain.com. Yet, I
> override this (canonical) in my sendmail.mc file to be mail.mydomain.com
> which matches the MX record for my domain. This comes in handy for outbound
> mail with certain remote MTA's that check the validity of the HELO
> handshake.
> 
> 2) Now check which mailer is selected by sendmail for your e-mail addresses
> (ruleset 0). In your case, the "local" mailer should be selected. If not,
> then you may have found your endless loop (barring any aliases or virtuals).
> NOTE: After typing sendmail -bt you would enter what is shown at the >
> prompt. Substitute for your domain. 
> 
> # sendmail -bt                                      
> ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) 
> Enter <ruleset> <address> 
> > 3,0 scowles at mydomain.com 
> canonify           input: scowles @ mydomain . com 
> Canonify2          input: scowles < @ mydomain . com >  
> Canonify2        returns: scowles < @ mydomain . com . >  
> canonify         returns: scowles < @ mydomain . com . >  
> parse              input: scowles < @ mydomain . com . >  
> Parse0             input: scowles < @ mydomain . com . >  
> Parse0           returns: scowles < @ mydomain . com . >  
> ParseLocal         input: scowles < @ mydomain . com . >  
> ParseLocal       returns: scowles < @ mydomain . com . >  
> Parse1             input: scowles < @ mydomain . com . >  
> Parse1           returns: $# local $: scowles 
> parse            returns: $# local $: scowles
> 
> Note: In the above, I am invoking ruleset 3, then rulset 0. Ruleset 3 puts
> each address into a form that simplfies tasks for other rulsets. In this
> case, ruleset 0, which selects the mailer. 
> 
> The last line output above contains the mailer (local) and the mailbox in
> this case.
> 
> As a frame of reference, I have removed "mydomain.com" from
> /etc/mail/local-hosts-names. Notice that sendmail now selects the esmtp
> mailer.
> 
> # sendmail -bt
> ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)
> Enter <ruleset> <address>
> > 3,0 scowles at mydomain.com
> canonify           input: scowles @ mydomain . com
> Canonify2          input: scowles < @ mydomain . com >
> Canonify2        returns: scowles < @ mydomain . com . >
> canonify         returns: scowles < @ mydomain . com . >
> parse              input: scowles < @ mydomain . com . >
> Parse0             input: scowles < @ mydomain . com . >
> Parse0           returns: scowles < @ mydomain . com . >
> ParseLocal         input: scowles < @ mydomain . com . >
> ParseLocal       returns: scowles < @ mydomain . com . >
> Parse1             input: scowles < @ mydomain . com . >
> Mailertable        input: < mydomain . com > scowles < @ mydomain . com . >
> Mailertable        input: mydomain . < com > scowles < @ mydomain . com . >
> Mailertable      returns: scowles < @ mydomain . com . >
> Mailertable      returns: scowles < @ mydomain . com . >
> MailerToTriple     input: < > scowles < @ mydomain . com . >
> MailerToTriple   returns: scowles < @ mydomain . com . >
> Parse1           returns: $# esmtp $@ mydomain . com . $: scowles < @
> mydomain . com . >
> parse            returns: $# esmtp $@ mydomain . com . $: scowles < @
> mydomain . com . >
> 
> BTW: Are you using any virtual addresses? How about your aliases file? Could
> be that the local mailer is being selected, but then an alias kicks in to
> forward to another system.
> 
> Long pause...
> I'm sure the above looks complicated. Sorry! Sendmail is not the easist of
> MTA's to configure. :-) But understanding which mailer is selected is
> critical in undestanding how to resolve the to many hops errors. 
> 
> Think of this problem like this...
> 
> 1) inbound e-mail arrives (either remotely or locally submitted).
> 
> 2) Based on its configuration, sendmail selects whether or not the recipient
> e-mail address is local or remote (the mailer).
> 
> 3) if the remote mailer is selected (esmtp), sendmail forwards the inbound
> e-mail to another MTA (using an MX record or a mailertable override)
> 
> 4) The remote MTA receives this forwarded e-mail and checks its
> configuration for whether or not the recipient e-mail address is local or
> remote.
> 
> 5) The remote MTA does not select the local mailer and determines it needs
> to forward this e-mail back to your MTA. (using an MX record or a
> mailertable override)
> 
> ...and the loop continues.
> 
> Steve Cowles
> 
> 
> 

-- 
With her marriage she got a new name and a dress.





More information about the redhat-list mailing list