第21章 DNS サーバーの順序の設定
ほとんどのアプリケーションは、glibc
ライブラリーの getaddrinfo()
関数を使用して DNS 要求を解決します。デフォルトでは、glibc
はすべての DNS 要求を、/etc/resolv.conf
ファイルで指定された最初の DNS サーバーに送信します。このサーバーが応答しない場合、RHEL は、このファイルに指定されている次のサーバーを使用します。NetworkManager を使用すると、etc/resolv.conf
内の DNS サーバーの順序に影響を与えることができます。
21.1. NetworkManager が /etc/resolv.conf で DNS サーバーを順序付ける方法
NetworkManager は、以下のルールに基づいて /etc/resolv.conf
ファイルの DNS サーバーの順序を付けます。
- 接続プロファイルが 1 つしか存在しない場合、NetworkManager は、その接続で指定された IPv4 および IPv6 の DNS サーバーの順序を使用します。
複数の接続プロファイルがアクティベートされると、NetworkManager は DNS の優先度の値に基づいて DNS サーバーを順序付けます。DNS の優先度を設定すると、NetworkManager の動作は、
dns
パラメーターに設定した値によって異なります。このパラメーターは、/etc/NetworkManager/NetworkManager.conf
ファイルの[main]
セクションで設定できます。dns=default
またはdns
パラメーターが設定されていないと、以下のようになります。NetworkManager は、各接続の
ipv4.dns-priority
パラメーターおよびipv6.dns-priority
パラメーターに基づいて、複数の接続から DNS サーバーを順序付けます。値を指定しない場合、または
ipv4.dns-priority
およびipv6.dns-priority
を0
に設定すると、NetworkManager はグローバルのデフォルト値を使用します。DNS 優先度パラメーターのデフォルト値 を参照してください。dns=dnsmasq
またはdns=systemd-resolved
:この設定のいずれかを使用すると、NetworkManager は
dnsmasq
の127.0.0.1
に設定するか、127.0.0.53
をnameserver
エントリーとして/etc/resolv.conf
ファイルに設定します。dnsmasq
サービスおよびsystemd-resolved
サービスの両方で、NetworkManager 接続に設定された検索ドメインのクエリーをその接続で指定された DNS サーバーに転送し、その他のドメインへのクエリーをデフォルトのルートを持つ接続に転送します。複数の接続に同じ検索ドメインが設定されている場合は、dnsmasq
およびsystemd-resolved
が、このドメインのクエリーを、優先度の値が最も低い接続に設定された DNS サーバーへ転送します。
DNS 優先度パラメーターのデフォルト値
NetworkManager は、接続に以下のデフォルト値を使用します。
-
VPN 接続の場合は
50
-
他の接続の場合は
100
有効な DNS 優先度の値:
グローバルのデフォルトおよび接続固有の ipv4.dns-priority
パラメーターおよび ipv6.dns-priority
パラメーターの両方を -2147483647
から 2147483647
までの値に設定できます。
- 値が小さいほど優先度が高くなります。
- 負の値は、値が大きい他の設定を除外する特別な効果があります。たとえば、優先度が負の値の接続が 1 つでも存在する場合は、NetworkManager が、優先度が最も低い接続プロファイルで指定された DNS サーバーのみを使用します。
複数の接続の DNS の優先度が同じ場合、NetworkManager は以下の順番で DNS の優先順位を決定します。
- VPN 接続。
- アクティブなデフォルトルートとの接続。アクティブなデフォルトルートは、メトリックスが最も低いデフォルトルートです。
関連情報
-
nm-settings(5)
man ページ - 異なるドメインでの各種 DNS サーバーの使用