Re: Over-eager sender_reject

Page principale
Supprimer ce message
Répondre à ce message
Auteur: Philip Hazel
Date:  
À: Nigel Metheringham
CC: exim-users
Sujet: Re: Over-eager sender_reject
On Thu, 24 Apr 1997, Nigel Metheringham wrote:

> 1997-04-23 03:39:23 0wJrxq-0003Vs-00 rejected from dfw-ix5.ix.netcom.com
> [206.214.98.5]: cannot route to sender <***@grasmick.com>
> ---------------------------------------------------------------------------
> ---
> 1997-04-21 02:52:22 rejected MAIL FROM: cannot route to sender
> <remove@???> H=cyber [209.47.21.66]
> ---------------------------------------------------------------------------
>
> All of the domains have valid MX records. The DNS is correctly configured
> (its a caching only server, so will work its way from the root servers,
> and the root cache into is correct - hopefully the root servers are even
> working currently)


Did you check that *all* the nameservers for those domains contain the
MX records? Don't bother ... I checked, and they do. But in the past
I've been caught by one server being incorrect, so *some* of the time
the name appears not to exist.

> It could be that some rogue name server somehow got in there and gave a
> NXDOMAIN or similar... but it looks to me as though exim isn't quite
> getting the difference between "I am not sure" and "This domain is
> invalid". However there are some other entries which have an "unable to
> resolve" which exim has allowed through...


The code reads:

dns_answerlen = res_search(name, C_IN, type, dns_answer, MAXPACKET);      


if (dns_answerlen < 0) switch (h_errno)                                       
  {                                                                            
  case HOST_NOT_FOUND:                                                    
  DEBUG(8) debug_printf("DNS lookup of %s (%s) gave HOST_NOT_FOUND\n",          
    name, dns_text_type(type));                                                
  return DNS_NOMATCH;                                                    


  case TRY_AGAIN:                                                          
  DEBUG(8) debug_printf("DNS lookup of %s (%s) gave TRY_AGAIN\n",              
    name, dns_text_type(type));                                               
  return DNS_AGAIN;                                                           


  case NO_RECOVERY:
  DEBUG(8) debug_printf("DNS lookup of %s (%s) gave NO_RECOVERY\n",
    name, dns_text_type(type));
  return DNS_FAIL;


  case NO_DATA:
  DEBUG(8) debug_printf("DNS lookup of %s (%s) gave NO_DATA\n",
    name, dns_text_type(type));
  return DNS_NOMATCH;


  default:
  DEBUG(8) debug_printf("DNS lookup of %s (%s) gave unknown DNS error %d\n",
    name, dns_text_type(type), h_errno);
  return DNS_FAIL;
  }


Do you think that perhaps something gave NO_DATA? (I'm not quite sure
what that means). Hmm. Looking at the callers of this function, I see
that one of them tries again on DNS_FAIL and another one fails. That
in itself is a bit strange...


-- 
Philip Hazel                   University Computing Service,
ph10@???             New Museums Site, Cambridge CB2 3QG,
P.Hazel@???          England.  Phone: +44 1223 334714