Hello esteemed colleagues,
I'm looking at an issue receiving messages from one particular site.
Exim is refusing to accept the message, after the incoming connection
fails a reverse lookup test. The site claims they sometimes get this
problem sending to other sites, but ours is most prevalent.
As far as I can see from debugging, the resolver is behaving strangely,
but I do not understand why, and I know there are cleverer minds here.
OS is FreeBSD 7.2 on these hosts, in case that's relevant.
Here's some of the exim debugging output when I fake a session with exim
-bh:
DNS lookup of 5.131.80.194.in-addr.arpa (PTR) succeeded
IP address lookup yielded uwrz46.wales.ac.uk
alias ezproxy.wales.ac.uk
alias ezproxy2.wales.ac.uk
alias *.test.wales.ac.uk
alias *.ezproxy.wales.ac.uk
alias *.ezproxy2.wales.ac.uk
alias test.wales.ac.uk
alias cymru.ac.uk
alias wales.ac.uk
alias uwrz05.cymru.ac.uk
alias uwrz15.wales.ac.uk
alias uwrz46.cymru.ac.uk
gethostbyname2(af=inet6) returned 4 (NO_DATA)
gethostbyname2 looked up these IP addresses:
name=uwrz46.wales.ac.uk address=194.80.131.5
checking addresses for uwrz46.wales.ac.uk
194.80.131.5 OK
gethostbyname2(af=inet6) returned 4 (NO_DATA)
gethostbyname2 looked up these IP addresses:
name=ezproxy.wales.ac.uk address=194.80.131.5
checking addresses for ezproxy.wales.ac.uk
194.80.131.5 OK
gethostbyname2(af=inet6) returned 4 (NO_DATA)
gethostbyname2 looked up these IP addresses:
name=ezproxy2.wales.ac.uk address=194.80.131.5
checking addresses for ezproxy2.wales.ac.uk
194.80.131.5 OK
gethostbyname2(af=inet6) returned 4 (NO_DATA)
gethostbyname2(af=inet) returned 3 (NO_RECOVERY)
no IP address found for host *.test.wales.ac.uk (during SMTP connection
from [194.80.131.5])
*.test.wales.ac.uk in dns_again_means_nonexist? no (option unset)
temporary error for host name lookup
Cranking debugging a bit higher:
;; res_nquerydomain(*.test.wales.ac.uk, <Nil>, 1, 1)
;; res_query(*.test.wales.ac.uk, 1, 1)
;; res_nmkquery(QUERY, *.test.wales.ac.uk, IN, A)
;; res_send()
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53692
;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; *.test.wales.ac.uk, type = A, class = IN
;; Querying server (# 1) address = 127.0.0.1
;; new DG socket
;; got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53692
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2
;; *.test.wales.ac.uk, type = A, class = IN
*.test.wales.ac.uk. 41m45s IN A 194.80.131.5
wales.ac.uk. 14h54m59s IN NS uwrz02.wales.ac.uk.
wales.ac.uk. 14h54m59s IN NS uwrz04.wales.ac.uk.
uwrz02.wales.ac.uk. 41m45s IN A 194.80.131.2
uwrz04.wales.ac.uk. 41m45s IN A 194.80.131.6
10:39:58 23259 gethostbyname2(af=inet) returned 3 (NO_RECOVERY)
So an answer is returned, but for some reason the name lookup library
function returns NO_RECOVERY, which exim then interprets as a failure.
Can anyone explain this behaviour?
Ta,
Jethro.
. . . . . . . . . . . . . . . . . . . . . . . . .
Jethro R Binks, Network Manager,
Information Services Directorate, University Of Strathclyde, Glasgow, UK
The University of Strathclyde is a charitable body, registered in
Scotland, number SC015263.