私は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サーバーとして構成しますか?
ローカルループバックインターフェイスが明示的にdnsmasq
- edされていない場合、resolvconf
を使用してローカルリゾルバーを上書きするexcept
の起動スクリプトにバグがあるようです/etc/defaults/dnsmasq
ファイル。
簡単に言えば、あなたが追加できるということです...
DNSMASQ_EXCEPT=lo
/etc/defaults/dnsmasq
問題を解決するため。
詳細については、この質問を参照してください...
bigjoshは正しい-dnsmasqの更新があったことを除いて、ハッシュ解除できるオプションが/etc/default/dnsmasq
の最後にある:
IGNORE_RESOLVCONF=yes
使わない
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
キャッシング専用の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。