GeralRaspberry

DNS no Raspberry – Acessar dispositivos da rede pelo nome

DNS no Raspberry

DNS no Raspberry

DNS no Raspberry

Que tal configurar um DNS no Raspberry para acessar  dispositivos na rede pelo nome? E afinal, hoje em dia quem não tem ao menos 2 dispositivos conectados à sua rede wireless doméstica, não é mesmo? Muitas das vezes as pessoas sequer se dão conta do número de aparelhos conectados à sua rede e em muitos casos, nem é necessário saber. Mas vou exemplificar meu caso. Na sala tenho a smart TV, o blue-ray, roteador wireless, MODEM da banda larga, 2 notebooks (um meu e um de minha esposa), 1 ultrabook, 2 smartphones, 3 tablets, 1 Raspberry (que é minha central IoT, em configuração), fora os dispositivos de testes como os Arduinos com ethernet shield, vários ESP8266, boards MIPS com WiFi, Galileo, duplicador forense, etc. Para isso, basta configurar um servidor DNS no Raspberry!

Claro que não é comum ter esse tanto de dispositivos conectados, mas desses, tenho certeza que 2 ou 3 você tem aí. Então, não seria mais fácil se na necessidade de acessar um dispositivo, ou ao menos ver se ele está respondendo na rede, acessá-lo pelo nome invés de endereço IP?

A configuração proposta aqui vai te dar um recurso extra – seu servidor DNS no Raspberryr vai também resolver nomes públicos pra sua rede, ou seja, você não vai mais precisar colocar DNS externo para resolver nomes! Vamos começar a brincadeira já com resultados na sequência.

Após a instalação, teste o seu DNS, que já estará rodando como serviço do seu Raspberry (essa dica de DNS serve para PC/notebook também).

O resultado deverá mostrar 0% de perda e assim você saberá que seu DNS está funcionando adequadamente:

DNS no Raspberry
DNS no Raspberry

 

Fácil até aqui? – Ótimo, vamos começar a parte “rústica” da coisa. Alguns arquivos deverão ser editados/criados. Use um editor gráfico ou um editor de console, mas atente-se em preservar a estrutura dos dados dispostos aqui; um espaço no lugar errado e tudo estará perdido, sem exagero.

 




/etc/bind/named.conf.local

O primeiro passo é configurar a zona para a rede local. Edite esse arquivo (pré-existente porém sem conteúdo) e deixe-o de maneira semelhante, sem mexer na estrutura:

Eu sei que aqui se abre uma lacuna quanto aos exclarecimentos, mas configuração de DNS é quase um tema filosófico. Vou pular a parte chata porque assim eu me preservo das chances de erro na explicação, além de te poupar de um assunto tedioso. Agora vamos ao segundo arquivo, salve esse e sigamos:

 

/etc/bind/named.conf.options

Aqui será configurado o forwarder. Esse cara (o forwarder) é quem vai se encarregar de resolver nomes para o seu DNS, quando ele não for capaz de fazê-lo. Nesse caso, a primeira requisição será lenta, mas depois seu DNS saberá o que fazer e não refará a consulta, fique tranquilo.

Salve esse arquivo e parta para o próximo.

 

/etc/bind/seuDominio.com.db

Esse arquivo inicia com um tipo de header contendo informações mais profundas e que não cabe no momento. Em seguida, uma área onde definimos nosso mail exchange e nosso name server. Por fim, a lista de dispositivos com seus respectivos nomes.

Não é uma boa prática colocar exemplos usando informações reais, mas não quero que você tenha dúvida para implementar isso em sua rede.

 

/etc/bind/rev.1.168.192.in-addr.arpa

Hora de configurar o reverso. Esse não é um problema para configurar:

Na última linha perceba que tem um número “2”, que é o IP do meu Raspberry e que será o DNS; você também precisará apontar o IP do seu servidor DNS. Reinicie o bind, instale o dnsutils e faça um teste:

Então faça um ping pra um host. Eu testei o kgb, mas antes não se esqueça que seu DNS deve estar configurado no arquivo /etc/resolv.conf:

Esse IP é o que escolhi para o raspberry, que é o responsável pelo DNS. Depois fiz um ping em KGB:

DNS no Raspberry
DNS no Raspberry

Funcionou! Mas é chato ter que digitar kgb.dobitaobyte.lan, não acha? Seria mais legal digitar apenas kgb. Mas isso é simples de resolver, é só modificar o /etc/resolv.conf:

E como resultado:

DNS no Raspberry
DNS no Raspberry

O servidor DNS já está devidamente configurado, mas ainda restam duas questões.

 

Configurar IP estático no WiFi

Claro que você não poderá ficar recebendo IP por DHCP toda a vez que reiniciar, afinal, isso é um servidor agora! Porém, meu roteador não está funcionando a atribuição de IP por MAC, então eu decidi fazer um forward do servidor DHCP para o Raspberry – ou seja – agora o Raspberry vai servir também DHCP pra rede. Desse modo eu garanto o controle e atribuição IP por MAC para todos os hosts. Para tal, preciso primeiro configurar o IP estático na interface wlan0 e para isso algumas modificações serão necessárias no sistema.

 

/etc/wpa_supplicant/wpa_supplicant.conf

Edite esse arquivo e deixe-o com o conteúdo como este, ajustando apenas as variáveis:

Resta efetuar algumas modificações no arquivo das interfaces. Comente ou remova qualquer coisa relacionada à wlan0, substituindo-a por esse bloco de configurações:

Repare que a interface aponta para a configuração do wpa_supplicant e logo abaixo a configuração manual da interface é feita indicando “rpi” como interface. Esse “rpi” foi a string que escolhi como id da interface no arquivo de configuração do wpa_supplicant.

 

Servidor DHCP

Primeiramente, configurei meu roteador com a opção de DHCP forwarder. Depois disso, você precisará instalar o servidor DHCP no Raspberry:

Então o serviço falhará após a instalação e agora já podemos configurá-lo adequadamente.

 

/etc/dhcp/dhcpd.conf

Só um pequeno adendo antes dessa configuração. Perceba que coloquei abaixo uma range de .20 a .30, de forma que os IPs fixos estão fora da faixa de IPs distribuidos por DHCP. Isso é fundamental.

Perceba também que os hosts que receberão os mesmos IPs atribuidos pelo MAC devem conter uma seção específica, indicando o que for necessário, como no exemplo (que coloquei só um host, mas você tem que colocar uma seção para cada host).

Edite agora esse arquivo e crie uma seção assim:

Salve e então configure só mais um arquivo para indicar a interface que o dhcp-server deve escutar:

 




/etc/default/isc-dhcp-server

Edite esse arquivo e na última linha você pode ver o parâmetro INTERFACES=””. Adicione a wlan0. Deve ficar assim:

Force uma parada e reinicio do DHCP:

E você deverá obter algo assim no console:

DNS no Raspberry - DHCPCD
DNS no Raspberry

Eu poderia fazer um video pra mostrar um ping, mas vou só colocar um print:

pings - DNS no Raspbberry
DNS no Raspberry

Parece complicado, mas realmente não é, apenas necessita de cuidados. E se você conseguir atribuir os IPs estáticos através do roteador wireless, você já descarta a configuração de um servidor DHCP, tornando o processo mais simples ainda. Espero que tenha gostado!

Recomendo também a leitura desse outro artigo sobre DNS.

 

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Próximo post a caminho!

Agregador de Links - Loucuras da Net

2 comments
  1. Configurar um servidor NTP no Raspberry Pi • Do bit Ao Byte

    […] NTP é o acrônimo de “Network Time Protocol”. Ele possui um algorítmo que considera o delay e o jitter na comunicação e através da consulta com diversos servidores, faz o ajuste de tempo no sistema. Em casa tenho um Raspberry rodando 24×7 com um servidor DNS configurado localmente, de modo que minha navegação fica mais rápida, uma vez que a resolução de nomes contidos no cache do meu servidor DNS é imediata, assim não dependo de consultas externas para acessar um site. Isso somado à velocidade da minha conexão me permite carregar páginas quase que instantaneamente. Adicionalmente, consigo resolver nomes para minha rede local. Por exemplo, tenho um computador que responde ao pingar “djames”. O servidor DNS (o Raspberry) responde ao nome ns1 e assim por diante. Minha TV, meu smartphone, meu notebook e todos os dispositivos conectados da casa são reconhecidos graças ao servidor DNS. Quer configurar um servidor DNS também? Siga esse tutorial. […]

Comments are closed.

%d blogueiros gostam disto: