A capacidade condicional do DNSMasq depende principalmente de seu mecanismo de marcação e está relacionada apenas ao seu lado DHCP.
Uma solução seria usar primeiro o lado DHCP do DNSMasq para marcar qual host é "filho" e qual é "adulto":
# grownup network
dhcp-host=11:22:33:44:55:66,host01,192.168.1.11,infinite,set:grownup
dhcp-host=66:55:44:33:22:11,aa:bb:cc:dd:ee:ff,host02,192.168.1.12,infinite,set:growup
# child network
dhcp-host=ab:cd:00:01:02:03,child01,192.168.1.21,infinite,set:child
Portanto, defina condicionalmente dhcp-option
para atribuir uma cadeia de resolução de DNS específica a hosts "adultos" (assumindo que 10.10.10.1
e 10.10.10.2
são seus servidores DNS e 192.168.1.2
é o endereço IP de sua caixa DNSMasq):
# options
dhcp-option=tag:grownup,option:dns-server,10.10.10.1,10.10.10.2
dhcp-option=tag:child,option:dns-server,192.168.1.2
A partir daí, o host "adulto" será diretamente resolvido através do seu DNS do ISP e os "filhos" usarão a cadeia de resolução do DNSMasq (ou qualquer outro servidor DNS instalado na sua caixa DNSMasq).
Por fim, adicione algumas opções host-record
ou addn-hosts
:
host-record=www.facebook.com,127.0.0.1
Para mais informações sobre o DNSMasq: