Dnsmasqを(再)起動するたびに、/etc/resolv.conf
がnameserver 127.0.0.1 ...
に置き換えられます。
ただし、そのマシンはローカルDNSサービスを使用する必要はありません。 (理由は尋ねないでください。環境全体はこんな感じです...)
実際にdnsmasqが/etc/resolv.conf
に触れないようにするにはどうすればよいですか?
resolvconf
もchattr +i /etc/resolv.conf
も削除することはできません。
dnsmasq
に別のresolv.conf
ファイルを使用させることができるため、/etc/resolv.conf
が127.0.0.1を指す場合、dnsmasq
は実際には他のresolv.conf
ファイルのみを使用します/etc/resolv.conf
をそのままにします。
次の行をdnsmasq.conf
ファイルに追加します。
resolv-file=/etc/dnsmasq.d/dnsmasq-resolv.conf
次に、/etc/dnsmasq.d/dnsmasq-resolv.conf
ファイルを作成して、次のようにします。
nameserver 208.67.222.222
nameserver 208.67.220.220
systemctl disable resolvconf.service
systemctl stop resolvconf.service
rm -f /etc/resolv.conf
echo 'nameserver 8.8.8.8' > /etc/resolv.conf # or any other IP you want to use as DNS server
systemctl restart dnsmasq.service # just for testing
cat /etc/resolv.conf # just to verify
マシンはDHCP経由でDNSサーバーアドレスを取得できませんが、問題は解決します。