DNS no se resuelve igual que el host

DNS no se resuelve igual que el host

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 --natdnsproxy1ambas --natdnshostresolver1en 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 mxse 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).

información relacionada