DNSがホストと同じに解決されない

DNSがホストと同じに解決されない

OSX ホストと、VirtualBox 上で実行されている Ubuntu 10.04 Vagrant インスタンスがあります。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 にメールを送信でき、一部のドメインを ping/dig できます。

アップデート、vagrant からの 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)

答え1

設定された DNS サーバー 10.0.2.3 は、再帰ルックアップを行うように設定されていないようです。まったく応答がありません。再帰ルックアップを実行できる DNS サーバーを使用するか、再帰ルックアップを実行できるように DNS サーバーを設定してください。

答え2

今朝、同じ問題を調べているときに偶然これに出くわし、グーグル検索や頭を悩ませた後、次の解決策にたどり着きました。今後、この問題に遭遇して困っている人のために、この解決策を投稿します。

弊社で機能する 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"]

(最初の行は必ず必要ですが、次の 2 行は必要ないかもしれません。実験中にオンに切り替えた場合に備えて含めておきました。私の Vagrantfile では、 と の--natdnsproxy1両方--natdnshostresolver1をオフに設定しています)。

理由は、Vagrant がデフォルト--natdnsproxy1でオンになっており、mx ルックアップ用の virtualboxs のプロキシ DNS に欠陥がある/壊れている/不安定であるように見えるためと思われます。これをオフに設定すると、vm は 10.0.2.3 経由でプロキシを試行するのではなく、ホストが DNS に使用する IP アドレスを使用します。すると、DNS から完全な MX レコードが取得されます (少なくとも私たちはそうしています)。

(Google で少し調べてみると、私がこの件にたどり着いた理由は、Centos 6.5 を実行している Vagrant から特定のドメインにメールが送信されていなかったことです。sendmail がエラー 503「このメール サーバーは、ローカル以外のメール アドレスに送信するときに認証が必要です...」で応答していることがわかりました。その後、を実行すると、dig mydomain.com mx予想される MX メール レコードではなく、ドメインの A レコードが返されることがわかりました。これは、Vagrant / VirtualBox の DNS ルックアップの問題を示唆しています)。

関連情報