[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 :-)