挖(和其他工具)只返回Alogging

我一直在努力解决为什么PHP getmxrr()checkdnsrr()方法不能成功返回我使用的大量stream浪虚拟机中的工作域。

当进一步调查时,我尝试使用简单的dig命令,而我只能得到Alogging的答案。 别的什么都不会返回。

作为一个例子,下面是ANY查询的“正确的”ANSWER部分,其中显示了一个示例域(来自AWS托pipe服务器)的所有logging。 你可以看到他们至less有NSTXTAMXlogging:

Debian AWS VM:

 $ dig reiss.com ANY ; <<>> DiG 9.9.5-9+deb8u6-Debian <<>> reiss.com ANY ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65366 ;; flags: qr rd ra; QUERY: 1, ANSWER: 20, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;reiss.com. IN ANY ;; ANSWER SECTION: reiss.com. 55 IN NS ns2.dnsmadeeasy.com. reiss.com. 55 IN NS ns3.dnsmadeeasy.com. reiss.com. 55 IN NS ns4.dnsmadeeasy.com. reiss.com. 55 IN NS ns0.dnsmadeeasy.com. reiss.com. 55 IN NS ns1.dnsmadeeasy.com. reiss.com. 55 IN MX 1 reiss-com.mail.protection.outlook.com. reiss.com. 55 IN TXT "v=spf1 ip4:212.49.201.210 ip4:80.168.187.225 ip4:109.68.12.42 ip4:79.125.20.120 ip4:46.51.172.2 ip4:46.51.172.4 include:spf.protection.outlook.com include:spf.mandrillapp.com -all" reiss.com. 55 IN TXT "loaderio=44b80a8be72962eccbd8ad01b6bfcac7" reiss.com. 55 IN TXT "google-site-verification=vrc2bvxpw2quwligK1dYuIFG6SLPp6PsOj3FlbNKmmo" reiss.com. 55 IN TXT "globalsign-domain-verification=DxtJ51OaIp87_OgmKu-iPxmFMN4i0CvhJtymIzHDyK" reiss.com. 55 IN TXT "vzjt+g3yB76l1eAihRfinxKPdAJvcxO5AAXUVdOlnqDRjHA8l+fHdBKsUp+mrKeCB2GTaX4GCUpFo5PoYNvTgw==" reiss.com. 55 IN SOA ns0.dnsmadeeasy.com. dns.dnsmadeeasy.com. 2008025750 43200 3600 1209600 180 reiss.com. 55 IN A 52.85.142.187 reiss.com. 55 IN A 52.85.142.218 reiss.com. 55 IN A 52.85.142.227 reiss.com. 55 IN A 52.85.142.253 reiss.com. 55 IN A 52.85.142.33 reiss.com. 55 IN A 52.85.142.79 reiss.com. 55 IN A 52.85.142.108 reiss.com. 55 IN A 52.85.142.145 ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Sat Feb 18 12:48:12 UTC 2017 ;; MSG SIZE rcvd: 872 

虚拟机(Centos 7):

看我的stream浪虚拟机上的个人请求,但我得到:

 $ dig reiss.com A ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> reiss.com ANY ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32964 ;; flags: qr rd ra; QUERY: 1, ANSWER: 8, AUTHORITY: 0, ADDITIONAL: 0 ;; QUESTION SECTION: ;reiss.com. IN ANY ;; ANSWER SECTION: reiss.com. 3600 IN A 52.85.142.79 reiss.com. 3600 IN A 52.85.142.218 reiss.com. 3600 IN A 52.85.142.227 reiss.com. 3600 IN A 52.85.142.253 reiss.com. 3600 IN A 52.85.142.145 reiss.com. 3600 IN A 52.85.142.33 reiss.com. 3600 IN A 52.85.142.108 reiss.com. 3600 IN A 52.85.142.187 ;; Query time: 1 msec ;; SERVER: 10.0.2.3#53(10.0.2.3) ;; WHEN: Sat Feb 18 12:48:24 GMT 2017 ;; MSG SIZE rcvd: 155 

但是任何其他types的logging都不会返回:

 $ dig reiss.com MX ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> reiss.com MX ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOTIMP, id: 2267 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;reiss.com. IN MX ;; Query time: 0 msec ;; SERVER: 10.0.2.3#53(10.0.2.3) ;; WHEN: Sat Feb 18 14:52:15 GMT 2017 ;; MSG SIZE rcvd: 38 $ dig reiss.com TXT ; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> reiss.com TXT ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOTIMP, id: 24668 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;reiss.com. IN TXT ;; Query time: 0 msec ;; SERVER: 10.0.2.3#53(10.0.2.3) ;; WHEN: Sat Feb 18 14:53:36 GMT 2017 ;; MSG SIZE rcvd: 38 

这些命令在AWS服务器上以及在Mac OSX主机上的本地工作正常,似乎在我的Vagrant / Virtualbox虚拟机内部失败。

这个问题也影响到PHP,所以我不认为这与dig命令有什么关系。

有任何想法吗?

ANY工作方式是接收查询的服务器应该返回该名称的logging(无论types)。

这意味着,当指向cachingrecursion服务器时,通常只是返回caching中已有的任何内容(有效行为)。

即, ANY在实际生产中的使用都是有限的,但可以用于故障排除等。

在这里提供了有用的线索之后,我意识到以上是一个症状。 真正的问题是通过在NAT模式下运行networking适配器的Vagrant的DNS设置。

有更多的信息在这个职位: Vagrant / VirtualBox的DNS 10.0.2.3不工作 。

但是 ,这里的build议对我不起作用,我已经有了以下应用:

 vb.customize ["modifyvm", :id, "--natdnshostresolver1", "on"] 

我试图删除这个或另一个:

 vb.customize ["modifyvm", :id, "--natdnsproxy1", "on"] 

都没有工作。 我仍然会得到一个resolv.conf ,如下所示, dig将不能用于MXTXTSOAlogging:

 # Generated by NetworkManager search local nameserver 10.0.2.3 

我的(可能是肮脏的)解决scheme是禁用NetworkManager中的resolv.conf更新和DNS的硬编码谷歌。

/etc/NetworkManager/NetworkManager.conf:

 [main] dns=none 

在/etc/resolv.conf:

 search local nameserver 8.8.8.8 nameserver 10.0.2.3 

如果您更改networking适配器,则10.0.2.3不再是dynamic的,因此您需要小心,但是此解决方法为我完成了这项工作。

我相信有更好的方法,也许我应该使用桥接适配器,而不是…