tente
except-interface=eth0
para evitar que o dnsmasq ouça a eth0
Eu tenho dnsmasq rodando em um pi framboesa w / Raspbian. O pi tem um stick wifi no wlan0 e está conectado à rede local / internet no eth0. Meu objetivo é fazer com que o dnsmasq resolva todos os hosts para o IP estático do pi apenas para conexões wifi. Este é meu dnsmasq.conf
address=/#/192.168.42.1
interface=wlan0
Agora, no entanto, quando eu ssh para o pi através de eth0 e ping google.com, ele também é resolvido para 192.168.42.1. Talvez seja por causa disso (da man page):
Dnsmasq automatically adds the loopback (local) interface to the list of interfaces to use when the --interface option is used
Se sim, como posso fazer com que o dnsmasq apenas ouça as conexões wifi?
Para os meus propósitos, estava tudo bem para a lógica ser: "Se um cabo ethernet estiver conectado, desligue dnsmasq
. Se um cabo ethernet estiver desconectado, ligue-o novamente".
Portanto, usei ifplugd
para gerenciar o processo. No arquivo /etc/ifplugd/ifplud.action
, adicionei service dnsmasq stop
ao caso "up" e service dnsmasq start
ao caso "down". Sucesso total!
tente
except-interface=eth0
para evitar que o dnsmasq ouça a eth0
Você está fazendo isso da maneira errada. dnsmasq não tem culpa nenhuma.
A maioria dos resolvedores de DNS no Linux usa /etc/resolv.conf
. O que é definido lá é independente de interface. Na verdade, tem que ser: você não sabe qual interface e rota usar, a menos que tenha o endereço IP numérico.
Então basicamente o que você quer não pode ser feito.
A menos, claro, que não seja destinado ao host do dnsmasq, mas aos clientes WiFi ou o que for. Nesse caso, você precisa remover o respondedor DNS local de resolv.conf
e fazer com que ele use upstream (seu roteador, ISP, DNS do Google, OpenDNS, ...) diretamente.
Um típico resolv.conf
pode ter esta aparência quando usa o DNS do Google:
nameserver 8.8.8.8
nameserver 8.8.4.4