Eu tenho o postfix rodando no OpenBSD, e estou tendo problemas para anexar um domínio de busca quando nenhum está configurado no postfix ou no servidor DNS local (dnsmasq).
Meu domínio tem uma entrada CNAME curinga ( *.example.com
) apontando para myhost.example.com
.
Eu sei que normalmente, para fazer com que ele se comporte dessa forma, eu teria uma entrada 'search' no meu resolv.conf, mas não tenho essa entrada. Meu /etc/resolv.conf
contém:
nameserver 127.0.0.1
nameserver <my ISP's DNS 1>
nameserver <my ISP's DNS 2>
O dnsmasq sabe ignorar a entrada localhost (e diz isso nos logs), mas isso significa que outros serviços procuram no dnsmasq. O dnsmasq está usando apenas a configuração padrão, sem nenhuma alteração.
Se eu ativar o registro no dnsmasq, recebo entradas como esta:
Dec 15 10:39:56 mail dnsmasq[640]: query[A] ncwfood.com from 127.0.0.1
Dec 15 10:39:56 mail dnsmasq[640]: forwarded ncwfood.com to <my ISP's DNS 1>
Dec 15 10:39:56 mail dnsmasq[640]: reply ncwfood.com is NXDOMAIN-IPv4
Dec 15 10:39:56 mail dnsmasq[640]: query[AAAA] ncwfood.com from 127.0.0.1
Dec 15 10:39:56 mail dnsmasq[640]: forwarded ncwfood.com to <my ISP's DNS 1>
Dec 15 10:39:56 mail dnsmasq[640]: reply ncwfood.com is NXDOMAIN-IPv6
Isso é tudo correto para uma pesquisa com falha, e o dnsmasq está fazendo o que deveria. Então o postfix faz isso:
Dec 15 10:39:56 mail dnsmasq[640]: query[A] ncwfood.com.example.com from 127.0.0.1
Dec 15 10:39:56 mail dnsmasq[640]: forwarded ncwfood.com.example.com to <my ISP's DNS 1>
Dec 15 10:39:56 mail dnsmasq[640]: reply myhost.example.com is <my IP>
Dec 15 10:39:56 mail dnsmasq[640]: query[AAAA] ncwfood.com.example.com from 127.0.0.1
Dec 15 10:39:56 mail dnsmasq[640]: cached ncwfood.com.example.com is <CNAME>
Dec 15 10:39:56 mail dnsmasq[640]: cached myhost.example.com is 2001:4b98:...
Ele anexa meu domínio, faz uma pesquisa, corresponde ao curinga e acaba apontando para onde não deveria. Se eu emitir pesquisas de nome diretamente para dnsmasq (por exemplo, com dig @localhost ...
), ele não faz essas pesquisas extras, então é definitivamente o postfix que está fazendo isso.
Na configuração do meu postfix eu o configurei para adiar para o serviço DNS do sistema (dnsmasq), não para usar seu próprio resolvedor dns e não para anexar um domínio de pesquisa, assim:
lmtp_host_lookup = native
smtp_host_lookup = native
smtp_dns_resolver_options =
disable_dns_lookups = yes
ignore_mx_lookup_error = no
A diretiva 'native' está claramente funcionando, já que estou vendo as pesquisas nos logs do dnsmasq. De acordo com os documentos, parece que smtp_dns_resolver_options está agindo como se estivesse definido como res_dnsrch
, mas é não (está em branco).
Este é o meu log de postfix da mesma transação de mensagem:
Dec 15 10:40:26 mail postfix/smtp[29517]: connect to ncwfood.com[46....]:25: Connection timed out
Dec 15 10:40:26 mail postfix/smtp[29517]: connect to ncwfood.com[2001:4b98:...]:25: No route to host
Dec 15 10:40:26 mail postfix/smtp[29517]: 22F8A3A4F0F: to=<[email protected]>, relay=none, delay=168442, delays=168412/0.33/30/0, dsn=4.4.1, status=deferred (connect to ncwfood.com[2001:4b98:...]:25: No route to host)
O endereço ao qual ele está tentando se conectar é meu host curinga que não está executando um servidor de e-mail, portanto, as falhas de conexão.
Eu encontrei uma nota informando que o postfix usado para anexar domínios automaticamente, mas que foi interrompido na versão 2.8; Estou correndo 2.10.
Como posso impedir que o postfix faça essas pesquisas?