ローカル DNS の代わりに ISP DNS サーバーを使用する

ローカル DNS の代わりに ISP DNS サーバーを使用する

問題

私の会社の社内ネットワークには、devserver.mycompany.com

通常、このサーバーに問題なく接続できますが、時々 (ランダムに思えますが) Ubuntu がアドレスを解決できないことがあります。

その他の情報と考察

nmcli dev list iface eth0ターミナルで実行すると、2 つの DNS サーバーが構成されていることがわかります。

IP4.DNS[1]:                             192.168.50.103
IP4.DNS[2]:                             128.255.1.3

2 番目の DNS サーバーは ISP のサーバーです。

同じ 2 つの DNS サーバーを使用するように構成されている Windows パーティションでは、この問題は発生しません。

問題が発生したとき:

  • nslookup devserver.mycompany.com 失敗する
  • nslookup devserver.mycompany.com 128.255.1.3 失敗する常に(当然ですが、devserver はパブリック サーバーではありません)
  • nslookup devserver.mycompany.com 192.168.50.103 作品

実際の出力は次のとおりですnslookup

Ubuntu-14:~$ nslookup devserver.mycompany.com
Server:     127.0.1.1
Address:    127.0.1.1#53

** server can't find devserver.mycompany.com: NXDOMAIN

質問

  • 上記の出力から、Ubuntu はローカル DNS サーバーを使用しようとしているように見えます。正しいですか? 失敗した検索をローカル マシンにキャッシュしていますか?
    • キャッシュされている場合、キャッシュをクリアするにはどうすればよいですか?
  • Ubuntu は時々この 2 番目の DNS サーバーを使用していますか? なぜですか? 負荷分散のためですか? ローカルのサーバーの方が遅いのですか?
  • これをどうやって修正すればい​​いでしょうか? プライマリ DNS サーバーがダウンした場合に備えて、2 番目の DNS サーバーを削除したくありません。
  • 最後に、なぜ Windows ではこの問題が発生しないのでしょうか?

Ubuntu バージョン情報

未処理のアップデートのない ubuntu 14.04 LTS。

すべてのネットワークはほぼ自動的にセットアップされました。DHCPを使用して

答え1

上記の出力から、Ubuntu はローカル DNS サーバーを使用しようとしているように見えます。正しいですか? 失敗した検索をローカル マシンにキャッシュしていますか?

はい、Ubuntu は DHCP リースで提供されたもの、具体的にはdnsmasq、その処理を担当するプラグインを使用していますnetwork-manager

Ubuntu は時々この 2 番目の DNS サーバーを使用していますか? なぜですか? 負荷分散のためですか? ローカルのサーバーの方が遅いのですか?

最初の DNS が解決できない場合は、dnsmasqクエリをセカンダリ DNS にリダイレクトする必要があります。少なくとも、それがアイデアです。

独自のDNSサーバーを使用したい場合supersede domain-name-server xxx.xx.xxx.xxx個人的には、Ubuntu システムに DHCP リース経由で受信した DNS を自分のサーバーに置き換えるように指示するために、常にin を 使用します/etc/dhcp/dhclient.conf。以下はそのファイルからの抜粋です。

30)serg@ubuntu[/home/xieerqi]
>_ cat /etc/dhcp/dhclient.conf                                                 
# Configuration file for /sbin/dhclient, which is included in Debian's
#   dhcp3-client package.
#
# This is a sample configuration file for dhclient. See dhclient.conf's
#   man page for more information about the syntax of this file
#   and a more comprehensive list of the parameters understood by
#   dhclient.
#
# Normally, if the DHCP server provides reasonable information and does
#   not leave anything out (like the domain name, for example), then
#   few changes must be made to this file, if any.
#

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;

#send host-name "andare.fugue.com";
send host-name = gethostname();
#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
#send dhcp-lease-time 3600;
#supersede domain-name "fugue.com home.vix.com";
supersede domain-name-servers 208.67.220.220;
#prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, domain-search, host-name,
    dhcp6.name-servers, dhcp6.domain-search,
    netbios-name-servers, netbios-scope, interface-mtu,
    rfc3442-classless-static-routes, ntp-servers,
    dhcp6.fqdn, dhcp6.sntp-servers;

設定して再接続または再起動するとnetwork-manager、次のようになります。

31)serg@ubuntu[/home/xieerqi]
>_ nmcli dev list | grep -i dns                                                
IP4.DNS[1]:                             208.67.220.220

Nslookupは報告しServer: 127.0.1.1、そのアドレスをリッスンするAddress: 127.0.1.1#53 のはNetwork-Managerなのでdsnmasq、DHCPによって提供されたもの(この場合は、置換されたDNS)を使用します。

関連情報