Dnsmasq がサーバーの DNS サーバーとして使用されているが、使用すべきではない

Dnsmasq がサーバーの DNS サーバーとして使用されているが、使用すべきではない

私はボックスのDNSネームサーバーを/etc/network/interfacesにハードコードしています。

dns-nameservers 8.8.8.8

(テスト中は、別の DNS をライブで使用して、DNS を Google で検索するだけです。)

そして、DNS キャッシュとしてボックス上で dnsmasq を実行していますが、いくつかの DNS エントリを書き換えて、Apache をプロキシとして指定するようにもしています。

何らかの理由で、DNS ネームサーバーの設定にかかわらず、dnsmasq が実行中の場合は常にボックスが DNS サーバーとして dnsmasq を使用していることがわかりません。dnsmasq をすべてのインターフェイスと 127.0.0.1 で listen するように設定した場合、プロキシされるはずのものも含め、すべてのルックアップは dnsmasq を通過するため、プロキシされる代わりにループに巻き込まれます。don't use lo を使用し、127.0.0.1 での listen をコメント アウトすると、DNS がまったく取得されません。

except-interface=lo
#listen-address=127.0.0.1

すべての DNS トラフィックをリダイレクトする iptables ルールはなく、IP 範囲へのアクセスのみが許可されます。

何か見落としていることがあるはずですが、わかりません。

dnsmasqが無効の場合、digsは設定されたDNSを経由し、有効にすると127.0.0.1を経由します。

何か案は?

答え1

Ubuntu および Debian の dnsmasq の起動スクリプトは、サービスの開始時または終了時にネームサーバーを /etc/resolv.conf に明示的に追加します。

これを防ぐには、/etc/default/dnsmasq(/etc/dnsmasq.confではない)を編集し、次の行を追加する必要があります。

 DNSMASQ_EXCEPT=lo

これにより、dnsmasqがresolv.confでネームサーバーとして自動的に設定されなくなりますが、resolv.confの設定は変更されます。

nameserver (your nameserver)
nameserver 127.0.0.1

関連情報