web-dev-qa-db-ja.com

外部DNSを使用しているときに、DigがDNSサーバーを127.0.0.1と報告するのはなぜですか?

私はunboundを使用し、通常はDNSサーバーとしてopenDNSを使用しています。

Dig google.comを実行すると、SERVER: 127.0.0.1#53(127.0.0.1)と表示されます。これは正確にポート#53でリッスンしているものですか?これはバインドされていませんか、それともdnsmasqと関係がありますか(dnsmasq.conf/etcにないように見えるので、dnsmasqもインストールされていますか?)

Resolv.confにはnameserver 127.0.0.1がありますが、ネットワークマネージャーでは、DNSサーバーが2つのopenDNSアドレスをポイントしています。ここで何が起こっているのでしょうか?ローカルネームサーバーはdnsmasqをポイントし、ネットワークマネージャーからの値を使用しますか?それとも実際に聞いているのは束縛されていないのですか?

12
fpghost

インストールされている場合、NetworkManagerはデフォルトでDNSリゾルバーとしてDnsmasqを使用します。これはDebianベースのシステムのデフォルトです。したがって、Dnsmasqはデフォルトの構成で実行され、コマンドラインオプションで指定されたアップストリームサーバー(および/etc/hostsの内容)に基づいて名前のみを解決します。そのファイルはオプションパッケージ dnsmasq にのみ存在するため、/etc/dnsmasq.confはありません。

システムが現在DNSクエリにDnsmasqまたはUnboundを使用しているかどうかを確認するには、netstat -ulnp | grep ":53 "を実行します。

Ubuntu 12.04では、NetworkManagerは他のDNSリゾルバーとうまく連携しません( bug 959037 を参照してください)== Thomas Hoodの要約 ほぼすべてをカバーしています)。 UnboundをNetworkManagerと一緒に実行し続けるには、NetworkManagerにDnsmasqを実行しないように指示することをお勧めします(NetworkManagerが使用しないDnsmasqの機能を使用している場合を除き、Unboundに加えて必要ありません)。それを行うには:

  1. /etc/NetworkManager/NetworkManager.confを編集して、dns=dnsmasqを含む行をコメント化します(その行の先頭に#を追加します)。
  2. service network-manager restartを使用してNetworkManagerを再起動します。

Ubuntu 12.04では、network-managerにハードコードされているため、dnsmasqがデフォルトで実行されるようになりました。デスクトップインストールでデフォルトでローカルリゾルバとしてdnsmasqを使用するこれは、このリリースの2番目の大きな変更です。デスクトップインストールでは、DNSサーバーはNetworkManagerが管理するdnsmasqサーバーを指す「127.0.0.1」になります。

SERVER: 127.0.0.1#53(127.0.0.1)

これは、ローカルDNS(DNSMASQ)からクエリのansを取得していることを意味します。

ローカルリゾルバーが不要な場合は、次の手順を使用してDNSMASQをオフにできます。

/etc/NetworkManager/NetworkManager.confファイルを編集する必要があります

gksudo gedit /etc/NetworkManager/NetworkManager.conf

から次の行をコメント化します

dns=dnsmasq

#dns=dnsmasq

ファイルを保存して終了します。

ここで、次のコマンドを使用してnetwork-managerを再起動する必要があります

Sudo systemctl restart network-manager

リファレンス link

1
Rahul Patil

DNSMasqを使用する場合、アドレスの解決に実際に使用されたDNSサーバーを確認するには、127.0.0.1のみを報告するため、Digを使用できません。代わりに:

DNSMasqでログを有効にする:

sed -i 's/\#log-queries/log-queries/' /etc/dnsmasq.conf
systemctl restart dnsmasq

DNSMasqをログに記録し、出力を監視します。

journalctl --unit dnsmasq.service -f

ホストにpingを実行します。

ping google.ca

その後、私のアップストリームDNSサーバー(192.168.1.1)が解決します。

: query[A] google.ca from 127.0.0.1
: forwarded google.ca to 192.168.1.1
: query[AAAA] google.ca from 127.0.0.1
: forwarded google.ca to 192.168.1.1
: reply google.ca is 172.217.1.3
: reply google.ca is 2607:f8b0:400b:80f::2003
: query[PTR] 3.1.217.172.in-addr.arpa from 127.0.0.1
: forwarded 3.1.217.172.in-addr.arpa to 192.168.1.1
: reply 172.217.1.3 is iad23s25-in-f3.1e100.net
: reply 172.217.1.3 is yyz10s14-in-f3.1e100.net

* .company.comの(スプリットトンネル中の)会社のVPNの背後にあるホストにpingを実行します

ping box.company.com

結果:

: query[A] box.company.com from 127.0.0.1
: forwarded box.company.com to vpn.ser.ver.ip
: query[AAAA] box.company.com from 127.0.0.1
0
kevinf