[exim4] mail komt wel aan via ene domein, niet via andere

Pagina: 1
Acties:

Onderwerpen


  • dtech
  • Registratie: Juni 2005
  • Laatst online: 19-09 15:37
Ik heb recent een server geupgrade van Debian 4.0/etch naar Debian 5.0/lenny.

An sich was dat voor exim best veel werk aangezien het configuratiefile helemaal overhoop was gehaald, maar ik heb het zo goed mogelijk weer ingesteld.

De server ontvangt mail voor verschillende domeinen. Twee van die domeinen wijzen naar hetzelfde (laten we ze a.com en b.com noemen)

Vreemde is dat de mail nog wel binnenkomt als je het naar a.com stuurt, maar niet als je het naar b.com stuurt. Dit staat er in de logs als er een mailtje naar b.com stuurt:
code:
1
user@b.nl <user@b.nl> R=hubbed_hosts T=remote_smtp defer (-53): retry time not reached for any host


Na wat zoeken kwam ik tegen dat het aan een corrupte database zou kunnen liggen. Maar na het verwijderen van alles in /var/spool/exim4/db en herstarten kreeg ik enkel de volgende error enkele keren voor het terugging naar de vorige error:
code:
1
user@b.com <user@a.com> R=hubbed_hosts T=remote_smtp defer (110): Connection timed out


In /etc/exim4/exim4.conf.template lijkt alles gewoon goed te staan:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
.ifndef MAIN_LOCAL_DOMAINS
MAIN_LOCAL_DOMAINS = @:localhost:a.com:b.com:c.com
.endif
domainlist local_domains = MAIN_LOCAL_DOMAINS

....

system_aliases:
  debug_print = "R: system_aliases for $local_part@$domain"
  driver = redirect
  domains = +local_domains
  allow_fail
  allow_defer
  data = ${lookup{$local_part}lsearch{/etc/aliases.a.com}}
  .ifdef SYSTEM_ALIASES_USER
  user = SYSTEM_ALIASES_USER
  .endif
  .ifdef SYSTEM_ALIASES_GROUP
  group = SYSTEM_ALIASES_GROUP
  .endif
  .ifdef SYSTEM_ALIASES_FILE_TRANSPORT
  file_transport = SYSTEM_ALIASES_FILE_TRANSPORT
  .endif
  .ifdef SYSTEM_ALIASES_PIPE_TRANSPORT
  pipe_transport = SYSTEM_ALIASES_PIPE_TRANSPORT
  .endif
  .ifdef SYSTEM_ALIASES_DIRECTORY_TRANSPORT
  directory_transport = SYSTEM_ALIASES_DIRECTORY_TRANSPORT
  .endif

ecartis_aliases:
  debug_print = "R: ecartis pipe!"
  driver = redirect
  #domains = a.com:b.com
  domains = +local_domains
  allow_fail
  allow_defer
  data =  ${lookup{$local_part}lsearch{/var/lib/ecartis/aliases}}
  user = ecartis
  group = ecartis
  file_transport = address_file
  pipe_transport = address_pipe

system_aliases_c_com:
  debug_print = "R: system_aliases for $local_part op c.com"
  driver = redirect
  domains = c.com
  allow_fail
  allow_defer
  data = ${lookup{$local_part}lsearch{/etc/aliases.c.com}}
  .ifdef SYSTEM_ALIASES_USER
  user = SYSTEM_ALIASES_USER
  .endif
  .ifdef SYSTEM_ALIASES_GROUP
  group = SYSTEM_ALIASES_GROUP
  .endif
  .ifdef SYSTEM_ALIASES_FILE_TRANSPORT
  file_transport = SYSTEM_ALIASES_FILE_TRANSPORT
  .endif
  .ifdef SYSTEM_ALIASES_PIPE_TRANSPORT
  pipe_transport = SYSTEM_ALIASES_PIPE_TRANSPORT
  .endif
  .ifdef SYSTEM_ALIASES_DIRECTORY_TRANSPORT
  directory_transport = SYSTEM_ALIASES_DIRECTORY_TRANSPORT
  .endif


heeft iemand ideën?

  • FiscBiker
  • Registratie: April 2003
  • Laatst online: 19:35
Wat debian doet met de exim configuratie is al niet om vrolijk van te worden, maar je helpt jezelf ook niet
dtech schreef op woensdag 15 september 2010 @ 11:25:
Twee van die domeinen wijzen naar hetzelfde
hetzelfde... lokale account voor mailaflevering? ... volgende server voor verdere afwerking? ...recept voor rundercarpaccio? Hetzelfde wat?
Vreemde is dat de mail nog wel binnenkomt als je het naar a.com stuurt, maar niet als je het naar b.com stuurt. Dit staat er in de logs als er een mailtje naar b.com stuurt:
code:
1
user@b.nl <user@b.nl> R=hubbed_hosts T=remote_smtp defer (-53): retry time not reached for any host
Wat doet de router hubbed_hosts? Welke router gebruikt a.com dan? Indien verschillend, waarom gebruikt b.com die andere router? Test beide domeinen met
exim -dd -bt example@a.com
en vergelijk de verschillen
code:
1
user@b.com <user@a.com> R=hubbed_hosts T=remote_smtp defer (110): Connection timed out
Dat is je enige foutmelding, de andere melding was geen foutmelding maar alleen een melding dat exim het nog geen tijd vond om die mail opnieuw proberen af te leveren
In /etc/exim4/exim4.conf.template lijkt alles gewoon goed te staan:
code:
1
knip
Daar staat helemaal geen hubbed_hosts in, waar komt die dan vandaan?

Ik lees op internet dat hubbed_hosts een bestand op je schijf is, inspecteer die ook eens

  • dtech
  • Registratie: Juni 2005
  • Laatst online: 19-09 15:37
FiscBiker schreef op woensdag 15 september 2010 @ 11:59:
Wat debian doet met de exim configuratie is al niet om vrolijk van te worden, maar je helpt jezelf ook niet


[...]


hetzelfde... lokale account voor mailaflevering? ... volgende server voor verdere afwerking? ...recept voor rundercarpaccio? Hetzelfde wat?
Alias file, oftewel of je naar user@a.com of user@b.com stuurt maakt niet uit.
[...]


Wat doet de router hubbed_hosts? Welke router gebruikt a.com dan? Indien verschillend, waarom gebruikt b.com die andere router? Test beide domeinen met
exim -dd -bt example@a.com
en vergelijk de verschillen
hubbed_hosts:
code:
1
b.com: a.com


Misschien probeer ik even die entry eruit te verwijderen, exim zou toch voor beide domeinen moeten accepteren.

exim -dd -bt user@a.com


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
Exim version 4.69 uid=0 gid=0 pid=18965 D=fbb95cfd
Berkeley DB: Berkeley DB 4.6.21: (September 27, 2007)
Support for: crypteq iconv() IPv6 PAM Perl Expand_dlfunc GnuTLS move_frozen_messages Content_Scanning Old_Demime
Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb dsearch ldap ldapdn ldapm mysql nis nis0 passwd pgsql sqlite
Authenticators: cram_md5 cyrus_sasl dovecot plaintext spa
Routers: accept dnslookup ipliteral iplookup manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
changed uid/gid: forcing real = effective
  uid=0 gid=0 pid=18965
  auxiliary group list: <none>
seeking password data for user "uucp": cache not available
getpwnam() succeeded uid=10 gid=10
configuration file is /var/lib/exim4/config.autogenerated
log selectors = 00000ffc 00612001
trusted user
admin user
seeking password data for user "ecartis": cache not available
getpwnam() succeeded uid=111 gid=112
seeking password data for user "ecartis": using cached result
getpwnam() succeeded uid=111 gid=112
seeking password data for user "mail": cache not available
getpwnam() succeeded uid=8 gid=8
user name "root" extracted from gecos field "root"
originator: uid=0 gid=0 login=root name=root
sender address = root@a.com
Address testing: uid=0 gid=102 euid=0 egid=102
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Testing user@a.com
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Considering user@a.com
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
routing user@a.com
--------> hubbed_hosts router <--------
local_part=user domain=a.com
checking domains
search_open: lsearch "/etc/exim4/hubbed_hosts"
search_find: file="/etc/exim4/hubbed_hosts"
  key="a.com" partial=2 affix=*. starflags=0
LRU list:
  ;/etc/exim4/hubbed_hosts
  End
internal_search_find: file="/etc/exim4/hubbed_hosts"
  type=lsearch key="a.com"
file lookup required for a.com
  in /etc/exim4/hubbed_hosts
lookup failed
trying partial match *.a.com
internal_search_find: file="/etc/exim4/hubbed_hosts"
  type=lsearch key="*.a.com"
file lookup required for *.a.com
  in /etc/exim4/hubbed_hosts
lookup failed
a.com in "partial-lsearch;/etc/exim4/hubbed_hosts"? no (end of list)
hubbed_hosts router skipped: domains mismatch
--------> dnslookup_relay_to_domains router <--------
local_part=user domain=a.com
checking domains
a.com in "@:localhost:a.com:b.com:c.com"? yes (matched "a.com")
a.com in "! +local_domains : +relay_to_domains"? no (matched "! +local_domains")
dnslookup_relay_to_domains router skipped: domains mismatch
--------> dnslookup router <--------
local_part=user domain=a.com
checking domains
cached yes match for +local_domains
cached lookup data = NULL
a.com in "! +local_domains"? no (matched "! +local_domains" - cached)
dnslookup router skipped: domains mismatch
--------> real_local router <--------
local_part=user domain=a.com
real_local router skipped: prefix mismatch
--------> system_aliases router <--------
local_part=user domain=a.com
checking domains
cached yes match for +local_domains
cached lookup data = NULL
a.com in "+local_domains"? yes (matched "+local_domains" - cached)
R: system_aliases for user@a.com
calling system_aliases router
rda_interpret (string): ${lookup{$local_part}lsearch{/etc/aliases.a.com}}
search_open: lsearch "/etc/aliases.a.com"
search_find: file="/etc/aliases.a.com"
  key="user" partial=-1 affix=NULL starflags=0
LRU list:
  ;/etc/aliases.a.com
  ;/etc/exim4/hubbed_hosts
  End
internal_search_find: file="/etc/aliases.a.com"
  type=lsearch key="user"
file lookup required for user
  in /etc/aliases.a.com
lookup failed
expanded:
file is not a filter file
parse_forward_list:
system_aliases router declined for user@a.com
--------> system_aliases_generated router <--------
local_part=user domain=a.com
checking domains
cached yes match for +local_domains
cached lookup data = NULL
a.com in "+local_domains"? yes (matched "+local_domains" - cached)
R: system_aliases_generated for user@a.com
calling system_aliases_generated router
rda_interpret (string): ${lookup{$local_part}lsearch{/etc/aliases.a.com.generated}}
search_open: lsearch "/etc/aliases.a.com.generated"
search_find: file="/etc/aliases.a.com.generated"
  key="user" partial=-1 affix=NULL starflags=0
LRU list:
  ;/etc/aliases.a.com.generated
  ;/etc/aliases.a.com
  ;/etc/exim4/hubbed_hosts
  End
internal_search_find: file="/etc/aliases.a.com.generated"
  type=lsearch key="user"
file lookup required for user
  in /etc/aliases.a.com.generated
lookup failed
expanded:
file is not a filter file
parse_forward_list:
system_aliases_generated router declined for user@a.com
--------> ecartis_aliases router <--------
local_part=user domain=a.com
checking domains
cached yes match for +local_domains
cached lookup data = NULL
a.com in "+local_domains"? yes (matched "+local_domains" - cached)
R: ecartis pipe!
calling ecartis_aliases router
rda_interpret (string): ${lookup{$local_part}lsearch{/var/lib/ecartis/aliases}}
search_open: lsearch "/var/lib/ecartis/aliases"
search_find: file="/var/lib/ecartis/aliases"
  key="user" partial=-1 affix=NULL starflags=0
LRU list:
  ;/var/lib/ecartis/aliases
  ;/etc/aliases.a.com.generated
  ;/etc/aliases.a.com
  ;/etc/exim4/hubbed_hosts
  End
internal_search_find: file="/var/lib/ecartis/aliases"
  type=lsearch key="user"
file lookup required for user
  in /var/lib/ecartis/aliases
lookup yielded: "|/usr/lib/ecartis/ecartis -s user"
expanded: "|/usr/lib/ecartis/ecartis -s user"
file is not a filter file
parse_forward_list: "|/usr/lib/ecartis/ecartis -s user"
extract item: |/usr/lib/ecartis/ecartis -s user
set transport address_pipe
ecartis_aliases router generated |/usr/lib/ecartis/ecartis -s user
  pipe, file, or autoreply
  errors_to=NULL transport=address_pipe
  uid=111 gid=112 home=NULL
routed by ecartis_aliases router
  envelope to: user@a.com
  transport: <none>
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Considering |/usr/lib/ecartis/ecartis -s user
user@a.com -> |/usr/lib/ecartis/ecartis -s user
  transport = address_pipe
search_tidyup called
>>>>>>>>>>>>>>>> Exim pid=18965 terminating with rc=0 >>>>>>>>>>>>>>>>


exim -dd -bt user@b.com


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
Exim version 4.69 uid=0 gid=0 pid=19135 D=fbb95cfd
Berkeley DB: Berkeley DB 4.6.21: (September 27, 2007)
Support for: crypteq iconv() IPv6 PAM Perl Expand_dlfunc GnuTLS move_frozen_messages Content_Scanning Old_Demime
Lookups: lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb dsearch ldap ldapdn ldapm mysql nis nis0 passwd pgsql sqlite
Authenticators: cram_md5 cyrus_sasl dovecot plaintext spa
Routers: accept dnslookup ipliteral iplookup manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
changed uid/gid: forcing real = effective
  uid=0 gid=0 pid=19135
  auxiliary group list: <none>
seeking password data for user "uucp": cache not available
getpwnam() succeeded uid=10 gid=10
configuration file is /var/lib/exim4/config.autogenerated
log selectors = 00000ffc 00612001
trusted user
admin user
seeking password data for user "ecartis": cache not available
getpwnam() succeeded uid=111 gid=112
seeking password data for user "ecartis": using cached result
getpwnam() succeeded uid=111 gid=112
seeking password data for user "mail": cache not available
getpwnam() succeeded uid=8 gid=8
user name "root" extracted from gecos field "root"
originator: uid=0 gid=0 login=root name=root
sender address = root@b.com
Address testing: uid=0 gid=102 euid=0 egid=102
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Testing user@b.com
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Considering user@b.com
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
routing user@b.com
--------> hubbed_hosts router <--------
local_part=user domain=b.com
checking domains
search_open: lsearch "/etc/exim4/hubbed_hosts"
search_find: file="/etc/exim4/hubbed_hosts"
  key="b.com" partial=2 affix=*. starflags=0
LRU list:
  ;/etc/exim4/hubbed_hosts
  End
internal_search_find: file="/etc/exim4/hubbed_hosts"
  type=lsearch key="b.com"
file lookup required for b.com
  in /etc/exim4/hubbed_hosts
lookup yielded: a.com
b.com in "partial-lsearch;/etc/exim4/hubbed_hosts"? yes (matched "partial-lsearch;/etc/exim4/hubbed_hosts")
R: hubbed_hosts for b.com
calling hubbed_hosts router
hubbed_hosts router called for user@b.com
  domain = b.com
search_open: lsearch "/etc/exim4/hubbed_hosts"
  cached open
search_find: file="/etc/exim4/hubbed_hosts"
  key="b.com" partial=2 affix=*. starflags=0
LRU list:
  ;/etc/exim4/hubbed_hosts
  End
internal_search_find: file="/etc/exim4/hubbed_hosts"
  type=lsearch key="b.com"
cached data used for lookup of b.com
  in /etc/exim4/hubbed_hosts
lookup yielded: a.com
original list of hosts = "a.com" options =
expanded list of hosts = "a.com" options =
set transport remote_smtp
finding IP address for a.com
doing DNS lookup
DNS lookup of a.com (AAAA) gave NO_DATA
returning DNS_NODATA
DNS lookup of a.com (A) succeeded
fully qualified name = a.com
a.com 130.161.82.228 mx=-1 sort=-304
queued for remote_smtp transport: local_part = user
domain = b.com
  errors_to=NULL
  domain_data=a.com localpart_data=NULL
routed by hubbed_hosts router
  envelope to: user@b.com
  transport: remote_smtp
  host a.com [130.161.82.228]
user@b.com
  router = hubbed_hosts, transport = remote_smtp
  host a.com [130.161.82.228]
search_tidyup called
>>>>>>>>>>>>>>>> Exim pid=19135 terminating with rc=0 >>>>>>>>>>>>>>>>

[ Voor 188% gewijzigd door dtech op 15-09-2010 12:42 ]


  • dtech
  • Registratie: Juni 2005
  • Laatst online: 19-09 15:37
b.com uit hubbed_hosts verwijderen lijkt gewerkt te hebben, maar ik vind het toch vreemd dat het daarvoor altijd wel werkte.

  • FiscBiker
  • Registratie: April 2003
  • Laatst online: 19:35
Waarschijnlijk is er in de configuratie iets veranderd in de volgorde van de routers. b.com werd gevonden in hubbed_hosts en begon daarom de mail door te sturen naar a.com (een machine van de TU Delft) die geen mail wil of kan ontvangen, vandaar de time-out.

Omdat a.com niet werd gevonden in hubbed_hosts werd er doorgezocht naar andere routers die matchen, dat kwam uit bij de router die de mail doorsluist naar ecartis. Ik neem aan dat beide mails nu terecht komen bij ecartis.

  • dtech
  • Registratie: Juni 2005
  • Laatst online: 19-09 15:37
Dat is het inderdaad. Ik weet ook waarom hij het niet kon vinden. a.com (zonder www) verwees naar de voorloper van de huidige site, die bij iemand (inderdaad bij een TU Delft huis) thuis stond. (Niet mijn idee, maar ik kan het in de groep niet voor elkaar krijgen het te veranderen). Alle subdomeinen en b.com verwijst echter naar de nieuwe server...
Pagina: 1