Назад | Перейти на главную страницу

DNS не разрешается так же, как хост

У нас есть хост OSX и бродячий экземпляр ubuntu 10.04, работающий на виртуальном боксе. При попытке отправить электронное письмо на адрес 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 не разрешаются таким же образом. Я поискал в Интернете и нашел ответы, в которых нам предлагалось добавить следующий бродячий файл:

  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)

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

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

Параметры natdns Vagrantfile, которые работают для нас (Vagrant 1.6.3, протестирован на OSX (с использованием VirtualBox 4.3.14) и Windows8 (с использованием Virtual Box 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 виртуальных боксов для поиска mx кажется некорректным / сломанным / нестабильным - если вы отключите его, vm будет использовать IP-адреса, которые хост использует для DNS, а не пытаться проксировать их через 10.0.2.3 - et voila вы получаете полные mx-записи из DNS (по крайней мере, мы).

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