[exim] zone_data expansion oddity

Top Page
Delete this message
Reply to this message
Author: Derek Buttineau
Date:  
To: exim-users
Subject: [exim] zone_data expansion oddity
Hello,

I'm experiencing a bit of an oddity in how my zone_data is being
expanded on my queing server and I expect that it's due to combining /
MX alongside of a secondary address. In my case it appears that when
the message arrives at the non /mx address only the lowest MX from
DNS is used, any others are stripped. I've searched most of the
afternoon and can't seem to find any documentation to work around
this, so any help would be appreciated. I've worked around my short
term problem by temporary reversing the MX order in DNS so queued
messages would be delivered to the new secondary DNS, but a long term
solution would be nice to have :)

Here's the situation, I have a manualroute router that gives data for
the zone as follows (obfuscating the domain to protect our client):

"clientdomain.com/mx:queue.csolve.net"

On the main machines, this translates correctly as seen here:

routing ob@???
--------> mailertable_router router <--------
local_part=ob domain=clientdomain.com
checking domains
search_open: cdb "/var/db/mailguard/mailertable.cdb"
   cached open
search_find: file="/var/db/mailguard/mailertable.cdb"
   key="clientdomain.com" partial=-1 affix=NULL starflags=0
LRU list:
   0/var/db/mailguard/mailertable.cdb
   :/etc/aliases
   End
internal_search_find: file="/var/db/mailguard/mailertable.cdb"
   type=cdb key="clientdomain.com"
file lookup required for clientdomain.com
   in /var/db/mailguard/mailertable.cdb
lookup yielded: clientdomain.com/mx:queue.csolve.net
clientdomain.com in "cdb;/var/db/mailguard/mailertable.cdb"? yes  
(matched "cdb;/var/db/mailguard/mailertable.cdb")
data from lookup saved for cache for +relay_to_domains:  
clientdomain.com/mx:queue.csolve.net
clientdomain.com in "+relay_to_domains"? yes (matched  
"+relay_to_domains")
checking "condition"
search_open: cdb "/var/db/mailguard/usertable.cdb"
search_find: file="/var/db/mailguard/usertable.cdb"
   key="ob@???" partial=-1 affix=NULL starflags=2
LRU list:
   0/var/db/mailguard/usertable.cdb
   0/var/db/mailguard/mailertable.cdb
   :/etc/aliases
   End
internal_search_find: file="/var/db/mailguard/usertable.cdb"
   type=cdb key="ob@???"
file lookup required for ob@???
   in /var/db/mailguard/usertable.cdb
lookup yielded: e55s+yodtrltf4ph3y1ojw
calling mailertable_router router
mailertable_router router called for ob@???
   domain = clientdomain.com
search_open: cdb "/var/db/mailguard/mailertable.cdb"
   cached open
search_find: file="/var/db/mailguard/mailertable.cdb"
   key="clientdomain.com" partial=-1 affix=NULL starflags=0
LRU list:
   0/var/db/mailguard/mailertable.cdb
   0/var/db/mailguard/usertable.cdb
   :/etc/aliases
   End
internal_search_find: file="/var/db/mailguard/mailertable.cdb"
   type=cdb key="clientdomain.com"
cached data used for lookup of clientdomain.com
   in /var/db/mailguard/mailertable.cdb
lookup yielded: clientdomain.com/mx:queue.csolve.net
original list of hosts = "clientdomain.com/mx:queue.csolve.net"  
options =
expanded list of hosts = "clientdomain.com/mx:queue.csolve.net"  
options =
set transport remote_smtp
finding IP address for clientdomain.com/mx
doing DNS MX lookup for clientdomain.com/mx
DNS lookup of clientdomain.com (MX) succeeded
DNS lookup of mail.clientdomain.com (AAAA) gave NO_DATA
returning DNS_NODATA
DNS lookup of mail.clientdomain.com (A) succeeded
DNS lookup of hummer.csolve.net (AAAA) gave NO_DATA
returning DNS_NODATA
DNS lookup of hummer.csolve.net (A) succeeded
host_find_bydns yield = HOST_FOUND (2); returned hosts:
   mail.clientdomain.com 207.164.80.126 MX=10
   hummer.csolve.net 10.10.19.4 MX=20
finding IP address for queue.csolve.net
doing DNS lookup
DNS lookup of queue.csolve.net (AAAA) gave NO_DATA
returning DNS_NODATA
DNS lookup of queue.csolve.net (A) succeeded
fully qualified name = queue.csolve.net
queue.csolve.net 10.10.19.195 mx=-1 sort=-266
queued for remote_smtp transport: local_part = ob
domain = clientdomain.com
   errors_to=NULL
   domain_data=clientdomain.com/mx:queue.csolve.net localpart_data=NULL
routed by mailertable_router router
   envelope to: ob@???
   transport: remote_smtp
   host mail.clientdomain.com [207.164.80.126] MX=10
   host hummer.csolve.net [10.10.19.4] MX=20
   host queue.csolve.net [10.10.19.195]
ob@???
   router = mailertable_router, transport = remote_smtp
   host mail.clientdomain.com [207.164.80.126] MX=10
   host hummer.csolve.net   [10.10.19.4]     MX=20
   host queue.csolve.net    [10.10.19.195]
search_tidyup called


However, on my queue server expansion works fine until the local name
is removed from the host list, and then the only host tried is
mail.clientdomain.com.

routing ob@???
--------> mailertable_router router <--------
local_part=ob domain=clientdomain.com
checking domains
search_open: cdb "/var/db/mailguard/mailertable.cdb"
cached open
search_find: file="/var/db/mailguard/mailertable.cdb"
key="clientdomain.com" partial=-1 affix=NULL starflags=0
LRU list:
0/var/db/mailguard/mailertable.cdb
:/etc/aliases
End
internal_search_find: file="/var/db/mailguard/mailertable.cdb"
type=cdb key="clientdomain.com"
file lookup required for clientdomain.com
in /var/db/mailguard/mailertable.cdb
lookup yielded: clientdomain.com/mx:queue.csolve.net
clientdomain.com in "cdb;/var/db/mailguard/mailertable.cdb"? yes
(matched "cdb;/var/db/mailguard/mailertable.cdb")
data from lookup saved for cache for +relay_to_domains:
clientdomain.com/mx:queue.csolve.net
clientdomain.com in "+relay_to_domains"? yes (matched
"+relay_to_domains")
checking "condition"
search_open: cdb "/var/db/mailguard/usertable.cdb"
search_find: file="/var/db/mailguard/usertable.cdb"
key="ob@???" partial=-1 affix=NULL starflags=2
LRU list:
0/var/db/mailguard/usertable.cdb
0/var/db/mailguard/mailertable.cdb
:/etc/aliases
End
internal_search_find: file="/var/db/mailguard/usertable.cdb"
type=cdb key="ob@???"
file lookup required for ob@???
in /var/db/mailguard/usertable.cdb
lookup yielded: e55s+yodtrltf4ph3y1ojw
calling mailertable_router router
mailertable_router router called for ob@???
domain = clientdomain.com
search_open: cdb "/var/db/mailguard/mailertable.cdb"
cached open
search_find: file="/var/db/mailguard/mailertable.cdb"
key="clientdomain.com" partial=-1 affix=NULL starflags=0
LRU list:
0/var/db/mailguard/mailertable.cdb
0/var/db/mailguard/usertable.cdb
:/etc/aliases
End
internal_search_find: file="/var/db/mailguard/mailertable.cdb"
type=cdb key="clientdomain.com"
cached data used for lookup of clientdomain.com
in /var/db/mailguard/mailertable.cdb
lookup yielded: clientdomain.com/mx:queue.csolve.net
original list of hosts = "clientdomain.com/mx:queue.csolve.net"
options =
expanded list of hosts = "clientdomain.com/mx:queue.csolve.net"
options =
set transport remote_smtp
finding IP address for clientdomain.com/mx
doing DNS MX lookup for clientdomain.com/mx
DNS lookup of clientdomain.com (MX) succeeded
DNS lookup of mail.clientdomain.com (AAAA) gave NO_DATA
returning DNS_NODATA
DNS lookup of mail.clientdomain.com (A) succeeded
DNS lookup of hummer.csolve.net (AAAA) gave NO_DATA
returning DNS_NODATA
DNS lookup of hummer.csolve.net (A) succeeded
host_find_bydns yield = HOST_FOUND (2); returned hosts:
mail.clientdomain.com 207.164.80.126 MX=10
hummer.csolve.net 10.10.19.4 MX=20
finding IP address for queue.csolve.net
doing DNS lookup
DNS lookup of queue.csolve.net (AAAA) gave NO_DATA
returning DNS_NODATA
DNS lookup of queue.csolve.net (A) succeeded
local host found for non-MX address
fully qualified name = queue.csolve.net
queue.csolve.net 10.10.19.195 mx=-1 sort=-150
Removed from host list:
queue.csolve.net
queued for remote_smtp transport: local_part = ob
domain = clientdomain.com
errors_to=NULL
domain_data=clientdomain.com/mx:queue.csolve.net localpart_data=NULL
routed by mailertable_router router
envelope to: ob@???
transport: remote_smtp
host mail.clientdomain.com [207.164.80.126] MX=10
ob@???
router = mailertable_router, transport = remote_smtp
host mail.clientdomain.com [207.164.80.126] MX=10
search_tidyup called

Is this normal, and if so, is there a way to have it include the
secondary MX from DNS even after the local host is removed?

Thanks in advance for any input you can provide.

--
Regards,

Derek Buttineau
Internet Systems Developer
Compu-SOLVE Internet Services
Compu-SOLVE Technologies, Inc

Phone: 705-725-1212 x255
E-Mail: derek@???