ラズベリーパイw / Raspbianでdnsmasqを実行しています。piはwlan0上にwifiスティックを持ち、eth0上のローカルネットワーク/インターネットに接続されています。私の目標は、dnsmasqに、Wi-Fi接続の場合にのみ、すべてのホストをpiの静的IPに解決させることです。これは私のdnsmasq.confです
address=/#/192.168.42.1
interface=wlan0
しかし今、私はeth0を介してPIにSSH接続してgoogle.comにpingを実行すると、192.168.42.1にも解決されます。おそらくこれが原因です(manページから):
--interfaceオプションを使用すると、Dnsmasqは自動的にループバック(ローカル)インタフェースを使用するインタフェースのリストに追加します。
もしそうなら、どうすればdnsmasqがWiFi接続のみを待機するようにすることができますか?
回避策ソリューション
私の目的のために、ロジックが「イーサネットケーブルが接続されてdnsmasq
いる場合はオフにし、イーサネットケーブルが接続されていない場合は再度オンにする」であっても構いませんでした。
したがって、私ifplugd
はプロセスを管理していました。このファイルで/etc/ifplugd/ifplud.action
はservice dnsmasq stop
、 "up"の場合とservice dnsmasq start
"down"の場合に追加しました。大成功!
dnsmasq
それが実行/etc/resolv.conf
さnameserver 127.0.0.1
れresolvconf
ているときにmy がbyに設定されていて、実行されていないときにその行が読み取られるため、動作は関連しているように見えますnameserver 192.168.1.254
。dnsmasqはどのインターフェースからリクエストが来たのか知るべきではありませんか?