Raspberry e DNS – Acessar dispositivos da rede pelo nome

dnsQue tal acessar seus dispositivos na rede por um 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.

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 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:

ping

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:

ping_kgb

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:

ping_kgb1

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:

dhcpcd

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

pings

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!

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

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

Aproveite pra conhecer ou visitar o site Sistemas Embarcados, onde também escrevo alguns artigos com uma galera fera!

Próximo post a caminho!

Agregador de Links - Loucuras da Net

Comments

comments

Djames Suhanko

Djames Suhanko é Perito Forense Digital. Já atuou com deployer em sistemas de missão critica em diversos países pelo mundão. Programador Shell, Python, C, C++ e Qt, tendo contato com embarcados ( ora profissionalmente, ora por lazer ) desde 2009.

Deixe uma resposta