Tenemos un host OSX y una instancia vagabunda de Ubuntu 10.04 ejecutándose en virtualbox. Al intentar enviar un correo electrónico a emailtests.com (para fines de prueba de correo electrónico), notamos que el DNS no se resolvía adecuadamente.
Entonces intentamos seguir el comando en OSX y nuestra instancia de 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 puede ver, los registros MX no se resuelven de la misma manera. Busqué en línea y encontré respuestas que nos decían que agreguemos lo siguiente al archivo vagabundo:
config.vm.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
config.vm.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
config.vm.customize ["modifyvm", :id, "--natdnspassdomain1", "on"]
Que ya teníamos. Todavía no podemos resolver esa dirección y probablemente muchas otras direcciones correctamente. ¿Alguna idea sobre cómo resolver esto o reducir el problema?
Nota: podemos enviar correos electrónicos a Gmail y hacer ping/excavar en algunos dominios.
ACTUALIZACIÓN, ifconfig de vagabundo
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)
Respuesta1
Parece que el servidor DNS configurado, 10.0.2.3, no está configurado para realizar búsquedas recursivas. No obtienes respuesta en absoluto. Utilice un servidor DNS que pueda realizar búsquedas recursivas o configure el suyo para poder hacerlo.
Respuesta2
Me topé con esto mientras miraba el mismo problema esta mañana, y después de mucho buscar en Google y rascarme la cabeza, se me ocurrió la siguiente solución, que publicaré para cualquiera que tenga este problema en el futuro y se quede atascado.
La configuración de natdns Vagrantfile que funciona para nosotros (Vagrant 1.6.3, probada en OSX (usando VirtualBox 4.3.14) y Windows8 (usando Virtual Box 4.3.15 r95286; mi colega tuvo diferentes problemas no relacionados al usar 4.3.14 con Windows8, así que está usando una versión beta que parece funcionar correctamente con vagrant)
config.vm.customize ["modifyvm", :id, "--natdnsproxy1", "off"]
config.vm.customize ["modifyvm", :id, "--natdnshostresolver1", "off"]
config.vm.customize ["modifyvm", :id, "--natdnspassdomain1", "off"]
(definitivamente la primera línea, es posible que no necesites las dos siguientes, las he incluido en caso de que las hayas activado mientras experimentas; acabo de desactivar --natdnsproxy1
ambas --natdnshostresolver1
en mi Vagrantfile).
La razón parece ser que Vagrant está activado de forma predeterminada --natdnsproxy1
, y el DNS proxy de virtualboxs para búsquedas de mx parece defectuoso/roto/flakey: si lo configura en desactivado, la máquina virtual usará las direcciones IP que el host usa para el DNS en lugar de intentar utilizar el proxy. ellos a través de 10.0.2.3 - y listo, obtendrá los registros mx completos de DNS (o al menos nosotros).
(Por un poco de bondad de búsqueda en Google, la razón por la que llegué a todo esto fue que no se enviaban correos electrónicos a ciertos dominios desde vagrant que ejecutaba Centos 6.5; pudimos ver que sendmail respondía con el error: 503 "Este servidor de correo requiere autenticación al intentar enviar a una dirección de correo electrónico no local...", y luego descubrimos que al hacer a dig mydomain.com mx
se devolvía el registro A del dominio en lugar de los de correo MX esperados, lo que sugería un problema de búsqueda de DNS con Vagrant / VirtualBox).