Manual
do
Maker
.
com
Já escrevi alguns artigos sobre configuração de servidor DNS com bind9, nessa referência, para Raspberry. Nesse breve artigo vamos ver como configurar um servidor DNS com DNSMasq, para acelerar o tempo de resolução de nomes, tornando a navegação do seu Raspberry e de sua rede mais rápidos. De quebra, vai poder acessar seus dispositivos da rede por nome.
Essa parte é tão fácil quanto a configuração. Abra um terminal em seu Raspberry e digite os comandos:
sudo su
apt-get update
apt-get install dnsmasq
Mantenha o terminal aberto como está. Precisamos definir algumas linhas no serviço de DNS para termos nosso servidor DNS com DNSMasq funcional.
Agora devemos editar o arquivo /etc/dnsmasq.conf para fazermos algumas definições. Tudo estará comentado (com trama no início da linha), então pode colocar as definições a seguir no início do arquivo, sem problemas. Use seu editor preferido. Pelo terminal, sugiro o nano, mas se quiser um editor gráfico, digite:
xdg-open /etc/dnsmasq.conf
Então inclua as linhas:
listen-address=::1,127.0.0.1,<ip do seu RPi>
ATENÇÃO:
Se for utilizar como servidor DNS apenas para o próprio Raspberry, não precisa adicionar o
Defina a porta de serviço, sendo por padrão a UDP/53:
port=53
Quando seu servidor DNS não tem referência em cache, ele deve buscar a referência fora. Isso é chamado de forwarding, que é um encaminhamento para a resolução, tornando-se disponível no cache a partir de então. O forwarding é definido na variável servere podemos ter vários apontamentos:
server=8.8.8.8
server=8.8.4.4
server=192.168.1.2
Como já tenho um servidor DNS rodando em outro Raspberry (com bind9), passei ele também para a resolução, que ainda deve ser mais rápido que uma consulta na Internet.
O parâmetro final é a interface a escutar. Podemos optar por eth0, wlan0 ou ambos. No meu caso o Raspberry está conectado por WiFi, então é wlan0 mesmo:
interface=wlan0
Juntando, tudo o que precisa ser adicionado ao arquivo /etc/dnsmasq.conf são essas linhas:
interface=wlan0
port=53
listen-address=127.0.0.1,192.168.1.200
server=8.8.8.8
server=8.8.4.4
Reinicie o serviço do DNSMasq e veja como está seu arquivo /etc/resolv.conf. Se estiver usando outro DNS, troque-o pelo IP de sua interface.
sudo service dnsmasq restart
Se nunca editou o arquivo /etc/resolv.conf, o formato para resolução de nomes através do IP de exemplo 172.16.4.8 ficaria assim:
nameserver 172.16.4.8
Se tiver domínio haverá uma linha adicional.
Se por alguma razão tiver problemas na configuração de seu servidor DNS com DNSMasq, siga essas dicas, mas é bastante incomum não funcionar de primeira.
Normalmente um erro é reportado pelo próprio status. Se tiver erro de digitação no arquivo ou algo incorreto deve aparecer no terminal ao digitar:
service dnsmasq status
Se o DNS não estiver nesse arquivo ou a definição estiver digitada errada, ou se tiver outro serviço controlando o arquivo /etc/resolv.conf, também não funcionará. Se for apenas falta da definição e já não estiver contida essa linha, adicione-a:
#coloque o ip do SEU raspberry
nameserver 172.16.0.100
Se estiver, edite o arquivo /etc/resolvconf.confe adicione o seguinte conteúdo:
name_servers="::1 127.0.0.1"
# Escreve os arquivos resolv e de configuração estendida do dnsmasq
dnsmasq_conf=/etc/dnsmasq-conf.conf
dnsmasq_resolv=/etc/dnsmasq-resolv.conf
Por fim, execute o comando resolvconf -u para que ocorra a atualização dos arquivos.
Toda a vez que fizer alguma modificação, verifique o último status. Não modifique todas as coisas de uma vez senão jamais será identificada a origem do problema. Temos a já citada forma mais acima, como também o journalctl:
sudo service dnsmasq status
#ou...
sudo journalctl -u dnsmasq.service
O RPi não poderá mais mudar de IP para que outros hosts possam encontrá-lo, caso deseje utilizá-lo como servidor DNS da rede, invés de resolver nomes apenas para si mesmo. Nesse caso, verifique na interface de rede se houve mudança:
ifconfig wlan0 #ou eth0, se for conexão cabeada
Se o IP mudou, significa que não foi reservado o IP ou houve algum erro na configuração da reserva. Para reservar o IP ou para verificar a reserva, pegue o endereço MAC na interface de rede e confira em seu roteador. Para pegar o MAC já limpo:
ifconfig wlan0|egrep ether|awk '{print $2}'
Verifique se o adicionou corretamente, se a configuração está habilitada em seu roteador, etc. Cada roteador tem sua própria interface com o usuário, por isso não consigo descrever o processo exato para cada caso, mas é fácil achar, certamente está no menu de configuração DHCP.
Seu roteador é provavelmente o servidor DHCP da rede. Ele oferece o IP, gateway e os servidores DNS que deverão ser utilizados pelos seus hosts. Para que o servidor DNS seja o Raspberry, procure pela definição dos DNSs na configuração do DHCP do seu roteador. É fácil também, não se preocupe.
Não basta configurar o servidor DNS e o DHCP em seu roteador. Os hosts precisam saber que uma modificação deve ser aplicada e para isso é necessário renovar o IP em suas interfaces. Em Windows (não sei se ainda é assim porque não uso há um bom tempo), abra o terminal (digite CMD no menu) e digite:
ipconfig /release
ipconfig /renew
Em Linux:
#para ethernet:
sudo ifdown eth0
sudo ifup eth0
#wlan etc
sudo service networking restart
#ou..
sudo service network restart
Ou reinicie os sistema, seja lá ele qual for.
Para resolver nomes em sua rede interna, podemos definir os hosts em /etc/hosts e adicionar mais alguns parâmetros ao arquivo /etc/dnsmasq.conf. É simples, apenas adicione isso:
local=/lan/
domain=lan
Os hosts definidos em /etc/hosts devem estar utilizando IP estático, claro. O formato de inserção dos hosts deve ser assim:
#defina o ip de SEUS hosts e o nome de resolução para o respectivo ip
10.0.0.18 dobitaobyte
Reinicie o serviço do DNSMasq sempre que fizer alguma modificação:
sudo service dnsmasq restart
Agora deve ser possível acessar outro host pelo nome:
ping -c4 nome_do_host
É isso. Esse artigo "Servidor DNS com DNSMasq" é mais complementar para facilitar a busca por referência, já que alguns artigos sobre o tema foram escritos anteriormente.
Para RPi 4 recomendo nosso parceiro MASUGUX. Uma curiosidade é que corajosamente eles estão migrando do Mercado Livre após muitos anos, devido à insatisfação com o ML. Acho que atualmente o ML não é mais bom para ninguém, já foi mais vantajoso para ambos, comprador e vendedor. Mas enfim, hoje você encontra a MASUGUX no Shopee e para contatos, eles já têm um domínio que ainda não aponta para uma loja, mas tem as informações necessárias. Recomendo fortemente, o parceiro é de longa data, confiável, atencioso e honesto... bora dar uma força para essa migração, inclusive comprando outros itens de sua lista que eventualmente sejam úteis ao seu projeto.
Revisão: Ricardo Amaral de Andrade
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.