Claro! Redirecionar todas as resoluções de nomes para um endereço com o comando:
address=/#/10.0.0.101
Essa é a entrada necessária no arquivo /etc/dnsmasq.conf
. Qual eu recomendo usar como isso irá impor tal configuração se o servidor for reinicializar por qualquer motivo.
Na linha de comando, a opção é chamada:
-A, --address=/<domain>[/<domain>...]/[<ipaddr>]
Uma cópia do manual do dnsmasq para address=
está abaixo.
No entanto, mesmo que pareça razoável definir -i vlan
(para a interface esperada a ser usada) e -a 10.6.66.1
(para o endereço no qual se espera que o dnsmasq escute a resolução de DNS). Não faça isso!.
Permita que o dnsmasq associe no modo curinga a todo e qualquer endereço do servidor na porta 53. Dessa forma, qualquer solicitação ao servidor sobre a resolução do DNS será respondida pelo dnsmasq.
The three modes are "wildcard", "bind-interfaces" and "bind-dynamic".
In "wildcard" mode, dnsmasq binds the wildcard IP address (0.0.0.0 or ::). This allows it to receive all the packets sent to the server on the relevant port. Access control (--interface, --except-interface, --listen-address, etc) is implemented by dnsmasq: it queries the kernel to determine the interface on which a packet was received and the address to which it was sent, and applies the configured rules. Wildcard mode is the default if neither of the other modes are specified.
Use a porta 53 (como os clientes externos esperam por padrão):
port=53 # It is set to be 53 by default, not really needed.
Desative (e desative) os dois avahi-dns
e systemd.resolved
Certifique-se de que nenhum outro programa / serviço esteja escutando nas portas 53 ou 5353.
$ netstat -pantu | grep ':53'
Defina também essas opções para impor que nomes como mylocaldomain
(sem pontos) sejam resolvidos com um erro (NXDOMAIN) pelo resolvedor DNS dnsmasq e que algumas resoluções de nomes não sejam encaminhadas para nenhum outro servidor:
# Never forward plain names (without a dot or domain part)
domain-needed
# Never forward addresses in the non-routed address spaces.
bogus-priv
Certifique-se de que nenhum servidor definido em /etc/resolv.conf
não seja usado:
no-resolv
no-poll
Todos os itens acima configuram o lado DNS do dnsmasq para resolver todos os domínios em um endereço simples. Ainda é possível adicionar qualquer outro nome para resolver outros endereços necessários, incluindo-o no arquivo /etc/hosts
, como
127.0.0.1
10.0.3.101 linum
Este último endereço deve ser o endereço para o servidor web da pesquisa.
O endereço inicial acima (10.0.0.101) deve ser a página de erro que explica o que fazer para acessar a página de pesquisa.
Mas isso não é tudo. Você também precisa configurar o servidor DHCP para fornecer uma opção de servidor de nomes com o endereço do resolvedor DNS dnsmasq (não use a opção número 5, ela está obsoleta (e deveria ter sido por mais de 20 anos)):
dhcp-option=6,10.0.0.101
Além de todas as outras configurações necessárias para a parte DHCP do dnsmasq.
Isso permitirá que um computador (tablet ou telefone também) obtenha um endereço DHCP fornecido com um servidor DNS definido. Todos os computadores compatíveis com o protocolo seguirão essas opções configuradas e não poderão resolver nenhum outro endereço.
No entanto, também é possível que um dispositivo tente acessar diretamente um número IP (sem resolução de DNS solicitada). Isso deve ser evitado usando a configuração do IPFilter no roteador que atende à rede local.
Em man dnsmasq
:
-A, --address=/[/...]/[]
Specify an IP address to return for any host in the given domains. Queries in the domains are never forwarded and always replied to with the specified IP address which may be IPv4 or IPv6. To give both IPv4 and IPv6 addresses for a domain, use repeated -A flags. To include multiple IP addresses for a single query, use --addn- hosts= instead. Note that /etc/hosts and DHCP leases override this for individual names. A common use of this is to redirect the entire doubleclick.net domain to some friendly local web server to avoid banner ads. The domain specification works in the same was as for --server, with the additional facility that /#/ matches any domain. Thus --address=/#/1.2.3.4 will always return 1.2.3.4 for any query not answered from /etc/hosts or DHCP and not sent to an upstream nameserver by a more specific --server directive. As for --server, one or more domains with no address returns a no-such-domain answer, so --address=/example.com/ is equivalent to --server=/example.com/ and returns NXDOMAIN for example.com and all its subdomains.
Leia também:
Adicionar forjado Entradas de DNS
Configuração de vinculação para resolver todas as consultas para apenas um endereço