DHCP経由でアップストリームDNSサーバーを取得するCentOSシステムがあります。
このボックスでDNSMasqを実行し、それをサーバーとして使用して、開発用のいくつかのホスト名を解決したいと思います。
問題は、システムが起動すると、アップストリームDNSサーバーが/etc/resolv.confにロードされ、次にifcfg-enp0s3セットアップからのDNS1エントリがロードされることです。これは問題です。内部開発者名を照会すると、最初にDNSMasqをチェックするのではなく、アップストリームDNSサーバーに送信しようとするためです。 DNSMasqが正しく機能するように、DNSMasqサーバーを/etc/resolv.confの上部に配置し、dhcpをロードしてresolv.confの下部に配置する必要があります。
それを行う簡単な方法はありますか?
はい、それを行う簡単な方法があります。 /etc/dhcp/dhclient.conf
に行を追加します。以下の例では、DNSサーバー1.2.3.4をリゾルバーリストの前に追加します。
prepend domain-name-servers 1.2.3.4 ;
付加ステートメント
prepend [オプション宣言];
一部のオプションセットで、クライアントが指定した値を使用し、サーバーから提供された値を使用する必要がある場合は、これらの値をprependステートメントで定義できます。 prependステートメントは、複数の値を指定できるオプションにのみ使用できます。この制限は強制されません。無視すると、動作は予測できなくなります。
dhclientのマニュアルページ を参照してください。