fare dnsmasq ascolta su una sola interfaccia


2

Ho dnsmasq in esecuzione su un raspberry pi w / Raspbian. Il pi ha una chiavetta wifi su wlan0 ed è connesso alla rete locale / internet su eth0. Il mio obiettivo è avere dnsmasq risolvere tutti gli host sull'IP statico di pi solo per le connessioni wifi. Questo è il mio dnsmasq.conf

address=/#/192.168.42.1
interface=wlan0

Ora però, quando eseguo ssh sul pi greco tramite eth0 e ping google.com, si risolve anche a 192.168.42.1. Forse è per questo (dalla pagina man):

Dnsmasq aggiunge automaticamente l'interfaccia loopback (locale) all'elenco delle interfacce da utilizzare quando viene utilizzata l'opzione --interface

In tal caso, come posso fare in modo che dnsmasq ascolti solo le connessioni wifi?

Soluzione alternativa

Per i miei scopi era ok per la logica: "Se un cavo ethernet è collegato, spegnere dnsmasq. Se un cavo ethernet è scollegato, riaccenderlo ".

Pertanto, ho usato ifplugd per gestire il processo. Nel file /etc/ifplugd/ifplud.action Ho aggiunto service dnsmasq stop al caso "su" e service dnsmasq start al caso "down". Pieno successo!

Risposte:


1

prova invece

except-interface=eth0

per evitare dnsmasq ascoltando eth0


1

Lo stai facendo nel modo sbagliato. dnsmasq non è affatto colpa.

La maggior parte dei risolutori DNS in uso su Linux /etc/resolv.conf. Ciò che viene definito è indipendente dall'interfaccia. In realtà, deve essere: non si conosce l'interfaccia e la rotta da intraprendere se non si dispone dell'indirizzo IP numerico.

Quindi in pratica quello che vuoi non può essere fatto.

A meno che, naturalmente, in realtà non sia pensato per l'host dnsmasq, ma per i client WiFi o altro. In tal caso, è necessario rimuovere il risponditore DNS locale da resolv.conf e farlo utilizzare a monte (il router, ISP, Google DNS, OpenDNS, ...) direttamente.

Un tipico resolv.conf potrebbe apparire come questo quando si usa Google DNS:

nameserver 8.8.8.8
nameserver 8.8.4.4

Grazie per l'aiuto. Non sono sicuro di capire cosa intendi con "A meno che, naturalmente, non sia in realtà inteso per l'host dnsmasq, ma per i client WiFi o qualsiasi altra cosa." Sono sicuro che ciò che voglio fare è possibile perché l'ho già fatto prima. Purtroppo però non ho più accesso a quel dispositivo. Il comportamento sembra essere correlato a dnsmasq perché quando esegue il mio /etc/resolv.conf è impostato per nameserver 127.0.0.1 di resolvconf e quando non è in esecuzione quella riga legge nameserver 192.168.1.254. Dnsmasq non dovrebbe sapere da quale interfaccia proviene la richiesta?
owise1

Certo, sa da dove viene la richiesta. È solo che viene sempre lo quando si usa nameserver 127.0.0.1.
Daniel B

1
Quello che vuoi è evitare qualsiasi impostazione del tuo server dei nomi su 127.0.0.1 in resolvconf. Potrebbe essere dnsmasq farlo per impostazione predefinita a meno che non si usi l'opzione no.
qasdfdsaq
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.