第22章 DNS サーバーの順序の設定
ほとんどのアプリケーションは、glibc ライブラリーの getaddrinfo() 関数を使用して DNS で名前を解決します。デフォルトでは、glibc はすべての DNS 要求を、/etc/resolv.conf ファイルで指定された最初の DNS サーバーに送信します。このサーバーが応答しない場合、RHEL はこのファイル内にある他のすべてのネームサーバーを試します。NetworkManager を使用すると、/etc/resolv.conf 内の DNS サーバーの順序に影響を与えることができます。
22.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 接続。
- アクティブなデフォルトルートとの接続。アクティブなデフォルトルートは、メトリックスが最も低いデフォルトルートです。