DebianベースのLinuxでは、dnsmasqはnameservers
inを/etc/resolv.conf
次のよう127.0.0.1
に置き換えることで動作します("ワイヤレスエンジニア用のLinux:DNSキャッシュにdnsmasqを使用する方法")。
しかし、私はAlpine(そしてAlpineベースのドッカー)ではそのようには機能しないことがわかりました。 dnsmasqが起動すると、/etc/resolv.conf
変更されていません。したがって、dnsmasq を起動すると、DNS 解像度の点で違いはありません。 dnsmasqを起動するためのスクリプトを作成しましたが、厄介な感じがしました。
cp /etc/resolv.conf /etc/resolv.dnsmasq
sed -i 's/^nameserver.*/nameserver 127.0.0.1/' /etc/resolv.conf
dnsmasq -r /etc/resolv.dnsmasq
それでは、Alpineでdnsmasqが機能するようにするより良い(「正しい」)方法はありますか?
答え1
Debian では、init スクリプトが resolv.conf の更新を担当しているようです。https://thekelleys.org.uk/gitweb/?p=dnsmasq.git;a=tree;f=debian;h=7539dd72f8ea2d8d4b60d926ffa163956e3624a5;hb=HEAD。 resolvconf、systemd.serviceなどを確認してください。
アルパインにも同様の加工方式があるかどうかはわかりません。私の考えでは、initスクリプトを使用してalpineでdnsmasqを実行する必要があると思いますrc-service dnsmasq start
。ここからスクリプトを読むことができます。https://git.alpinelinux.org/aports/tree/main/dnsmasq/dnsmasq.initd(またはローカル)。に関する貴重な情報があります。https://wiki.alpinelinux.org/wiki/Main_Page。
DNSはDHCPクライアントによって変更される可能性があります。
これが役に立つことを願っています。