Hello again,
First, a quick summary of my (Linux) testbed structure:
eth0: 10.0.0.4 (Running a stable-configuration Exim 3)
eth0:56: 10.0.0.60 (Exim 4 development configuration)
As you understand, this is a single machine.
The exim 4 daemon is binded to this IP only:
17888 local_interfaces overridden by -oX:
17888 <: 10.0.0.60.25
17888 listening on 10.0.0.60 port 25
And so is the exim3, which has the following setting:
local_interfaces = 10.0.0.4 : 10.0.0.5 : 127.0.0.1
Second, I am trying to send a mail using 10.0.0.60 to 10.0.0.4
by using an address that the domain has MX record that points to
10.0.0.4, this is the debug output of 10.0.0.60:
30046 test4.com in "! +local_domains"? yes (end of list)
30046 calling dnslookup router
30046 dnslookup router called for tomer@???
30046 domain = test4.com
30046 DNS lookup of test4.com (MX) succeeded
30046 10.0.0.4 in "0.0.0.0 : 127.0.0.0/8"? no (end of list)
30046 local host has lowest MX
30046 fully qualified name = test4.com
30046 host_find_bydns yield = HOST_FOUND_LOCAL (3); returned hosts:
30046 mx.test4.com 10.0.0.4 10
30046 LOG: MAIN
30046 lowest numbered MX record points to local host: test4.com
30046 dnslookup router: defer for tomer@???
30046 message: lowest numbered MX record points to local host
30046 added retry item for R:test4.com: errno=-1 0 flags=0
30046 post-process tomer@??? (1)
My dnslookup router is pretty standard as well:
dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more
I understand why exim treats it as local of course, but is it right
to be based on interfaces check when it been told to listen to a
specific interface only? or have I missed something here?
A "hosts_treat_as_remote" command would be helpful here.
/- Tomer.
----------------------------------
Tomer H. tomer@???
IT Solutions Provider
www.metnix.com info@???
----------------------------------