web-dev-qa-db-ja.com

dnsmasqを再起動するとresolv.confが上書きされ続け、dnsmasqが壊れる

私はDebian Jessieを実行しており、dnsmasqをキャッシュDNSサーバーとして構成しようとしています。 ガイド を使用して、次の/etc/dnsmasq.confを作成しました:

listen-address=127.0.0.1
bind-interfaces
domain-needed
bogus-priv
no-hosts
dns-forward-max=150
cache-size=1000
neg-ttl=3600
resolv-file=/etc/resolv.dnsmasq
no-poll

Sudo service dnsmasq restartを実行すると失敗し、開始されません。

Mar 26 17:13:01 user dnsmasq[26743]: dnsmasq: syntax check OK.
Mar 26 17:13:01 user dnsmasq[26746]: dnsmasq: only one resolv.conf file allowed in no-poll mode.

わかりました、ガイドからの直接設定が失敗したのはちょっと奇妙なことです。 no-pollオプションを削除して、機能するかどうかを確認します。今回は問題なく開始されますが、DNS解決は明らかに失敗しています。関連ファイル:

/etc/resolv.conf

nameserver 127.0.0.1

/etc/resolv.dnsmasq

nameserver 8.8.8.8

/var/run/dnsmasq/resolv.conf

nameserver 127.0.0.1

3番目のファイルは、dnsmasqのライブresolv.confファイルのようです。これは、dnsmasqがすでに実行されているときにネームサーバー行を追加すると、DNS解決がすぐに機能し始めるためです。そのため、私の/etc/resolv.dnsmasqは無視されたようです。また、ネームサーバー行を/etc/resolv.confに追加してresolv-file/etc/dnsmasq.conf行を削除しようとしましたが、Sudo service dnsmasq restartを実行すると、上記の内容にすぐに上書きされます。

Dnsmasqで何が起こっているのですか?dnsmasqをキャッシュDNSサーバーとして構成しますか?

9
nullUser

ローカルループバックインターフェイスが明示的にdnsmasq- edされていない場合、resolvconfを使用してローカルリゾルバーを上書きするexceptの起動スクリプトにバグがあるようです/etc/defaults/dnsmasqファイル。

簡単に言えば、あなたが追加できるということです...

DNSMASQ_EXCEPT=lo

/etc/defaults/dnsmasq 問題を解決するため。

詳細については、この質問を参照してください...

https://raspberrypi.stackexchange.com/questions/37439/proper-way-to-prevent-dnsmasq-from-overwriting-dns-server-list-supplied-by-dhcp

11
bigjosh

bigjoshは正しい-dnsmasqの更新があったことを除いて、ハッシュ解除できるオプションが/etc/default/dnsmasqの最後にある:

IGNORE_RESOLVCONF=yes
3
Maynard

使わない

resolv-file=/etc/resolv.dnsmasq

次のように、dnsサーバーをdnsmasq.confに配置します。

server=/localnet/192.168.0.1 # change ip for your ip-server
server=8.8.8.8
server=8.8.4.4

そして、dnsmasq.confに追加します

no-resolv
2
aclg

キャッシング専用のDNSサーバーだけが必要で、dnsmasqができること以外に何もない場合は、lwresdまたはunboundのいずれかをインストールして、デフォルトの設定を使用することをお勧めします。キャッシング専用DNSサーバー。次に、/etc/resolv.confに「nameserver 127.0.0.1」を使用するように設定するだけで完了です。

嬉しいことに、これら2つのパッケージは、dnsmasqのように/etc/resolv.confの内容をいじらないので、IMHOのよりクリーンなソリューションです。また、通常はresolvconfパッケージを削除して、/etc/resolv.confを変更することはできません。

ちなみに、dnsmasqはかなり複雑になり、あまりにも多くのベルとホイッスルがあり、ほとんどの人にとってもはや痛みを引き起こしています。違反KISS。

1
milli