DNS不能parsing为主机

我们有一个OSX主机和一个在virtualbox上运行的Ubuntu 10.04 vagrant实例。 在尝试向emailtests.com发送电子邮件(用于电子邮件testing)时,我们注意到DNS没有正确parsing。

所以我们试图在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 

stream浪汉

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

正如你所看到的MXlogging不解决相同的方式。 我环顾四周,发现答案告诉我们添加下面的stream浪文件:

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

我们已经有了。 我们仍然无法正确解决该地址和其他许多地址。 有关如何解决这个问题或缩小问题的任何想法?

注意:我们可以发送电子邮件到Gmail,并可以ping /挖一些域名。

更新,从stream浪者ifconfig

 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) 

看起来像configuration的DNS服务器,10.0.2.3,没有configuration做recursion查找。 你根本得不到答案。 使用一个可以进行recursion查找的DNS服务器,或者configuration你的服务器。

在今天早上看到同样的问题的时候,我偶然发现了这个问题。经过大量的Googlesearch/头部抓取后,我find了下面的解决scheme,这个解决scheme将会发送给将来会发生这个问题的任何人,并且会被卡住。

为我们工作的natdns Vagrantfile设置(Vagrant 1.6.3,在OSX(使用VirtualBox 4.3.14)和Windows8(使用Virtual Box 4.3.15 r95286 – 我的同事testing了4.3.14与windows8使用不同的无关的问题,所以使用一个testing版本似乎与stream浪者正常工作)

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

(绝对的第一行,你可能不需要以下两个,我已经包括他们只是在实验时切换到他们 – 我只有--natdnsproxy1--natdnshostresolver1在我的Vagrantfile都设置为closures)。

原因似乎是,Vagrant默认--natdnsproxy1为on,virtualboxs为mx查找的代理DNS似乎有缺陷/破碎/ flakey – 如果您将其设置为closures,vm将使用主机用于DNS的IP地址,而不是试图通过10.0.2.3代理它们 – 等你从DNS获得完整的mxlogging(或者至less我们这样做)。

(为了一点谷歌search的好处,我所有这一切的原因是,电子邮件没有被发送到从stream浪者运行Centos 6.5的某些域 – 我们可以看到sendmail响应错误:503“这个邮件服务器需要身份validation当试图发送到非本地电子邮件地址…“,然后我们发现,做一个dig mydomain.com mx是返回域的Alogging,而不是预期的MX邮件的一个,它build议一个DNS查找与Vagrant / VirtualBox问题)。