Bind9 – Resolvendo nome para a rede local 11


terminal
Obviamente isso não é uma novidade em redes, mas não se vê tão facilmente alguma coisa relacionada para que usuários comuns possam configurar um DNS para utilizar por exemplo, em sua casa. E por que alguém utilizaria um servidor DNS em sua própria casa? Deixe-me citar um caso da vida real:
- TV (da sala e quarto).
- Blue-ray.
- PlayStation 3.
- Celular (marido e esposa).
- Câmera do quarto do bebê conectado.
- Notebooks da casa (pai, mãe e de trabalho).
- Raspberry de desenvolvimento (ARM).
- Arduino de desenvolvimento (Atmel).
- Carambola de desenvolvimento (MIPS).
- i.MX53 de desenvolvimento (ARM).
- Roteador wireless.
Todos esses 15 ítens da casa conectados à internet. Nem parece que se tem tanta coisa em casa, não é mesmo? E para acessá-los, ou descobrir se estão conectados, ou monitorar o tráfego da rede doméstica, basta saber de cor seus respectivos IPs – e aí é que entra o DNS, pois ninguém fica decorando os endereçamentos dos dispositivos da casa. Portanto, dois passos importantes a seguir, sendo o primeiro a configuração do servidor DHCP para atribuir sempre o mesmo IP ao requisitante. Para isso, acesse a interface do seu roteador Wireless e siga as orientações disponíveis na própria interface do seu modelo.
O segundo passo é a configuração do DNS, sendo ele um desktop, seu notebook ou qualquer dispositivo embarcado que possua a habilidade de rodar um bind9.

Supondo que vá utilizar por exemplo seu notebook onde possua uma instalação de algum sistema baseado em Debian (Ubuntu, Mint, etc), execute o seguinte comando em um terminal:


sudo apt-get install bind9

Criar-se-á o diretório /etc/bind contendo alguns arquivos, dentre os quais o arquivo named.conf. Atualmente esse arquivo possui apenas apontamentos para outros arquivos de configuração:


 include "/etc/bind/named.conf.options";
 include "/etc/bind/named.conf.local";
 include "/etc/bind/named.conf.default-zones"; 

named.conf.options
Nesse arquivo, configure o forwarder para resolver os nomes que seu servidor local não seja capaz de fazê-lo, por exemplo os endereços da internet. No meu caso, utilizo os servidores DNS públicos do google, então tenho a seguinte configuração de forwarders:


forwarders {
 8.8.8.8;
 8.8.4.4;
};

Não mexa em mais nada nesse arquivo.

named.conf.local
Esse arquivo contém as informações da sua rede local, mas as configurações específicas não ficam dentro dele. Dentro você deverá ter o apontamento para os arquivos específicos de resolução e do reverso. No caso da minha rede, resolvi fazer assim:


#configuracao do reverso baseado na minha rede 172.0.0.0
zone "0.0.172.in-addr.arpa"{
  type master;
  file "/etc/bind/db.0.0.172.reverso";
};
#configuracao da rede local
zone "intranet.local"{
  type master;
  file "/etc/bind/db.intranet.local";
};

Tendo-os definido aqui, resta criar os dois arquivos de configuração. Esses arquivos DEVEM manter a formatação perfeita, portanto sugiro que escreva manualmente linha a linha, utilizando tabs nos separadores, sem nenhum errinho, porque senão não funcionará.
db.0.0.172.reverso


$TTL  604800                                                                    
@  IN SOA   intranet.local. root.intranet.local.(
1
604800
86400
2419200
604800)
;
IN NS intranet.local.
1  IN PTR   intranet.local.

Não vou especificar o que é cada parte porque é bastante chato e quase todo mundo configura com os mesmos padrões. Só cito que eu escolhi o nome intranet.local para minha rede, escolha a sua.

db.intranet.local
O arquivo é bastante parecido. Aqui cito o NS que é ‘Name Server’, que é o nome de resolução da sua rede local. Um pouco mais abaixo, os IPs da rede local. Então, tendo-os configurado para seus respectivos dispositivos no servidor DHCP, esta será a última vez que precisará sabê-los antes de utilizar seu DNS. Parece burro configurar IP a IP, mas calma; você entenderá no final, caso ainda esteja com alguma dúvida até aqui.


$TTL  604800                                                                    
@  IN SOA   intranet.local. root.intranet.local.(
1
604800
86400
2419200
604800)
;
@  IN NS intranet.local.
@  IN A  172.0.0.1
;
;ips da rede local
;
note01 IN A  172.0.0.2
note02 IN A  172.0.0.3
raspberry   IN A  172.0.0.4
tvsala  IN A  172.0.0.5
tvquarto  IN A  172.0.0.6
blueray IN A  172.0.0.7
dnsserver  IN A  172.0.0.1

E etc. Configure todos os seus dispositivos, aqui coloquei alguns como exemplo.
Depois, finalize configurando os dispositivos para que resolvam nome utilizando o ip do dns server. No caso de Linux, edite o arquivo /etc/resolv.conf e coloque:


search intranet.local
nameserver 172.0.0.1

Você pode fazer essa atribuição pelo servidor DHCP de sua rede, ou ainda em Linux (como exemplo, o Mint) você pode editar o arquivo head contido no diretório /etc/resolvconf/resolv.conf.d e adicionar lá essas duas linhas. Assim, mesmo que lhe esteja sendo atribuido outros servidores DNS, o seu estará lá em primeiro.

Feita toda essa configuração, reinicie o serviço bind:


service bind9 restart

E prove sua configuração. Vou pingar o dns (chamei de dom0) a partir de uma máquina virtual que uso para desenvolvimento de um produto alemão, sendo que o DNS é o notebook em questão. Veja o resultado no video:

Pode-se por exemplo fazer uma aplicação para o celular para não ter que levantar a noite e ver que dispositivos permaneceram ligados (com excessão ao roteador, obviamente). Chega de levantar a noite para fazer ronda!


11 thoughts on “Bind9 – Resolvendo nome para a rede local

  1. Pingback: Bind9 – Resolvendo nomes para a rede local | Linux Ajuda

  2. Pingback: Emulação de ARM com QEMU e Debian ← Do Bit Ao Byte

  3. Reply Isac abr 1,2013 19:06

    Muito bom seu post. Principalmente a parte da rede local.

    Vlw

  4. Reply Marcelo Lunardi ago 22,2013 20:35

    Juro que vou ler tudo e dar um parecer técnico! :)

  5. Reply jhonatta set 22,2013 20:53

    O dominio Precisa ser REAL (registrado) ????
    ou nao ???

  6. Reply Josseimar conrad out 11,2013 0:03

    Boa noite, estou tentando implementar esse servidor
    porem esta dando esse erro ao iniciar o bind9

    * Stopping domain name service… bind9 rndc: connect failed: 127.0.0.1#953: connection refused
    [ OK ]
    * Starting domain name service… bind9

    Att:

  7. Reply William abr 14,2014 22:03

    Olá,

    Eu tenho bind9 configurado na minha maquina porem e funcionou muito bem pelo menos umas 6 semanas, atualmente esta apresentando erros nos computadores conectados na rede. Onde vejo os logs do bind9 para analisar ?

    • Reply Djames Suhanko abr 17,2014 15:15

      Olá.
      Depende da distribuição e o modo que foi instalado, mas normalmente você encontra os logs em /var/logs.
      Para ajudar, você pode ver quais os diretórios e arquivos gerados pelo instalador:
      dpkg -L bind9 (ou o nome que seja) em Debian e variantes.
      rpm -qla bind9 (ou o nome que seja) em RedHat e variantes.
      Ou pelos arquivos de configuração (não tenho bind instalado aqui agora) dentro de /etc/bind (ou algo do tipo).

Leave a Reply