[Pkg-exim4-users] After upgrading to exim4 messages are frozen, "remote host address is the local host"

Matthew Exon 56868237@exon.dyndns.org
Mon, 07 Mar 2005 15:41:05 +0100


OK, I figured out what my problem was.  I didn't read the entire dialog 
box carefully enough and missed that the list of local domains had to be 
colon separated.  I entered them space separated.  As a result, exim 
believed that it should only be handling mail for the domain 
"exon.dyndns.org<space>aeon.exon.dyndns.org", and rejected any email 
merely destined for exon.dyndns.org.

I wasn't paying close enough attention to the specification, because I 
was having trouble with figuring out what my answer should be: I'm on an 
IP masqueraded local network.  I have a dyndns.org domain, which means 
that *.exon.dyndns.org, as well as plain exon.dyndns.org, all gets 
routed to my own box.  Internally, my machines are called 
<blah>.exon.dyndns.org.  So where should email to aeon.exon.dyndns.org 
go?  Forwarded to aeon, or stay on my server?  Is anything going to 
break?  In all that, I forgot to concentrate on the syntax I was 
supposed to be using.

So I'm an idiot, sure, but this all seems a little fragile for such a 
tiny mistake.

It seems like the first check that should be made, when a user enters a 
list of domains, is that each of the domains should be looked up to see 
if they really exist.  If not, the user should be warned.  Ideally this 
would be handled by debconf.

Again, ideally, exim would also perform this check when it starts up, 
and figure out some way to warn postmaster if there's a problem.

Simply quietly refusing to send any email when the user makes this 
mistake seems a trifle mean :-(

Marc Haber wrote:

> What does "exim -d -bt <username>@exon.dyndns.org" say?

(In case you hadn't guessed, I'm replacing the username to avoid having 
a harvestable email address online...)

For Exim 3:

Exim version 3.36 debug level 1 uid=0 gid=0
Berkeley DB: Sleepycat Software: Berkeley DB 3.2.9: (May 26, 2004)
<username>@exon.dyndns.org
   deliver to <username> in domain exon.dyndns.org
   director = localuser, transport = local_delivery

For Exim 4, incorrectly configured:

Exim version 4.44 uid=0 gid=0 pid=25603 D=fbb95cfd
Berkeley DB: Sleepycat Software: Berkeley DB 4.2.52: (December  3, 2003)
Support for: iconv() IPv6 GnuTLS
Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz 
dsearch nis nis0 passwd
Authenticators: cram_md5 plaintext
Routers: accept dnslookup ipliteral manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore autoreply lmtp pipe smtp
Fixed never_users: 0
changed uid/gid: forcing real = effective
   uid=0 gid=0 pid=25603
   auxiliary group list: <none>
configuration file is /var/lib/exim4/config.autogenerated
log selectors = 00000ffc 00010400
trusted user
admin user
user name "root" extracted from gecos field "root"
originator: uid=0 gid=0 login=root name=root
sender address = <root user>@exon.dyndns.org
Address testing: uid=0 gid=102 euid=0 egid=102
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Testing <username>@exon.dyndns.org
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Considering <username>@exon.dyndns.org
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
routing <username>@exon.dyndns.org
--------> hubbed_hosts router <--------
local_part=<username> domain=exon.dyndns.org
checking domains
expansion of "${if 
exists{/etc/exim4/hubbed_hosts}{partial-lsearch;/etc/exim4/hubbed_hosts}fail}" 
forced failure: assume not in this list
hubbed_hosts router skipped: domains mismatch
--------> dnslookup_relay_to_domains router <--------
local_part=<username> domain=exon.dyndns.org
checking domains
exon.dyndns.org in "@:localhost:exon.dyndns.org aeon.exon.dyndns.org"? 
no (end of list)
exon.dyndns.org in ""? no (end of list)
exon.dyndns.org in "! +local_domains : +relay_to_domains"? no (end of list)
dnslookup_relay_to_domains router skipped: domains mismatch
--------> dnslookup router <--------
local_part=<username> domain=exon.dyndns.org
checking domains
cached no match for +local_domains
cached lookup data = NULL
exon.dyndns.org in "! +local_domains"? yes (end of list)
R: dnslookup for <username>@exon.dyndns.org
calling dnslookup router
dnslookup router called for <username>@exon.dyndns.org
   domain = exon.dyndns.org
DNS lookup of exon.dyndns.org (MX) gave NO_DATA
returning DNS_NODATA
DNS lookup of exon.dyndns.org (AAAA) gave NO_DATA
returning DNS_NODATA
DNS lookup of exon.dyndns.org (A) succeeded
82.135.65.152 in "0.0.0.0 : 127.0.0.0/8 : 192.168.0.0/16 :172.16.0.0/12 
: 10.0.0.0/8 : 169.254.0.0/16"? no (end of list)
local host found for non-MX address
fully qualified name = exon.dyndns.org
exon.dyndns.org 82.135.65.152 mx=-1 sort=-458
LOG: MAIN
   remote host address is the local host: exon.dyndns.org (while routing 
<<username>@exon.dyndns.org>)
dnslookup router: defer for <username>@exon.dyndns.org
   message: remote host address is the local host
search_tidyup called
 >>>>>>>>>>>>>>>> Exim pid=25603 terminating with rc=1 >>>>>>>>>>>>>>>>
<username>@exon.dyndns.org cannot be resolved at this time:
   remote host address is the local host

For Exim 4, correctly configured: too much to attach.  Suffice to say, 
it works :-)