Postfix não tentando servidores secundários quando o tempo limite principal é esgotado

3

Parece que deveria ter sido perguntado antes, talvez eu esteja usando a linguagem errada, mas depois de 2 horas de pesquisa eu não consigo descobrir como consertar isso.

Eu tenho uma mensagem na minha fila de e-mail postfix de saída onde o servidor de e-mail principal está inativo ("Tempo limite da conexão esgotado" nos logs) e o postfix está nunca tentando o secundário ).

Ele repete várias vezes durante dias (configuração atual) e, em seguida, retorna, sem mencionar o servidor secundário.

Estou usando o postfix 2.8.

As únicas opções que parecem estar relacionadas a isso são smtp_skip_quit_response e smtp_skip_5xx_greeting (tenho certeza de que há mais, mas não tenho certeza do que é), mas como não há conexão com o servidor, não há código de resposta , e essas configurações estão corretas, eu acho (ambos definem sim).

O que eu quero que aconteça é que, se houver um problema na conexão com o primário, ele tentará se conectar ao secundário (parece óbvio que eu sei).

O outro item da nota é o registro A para a resolução principal (com falha) de vários endereços IP (é um registro A, não um CNAME).

Os logs se parecem com isso (com muito recorte de repetição):

Mar  2 02:00:04 postfix/qmgr[2672]: D78739817D8: from=<[email protected]>, size=24736, nrcpt=1 (queue active)
Mar  2 02:02:34 postfix/smtp[18263]: D78739817D8: to=<[email protected]>, relay=none, delay=294106, delays=293955/0.02/151/0, dsn=4.4.1, status=deferred (connect to mx1.example.com[192.0.2.4]:25: Connection timed out)
Mar  2 03:10:04 postfix/qmgr[2672]: D78739817D8: from=<[email protected]>, size=24736, nrcpt=1 (queue active)
Mar  2 03:12:35 postfix/smtp[22822]: D78739817D8: to=<[email protected]>, relay=none, delay=298306, delays=298156/0/151/0, dsn=4.4.1, status=deferred (connect to mx1.example.com[192.0.2.161]:25: Connection timed out)
Mar  2 04:20:04 postfix/qmgr[2672]: D78739817D8: from=<[email protected]>, size=24736, nrcpt=1 (queue active)
Mar  2 04:22:05 postfix/smtp[28734]: D78739817D8: to=<[email protected]>, relay=none, delay=302477, delays=302356/0.01/121/0, dsn=4.4.1, status=deferred (connect to mx1.example.com[192.0.2.152]:25: Connection timed out)
...
Mar  3 15:20:03 postfix/qmgr[16791]: D78739817D8: from=<[email protected]>, size=24736, nrcpt=1 (queue active)
Mar  3 15:22:34 postfix/smtp[20853]: D78739817D8: to=<[email protected]>, relay=none, delay=428506, delays=428355/0/151/0, dsn=4.4.1, status=deferred (connect to mx1.example.com[192.0.2.167]:25: Connection timed out)
Mar  3 16:30:03 postfix/qmgr[16791]: D78739817D8: from=<[email protected]>, size=24736, nrcpt=1 (queue active)
Mar  3 16:31:04 postfix/smtp[30310]: D78739817D8: to=<[email protected]>, relay=none, delay=432615, delays=432555/0/60/0, dsn=4.4.1, status=deferred (connect to mx1.example.com[192.0.2.236]:25: Network is unreachable)
Mar  3 16:31:04 postfix/qmgr[16791]: D78739817D8: from=<[email protected]>, status=expired, returned to sender
Mar  3 16:31:04 postfix/bounce[30772]: D78739817D8: sender non-delivery notification: 3036F14E0002
Mar  3 16:31:04 postfix/qmgr[16791]: D78739817D8: removed
    
por TrentDavis 06.03.2014 / 06:55

2 respostas

2

Isso me fez olhar na direção certa, a solução nesta instância era definir smtp_mx_address_limit = 20 em main.cf .

Para esclarecer, a configuração do domínio foi:

  • 2 registros MX (custo 10 e 20).
  • O primeiro registro MX tem 5 registros A.
  • O segundo registro MX tem 2 registros A.

O valor smtp_mx_session_limit padrão é 5, que você notará que corresponde ao número de registros A do registro MX principal, portanto, o Postfix nunca foi além dos primeiros 5 IPs. Configurar isso para qualquer valor maior que 5 teria ajudado nesse exemplo, mas para nossa configuração eu deixarei em algo um pouco maior para ajudar com o número de CDNs etc, que existem por aí nos dias de hoje.

Espero que alguém mais ache isso útil, pois não consegui encontrá-lo em nenhum outro lugar!

    
por 07.03.2014 / 09:20
0

Acho que você pode ter encontrado alguns limites internos do postfix, como Viktor na lista do postfix diz:

..with a static preference, Postfix may fail deliver mail to a 
reachable destination, just because enough IPv4 or enough IPv6 
addresses are dead.  Remember, Postfix tries a limited number of 
MX addresses per delivery. 

possivelmente, você também pode ter enviado um e-mail com êxito para um desses servidores nas últimas 24 horas, e o Postfix armazenará em cache registros MX bem-sucedidos.

Eu diria que você tem duas opções, liberar a fila postqueue -f , o que forçará o postfix a fazer outra pesquisa MX ou configurar um transporte temporário para esse domínio, usando o registro MX secundário como o transporte example.com smtp:secondary.mx.servername .

    
por 06.03.2014 / 12:04

Tags