
Ich habe dnsmasq auf einem Raspberry Pi mit Raspbian laufen. Der Pi hat einen WLAN-Stick auf wlan0 und ist mit dem lokalen Netzwerk/Internet auf eth0 verbunden. Mein Ziel ist, dass dnsmasq alle Hosts nur für WLAN-Verbindungen auf die statische IP des Pi auflöst. Dies ist meine dnsmasq.conf
address=/#/192.168.42.1
interface=wlan0
Wenn ich jetzt jedoch per SSH über eth0 auf den Pi zugreife und google.com anpinge, wird auch hier die Adresse 192.168.42.1 angezeigt. Vielleicht liegt das daran (aus der Manpage):
Dnsmasq fügt die Loopback-Schnittstelle (lokal) automatisch zur Liste der zu verwendenden Schnittstellen hinzu, wenn die Option --interface verwendet wird
Wenn ja, wie kann ich es so einrichten, dass dnsmasq nur die WLAN-Verbindungen abhört?
Problemumgehungslösung
Für meine Zwecke war die folgende Logik ok: „Wenn ein Ethernet-Kabel eingesteckt ist, schalte es aus dnsmasq
. Wenn ein Ethernet-Kabel ausgesteckt ist, schalte es wieder ein.“
Daher habe ich ifplugd
den Vorgang verwaltet. In der Datei /etc/ifplugd/ifplud.action
habe ich service dnsmasq stop
den Fall "up" und service dnsmasq start
den Fall "down" hinzugefügt. Voller Erfolg!
Antwort1
Versuchen Sie es stattdessen
except-interface=eth0
um zu vermeiden, dass dnsmasq auf eth0 hört
Antwort2
Sie gehen das falsch an. dnsmasq trägt überhaupt keine Schuld.
Die meisten DNS-Resolver unter Linux verwenden /etc/resolv.conf
. Was dort definiert ist, ist schnittstellenunabhängig. Tatsächlich muss es das sein: Sie wissen nicht, welche Schnittstelle und Route Sie nehmen müssen, wenn Sie nicht die numerische IP-Adresse haben.
Was Sie möchten, lässt sich also grundsätzlich nicht umsetzen.
Es sei denn natürlich, es ist eigentlich gar nicht für den dnsmasq-Host gedacht, sondern für die WiFi-Clients oder was auch immer. In diesem Fall müssen Sie den lokalen DNS-Responder entfernen resolv.conf
und ihn Upstream (Ihren Router, ISP, Google DNS, OpenDNS, ...) direkt verwenden lassen.
Ein typisches Beispiel resolv.conf
könnte bei Verwendung von Google DNS wie folgt aussehen:
nameserver 8.8.8.8
nameserver 8.8.4.4