O tempo limite do seu e-mail pode ser devido ao seu daemon experimentando o IPv6 primeiro.
A implementação da pilha IPv6 por padrão tem prioridade sobre a pilha IPv4; assim, quando programas / daemons tentam se comunicar, tentarão usar o endereço IPv6 quando o destino tiver endereços IPv4 e IPv6 públicos .
Mesmo que você não tenha IPv6 público, você tem um host local IPv6 e vincula endereços locais.
Não seria a primeira vez, e provavelmente não o último tempo, que eu detectaria os daemons da Internet tentando primeiro o endereço local do link como endereço IP de origem para se comunicar com outro endereço, e somente após o tempo limite, se eles ainda tiverem tempo / tentativas alocados, pode voltar a enviar os dados para o destino IPv4. (No passado, eu já tinha problemas de DNS e email devido a isso em um ISP que eu costumava executar.)
Portanto, para o exim, é possível desabilitar o IPv6 no nível do aplicativo / daemon, usando a diretiva disable_ipv6=true
em /etc/exim4/exim4.conf.template
ou /etc/exim4/update-exim4.conf.conf
dependendo se você está usando o esquema de configuração não dividido ou dividido.
De Exim Internet Mailer-Capítulo 14 - Configuração principal
disable_ipv6 Use: main Type: boolean Default: false
If this option is set true, even if the Exim binary has IPv6 support, no IPv6 activities take place. AAAA records are never looked up, and any IPv6 addresses that are listed in local_interfaces, data for the manualroute router, etc. are ignored. If IP literals are enabled, the ipliteral router declines to handle IPv6 literal addresses.
Uma abordagem alternativa também pode vinculá-lo apenas a endereços IPv4, mas a desvantagem é ter que codificar os endereços IPv4 na configuração:
local_interfaces = <; 127.0.0.1 ; \
192.168.23.65
Quanto ao próprio sistema, como você não está usando ativamente o IPv6:
adicione como a última linha para dar prioridade por padrão ao IPv4, ao arquivo /etc/gai.conf
precedence ::ffff:0:0/96 100
Adicione a /etc/sysctl.conf
para desabilitar por padrão a pilha IPv6 (configuração suportada do kernel 3 em diante):
net.ipv6.conf.all.disable_ipv6=1
O sysctl será aplicado no momento da inicialização. Para ativá-lo antes de inicializar, faça:
sudo sysctl -p
Enquanto eles chamam de desativação IPv6, o módulo ainda está carregado e, embora as interfaces não tenham mais endereços IPv6, você ainda pode ver os aplicativos conectados aos soquetes IPv6. Você também pode passar para o kernel uma opção para desabilitar o IPv6, e o módulo do kernel IPv6 não será carregado. Editando /etc/default/grub
:
GRUB_CMDLINE_LINUX="ipv6.disable=1"
E, em seguida, para aplicá-lo, se você tiver o grub (sua partição do grub pode variar ou você pode não tê-lo; não tenho em meus servidores ARM e tenho que editar outro arquivo para as opções do kernel):
sudo update-grub
sudo grub-install /dev/sda
Você pode ter que configurar um ou outro daemon para desabilitar o IPv6 no nível do aplicativo (na parte superior da minha cabeça, xinetd
, se você o instalou).