ループバックインターフェイスでのみ受信する(バージョン2.66)試みていますが、dnsmasq
受信にのみこだわります。みんな利用可能な住所、つまり0.0.0.0:53次の主張にもかかわらず:
# dnsmasq -ilo --pid-file=/run/dnsmasq-lo.pid
dnsmasq: failed to create listening socket for port 53: Adress already in use
1つのIPアドレスのみを受信しているように見える別のdnsmasqプロセスが実行されています。
# netstat -ltaupn | sed -rne 2p -e '/:53\b/p'
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 192.168.125.1:53 0.0.0.0:* LISTEN 4224/dnsmasq
tcp 0 0 192.168.124.1:53 0.0.0.0:* LISTEN 4221/dnsmasq
udp 0 0 192.168.125.1:53 0.0.0.0:* 4224/dnsmasq
udp 0 0 192.168.124.1:53 0.0.0.0:* 4221/dnsmasq
すべてのインスタンスを終了しdnsmasq
てコマンドを再実行すると、次の結果が表示されます。
# dnsmasq -ilo --pid-file=/run/dnsmasq-lo.pid
# netstat -ltaupn | sed -rne 2p -e '/:53\b/p'
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 4452/dnsmasq
tcp6 0 0 :::53 :::* LISTEN 4452/dnsmasq
udp 0 0 0.0.0.0:53 0.0.0.0:* 4452/dnsmasq
udp6 0 0 :::53 :::* 4452/dnsmasq
次の引数は単独で、または組み合わせて何も変更しません。
--local=//
-a127.0.0.1
-Ieth0 -Ieth1 -Ivirbr0 -Ivrbr1
どのように強制的にdnsmasq
聞くことができますか?ただ私が望む1つのインターフェイス、ループバックインターフェイス?
答え1
ありがとうスティーブン・チャジェラス、可能な答えの1つは追加することです--bind-interfaces
。私はコマンドラインヘルプを読むのを制限したので、このオプションを無視しました。
# dnsmasq --help | grep bind-interfaces
-z, --bind-interfaces Bind only to interfaces in use.
私は本能的にマニュアルページを再確認しませんでした。 IMHOこのヒントはまだ混乱しています。
ただし、マニュアルページには次のように記載されています。
-z, --bind-interfaces
On systems which support it, dnsmasq binds the wildcard address,
even when it is listening on only some interfaces. It then dis-
cards requests that it shouldn't reply to. This has the advan-
tage of working even when interfaces come and go and change
address. This option forces dnsmasq to really bind only the
interfaces it is listening on. About the only time when this is
useful is when running another nameserver (or another instance
of dnsmasq) on the same machine. Setting this option also
enables multiple instances of dnsmasq which provide DHCP service
to run in the same machine.
これがより明確です。