DNS не разрешает то же самое, что и хост

DNS не разрешает то же самое, что и хост

У нас есть хост OSX и экземпляр ubuntu 10.04 vagrant, работающий на virtualbox. При попытке отправить письмо на emailtests.com (для тестирования электронной почты) мы заметили, что DNS не разрешается должным образом.

Итак, мы попробовали выполнить следующую команду на OSX и нашем экземпляре 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

бродяга

; <<>> 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

Как вы видите, записи MX не разрешаются одинаково. Я поискал в интернете и нашел ответы, в которых говорилось, что нужно добавить следующее в файл vagrant:

  config.vm.customize ["modifyvm", :id, "--natdnsproxy1", "on"]
  config.vm.customize ["modifyvm", :id, "--natdnshostresolver1", "on"]
  config.vm.customize ["modifyvm", :id, "--natdnspassdomain1", "on"]

Который у нас уже был. Мы все еще не можем правильно разрешить этот адрес и, вероятно, многие другие адреса. Есть идеи, как решить это или сузить проблему?

Примечание: мы можем отправлять электронную почту на Gmail и можем пинговать/копать некоторые домены.

ОБНОВЛЕНИЕ, ifconfig от 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)

решение1

Похоже, настроенный DNS-сервер 10.0.2.3 не настроен на выполнение рекурсивных поисков. Вы вообще не получаете ответа. Используйте DNS-сервер, который может выполнять рекурсивные поиски, или настройте свой так, чтобы он мог это делать.

решение2

Я наткнулся на это, когда сегодня утром искал решение той же проблемы, и после долгих поисков и размышлений нашел следующее решение, которое я опубликую для тех, кто столкнется с этой проблемой в будущем и застрянет.

Настройки Vagrantfile natdns, которые у нас работают (Vagrant 1.6.3, протестировано на OSX (с использованием VirtualBox 4.3.14) и Windows8 (с использованием VirtualBox 4.3.15 r95286 — у моего коллеги была другая, не связанная с этим проблема при использовании 4.3.14 с Windows8, поэтому он использует бета-сборку, которая, похоже, работает правильно с Vagrant)

config.vm.customize ["modifyvm", :id, "--natdnsproxy1", "off"]
config.vm.customize ["modifyvm", :id, "--natdnshostresolver1", "off"]
config.vm.customize ["modifyvm", :id, "--natdnspassdomain1", "off"]

(определенно первая строка, следующие две вам могут не понадобиться, я включил их на всякий случай, если вы включили их во время эксперимента — я только что --natdnsproxy1и --natdnshostresolver1в своем Vagrantfile отключил обе).

Причина, по-видимому, в том, что Vagrant по умолчанию --natdnsproxy1включен, а прокси-DNS Virtualbox для поиска mx выглядит неисправным/сломанным/ненадежным. Если вы отключите его, виртуальная машина будет использовать IP-адреса, используемые хостом для DNS, а не пытаться проксировать их через 10.0.2.3. И вуаля, вы получаете полные записи mx из DNS (или, по крайней мере, мы это делаем).

(Чтобы немного погуглить, скажу, что причина, по которой я пришел ко всему этому, заключалась в том, что электронные письма не отправлялись на определенные домены с Vagrant под управлением Centos 6.5 — мы могли видеть, что Sendmail отвечал с ошибкой: 503 «Этот почтовый сервер требует аутентификации при попытке отправки на нелокальный адрес электронной почты...», а затем мы обнаружили, что выполнение a dig mydomain.com mxвозвращало запись A домена, а не ожидаемые записи MX, что указывало на проблему поиска DNS с Vagrant / VirtualBox).

Связанный контент