Temos um host OSX e uma instância vagrant do Ubuntu 10.04 rodando no VirtualBox. Ao tentar enviar um e-mail para emailtests.com (para fins de teste de e-mail), percebemos que o DNS não estava sendo resolvido adequadamente.
Então tentamos seguir o comando no OSX e em nossa instância do Vagrant:dig -tMX emailtests.com
OSX
; <<>> DiG 9.8.3-P1 <<>> -tMX emailtests.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39364
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 3
;; QUESTION SECTION:
;emailtests.com. IN MX
;; ANSWER SECTION:
emailtests.com. 300 IN MX 10 litmus-smtp-in-392690123.us-east-1.elb.amazonaws.com.
;; AUTHORITY SECTION:
emailtests.com. 172711 IN NS ns-1596.awsdns-07.co.uk.
emailtests.com. 172711 IN NS ns-215.awsdns-26.com.
emailtests.com. 172711 IN NS ns-1288.awsdns-33.org.
emailtests.com. 172711 IN NS ns-964.awsdns-56.net.
;; ADDITIONAL SECTION:
ns-964.awsdns-56.net. 158810 IN A 205.251.195.196
ns-1288.awsdns-33.org. 158499 IN A 205.251.197.8
ns-1596.awsdns-07.co.uk. 72461 IN A 205.251.198.60
;; Query time: 74 msec
;; SERVER: 184.73.189.33#53(184.73.189.33)
;; WHEN: Mon Sep 9 13:15:02 2013
;; MSG SIZE rcvd: 282
Vagabundo
; <<>> DiG 9.7.0-P1 <<>> -tMX emailtests.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 2227
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available
;; QUESTION SECTION:
;emailtests.com. IN MX
;; Query time: 104 msec
;; SERVER: 10.0.2.3#53(10.0.2.3)
;; WHEN: Mon Sep 9 13:09:42 2013
;; MSG SIZE rcvd: 32
Como você pode ver, os registros MX não estão sendo resolvidos da mesma maneira. Procurei on-line e encontrei respostas nos dizendo para adicionar o seguinte arquivo vagrant:
config.vm.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
config.vm.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
config.vm.customize ["modifyvm", :id, "--natdnspassdomain1", "on"]
O que já tínhamos. Ainda não conseguimos resolver esse endereço e provavelmente muitos outros endereços de maneira adequada. Alguma idéia sobre como resolver isso ou restringir o problema?
Observação: podemos enviar e-mail para o Gmail e fazer ping/cavar alguns domínios.
ATUALIZAÇÃO, ifconfig do vagrant
eth0 Link encap:Ethernet HWaddr 08:00:27:36:71:5f
inet addr:10.0.2.15 Bcast:10.0.2.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe36:715f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:38137 errors:0 dropped:0 overruns:0 frame:0
TX packets:26845 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:18987844 (18.9 MB) TX bytes:6605246 (6.6 MB)
eth1 Link encap:Ethernet HWaddr 08:00:27:80:07:aa
inet addr:192.168.42.3 Bcast:192.168.42.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe80:7aa/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:8294812 errors:0 dropped:0 overruns:0 frame:0
TX packets:4509692 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:1871276346 (1.8 GB) TX bytes:1268188839 (1.2 GB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:815216 errors:0 dropped:0 overruns:0 frame:0
TX packets:815216 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:371105283 (371.1 MB) TX bytes:371105283 (371.1 MB)
Responder1
Parece que o servidor DNS configurado, 10.0.2.3, não está configurado para fazer pesquisas recursivas. Você não obtém resposta alguma. Use um servidor DNS que possa fazer pesquisas recursivas ou configure o seu para poder fazer isso.
Responder2
Eu me deparei com isso enquanto olhava para o mesmo problema esta manhã, e depois de muito pesquisar no Google/coçar a cabeça, encontrei a seguinte solução, que postarei para qualquer pessoa que tenha esse problema no futuro e fique preso.
As configurações do natdns Vagrantfile que funcionam para nós (Vagrant 1.6.3, testado no OSX (usando VirtualBox 4.3.14) e Windows8 (usando Virtual Box 4.3.15 r95286 - meu colega teve um problema diferente não relacionado ao usar 4.3.14 com windows8, então está usando uma versão beta que parece funcionar corretamente com o vagrant)
config.vm.customize ["modifyvm", :id, "--natdnsproxy1", "off"]
config.vm.customize ["modifyvm", :id, "--natdnshostresolver1", "off"]
config.vm.customize ["modifyvm", :id, "--natdnspassdomain1", "off"]
(definitivamente a primeira linha, você pode não precisar das duas seguintes, eu as incluí caso você as tenha ligado enquanto experimentava - eu apenas --natdnsproxy1
e --natdnshostresolver1
no meu Vagrantfile ambos desligados).
O motivo parece ser que o Vagrant está ativado --natdnsproxy1
por padrão, e o DNS proxy dos virtualboxs para pesquisas mx parece falho/quebrado/flakey - se você desativá-lo, a VM usará os endereços IP que o host usa para o DNS em vez de tentar fazer proxy eles via 10.0.2.3 - e pronto, você obtém os registros mx completos do DNS (ou pelo menos nós).
(Por um pouco de bondade na pesquisa no Google, a razão pela qual cheguei a tudo isso foi que os e-mails não estavam sendo enviados para determinados domínios do vagrant executando o Centos 6.5 - pudemos ver que o sendmail estava respondendo com o erro: 503 "Este servidor de e-mail requer autenticação ao tentar enviar para um endereço de e-mail não local..." , e então descobrimos que fazer a dig mydomain.com mx
estava retornando o registro A do domínio em vez dos registros MX esperados, o que sugeria um problema de pesquisa de DNS com Vagrant / VirtualBox).