O sendmail está armazenando em cache o DNS ou obtendo-o através de um método diferente do host / dig / nslookup?

4

Temos um servidor Linux rodando sendmail que retransmite e-mails através de nosso servidor de e-mail principal, mas desde a mudança de servidores DNS na semana passada, o tempo limite foi conectado ao nosso servidor de e-mail. Após investigação adicional, /var/log/maillog mostra linhas como as seguintes, incl. o endereço IP incorreto para o servidor de e-mail:

Apr  4 15:37:32 yip sendmail[20583]: p34JVgLE020540: to=<[email protected]>, ctladdr=<[email protected]> (0/0), delay=00:05:50, xdelay=00:02:00, mailer=esmtp, pri=258071, relay=mailserver.domain.tld. [xxx.xxx.xxx.xxx], dsn=4.0.0, stat=Deferred: Connection timed out with mailserver.domain.tld.

Agora, atualizamos os servidores DNS do servidor linux na semana passada junto com a migração editando /etc/resolv.conf . A execução de dig mailserver.domain.tld , host mailserver.domain.tld ou nslookup mailserver.domain.tld no servidor linux resulta no retorno do endereço IP correto. Onde o sendmail poderia estar obtendo / armazenando em cache o endereço IP incorreto e como posso resolver esse problema?

    
por morgant 04.04.2011 / 22:00

3 respostas

2
  • Reinicie sendmail .
  • Reinicie o nscd (se estiver em uso no sistema).

Verifique também se você tem as entradas do registro MX corretas. O Sendmail conta com a pesquisa do MX.

Teste dig mx domain.tld e veja se isso resulta no host correto. Se não, você pode forçar o sendmail a entregar e-mails destinados a um domínio em particular usando o arquivo mailertable normalmente encontrado em / etc / mail /.

Uma entrada típica de mailertable se parece com:

xxx.com esmtp:[192.168.1.2]

Onde "xxx.com" é o domínio e o IP para entrega é explicitamente declarado.

    
por 04.04.2011 / 22:07
5

O sendmail faz armazenar em cache informações sobre o status de um host antes de consultar novamente o DNS. Tweaking Timeout.hoststatus pode mudar isso, mas, novamente, reiniciar o sendmail para o seu caso em particular é o caminho a seguir (em vez de esperar que o tempo limite expire).

    
por 05.04.2011 / 08:59
1

O Sendmail não faz cache em si, ele depende do servidor de nomes local.

Há algumas coisas que vale a pena conferir, embora você provavelmente já tenha feito isso:

  • Verifique se o / etc / hosts não tem entradas para o servidor de retransmissão, o que terá precedência sobre o DNS
  • Verifique as opções do resolvedor do Sendmail para ver se ele está realmente definido como use DNS
  • Certifique-se de que /etc/resolv.conf esteja apenas apontando para servidores DNS atualizados, e um deles ainda não está retornando o valor antigo. Faça isso manualmente executando o nslookup e digitando "server 1.2.3.4" para cada servidor DNS, lembre-se de que ele pode retornar 2 IPs diferentes em consultas repetidas se estiver configurado para ter entradas duplicadas. Eu já vi isso muitas vezes.

Eu sei que todos são bem básicos, mas é fácil para um administrador muito apressado cometer um erro simples como um desses.

    
por 04.04.2011 / 22:30