
私はボックスの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