O Domain Name System (DNS) é um sistema de gerenciamento de nomes hierárquico e distribuído para computadores, serviços ou qualquer recurso conectado à Internet ou numa rede privada.
O DNS apresenta uma arquitetura cliente/servidor, podendo envolver vários servidores DNS na resposta a uma consulta. A função do servidor DNS é resolver nomes para os endereços IP e de endereços IP para nomes respectivos, e permitindo a localização de hosts no determinado domínio.
O software mais utilizado para configurar servidor DNS no GNU/Linux e FreeBSD é o BIND. Este software geralmente se encontra localizado no servidor DNS primário. O servidor DNS secundário é uma espécie de cópia de segurança do servidor DNS primário.
Depois de conhecer o DNS e para que serve, pode-se seguir o howto seguinte para configurar o servidor DNS na sua rede, apenas adapte o endereço IP e o nome de domínio.
Observação 1: Para uso de servidor DNS na rede interna é comum usar o sufixo .int para representar interno e não confundir com um domínio externo. Já se for configurar o servidor DNS na rede externa disponível na Internet, usa normal, só antes deve registrar o domínio no https://registro.br
Observação 2: O presente howto foi configurado e testado na distribuição Linux Debian 9, mas pode ser configurado na distro Ubuntu também.
Ok. Vamos nessa então? Abre o terminal, logue como root e segue os procedimentos seguintes.# apt-get update
# apt-get install bind9 dnsutils whois
Observação: Este howto será utilizado o editor de texto Vim, mas o leitor pode usar outro editor que achar melhor.
Para novatos no editor Vim, para salvar e sair é ESC + :x
Configurando endereço IP fixo
# vim /etc/network/interfaces
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # The primary network interface allow-hotplug enp0s3 iface enp0s3 inet static address 192.168.1.6 netmask 255.255.255.0 gateway 192.168.1.1 # This is an autoconfigured IPv6 interface iface enp0s3 inet6 autoAlterar os arquivos hosts e hostname respectivamente
# vim /etc/hosts
Adicione a linha
127.0.0.1 localhost 127.0.1.1 perolanegra 192.168.1.6 perolanegra.saitam.int perolanegra 192.168.1.6 saitam.int 192.168.1.6 app.saitam.int 192.168.1.6 adm.saitam.int 192.168.1.6 carreiras.saitam.int # The following lines are desirable for IPv6 capable hosts ::1 localhost ip6-localhost ip6-loopback ff02::1 ip6-allnodes ff02::2 ip6-allrouters
# vim /etc/hostname
perolanegra.saitam.intAcessar até o diretório onde estão os arquivos do Bind
# cd /etc/bind
Criar as zona direta e reversa no arquivo named.conf.local
# vim named.conf.local
//Zona direta zone "saitam.int" { //nome de domínio type master; file "/etc/bind/db.saitam"; //nome do arquivo que contém os endereços DNS }; //Zona reversa zone "1.168.192.in-addr.arpa" { //último quarteto do IP type master; file "/etc/bind/db.192"; };Verificar se o arquivo de configuração contém erros
# named-checkconf
Criar os arquivos da zona direta e reversa
Zona direta
# vim db.saitam
; ; BIND data file for local loopback interface ; $TTL 604800 @ IN SOA perolanegra.saitam.int root.saitam.int ( 2018031000 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS perolanegra. @ IN A 192.168.1.6 @ IN AAAA ::1 router IN A 192.168.1.1 gateway CNAME router app IN A 192.168.1.6 adm IN A 192.168.1.6 carreiras IN A 192.168.1.6 www CNAME saitam.intZona reversa
# vim db.192
; ; BIND reverse data file for local loopback interface ; $TTL 604800 @ IN SOA perolanegra.saitam.int root.saitam.int. ( 2018031000 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Negative Cache TTL ; @ IN NS perolanegra.saitam.int. 6 IN PTR perolanegra.saitam.int. 6 IN PTR saitam.int. 1 IN PTR router.saitam.int. 6 IN PTR app.saitam.int. 6 IN PTR adm.saitam.int. 6 IN PTR carreiras.saitam.int.Verificar se o arquivo de zona direta e reversa contém erros
# named-checkzone saitam.int /etc/bind/db.saitam.int
zone saitam.int/IN: loaded serial 2018031000 OK
# named-checkzone 1.168.192.in-addr /etc/bind/db.192
zone 1.168.192.in-addr/IN: loaded serial 2018031000 OK
Caso tenha ocorrido algum erro nos testes acima no seu servidor DNS, revise os arquivos de configuração com atenção, pois um ";" pode fazer a diferença na configuração do Bind.
Reiniciar o serviço Bind9# /etc/init.d/bind9 restart
[ ok ] Restarting bind9 (via systemctl): bind9.service.
Para podermos usar o domínio configurado deve adicionar no arquivo /etc/resolv.conf Nas máquinas clientes deve trocar o IP do servidor DNS que utiliza pelo o IP da máquina que configurou o servidor DNS para poder resolver nomes usando o servidor DNS configurado.
# vim /etc/resolv.conf
domain saitam.int search saitam.int nameserver 192.168.1.6Agora vamos verificar a resolução de nomes
# nslookup saitam.int
Server: 192.168.1.6 Address: 192.168.1.6#53 Name: saitam.int Address: 192.168.1.6
# nslookup router
Server: 192.168.1.6 Address: 192.168.1.6#53 Name: router.saitam.int Address: 192.168.1.1
# nslookup 192.168.1.6
Server: 192.168.1.6 Address: 192.168.1.6#53 6.1.168.192.in-addr.arpa name = carreiras.saitam.int. 6.1.168.192.in-addr.arpa name = saitam.int. 6.1.168.192.in-addr.arpa name = app.saitam.int. 6.1.168.192.in-addr.arpa name = adm.saitam.int. 6.1.168.192.in-addr.arpa name = perolanegra.saitam.int.Referências
[1] https://pt.wikipedia.org/wiki/Domain_Name_System
[2] http://tldp.org/HOWTO/DNS-HOWTO-5.html
[3] https://www.isc.org/downloads/bind/
Feito!
Não use a diretiva forwarders num DNS local. Com essa diretiva o DNS do Google será consultado, que não faz diferença alguma do que meramente colocar o 8.8.8.8 no resolv.conf. Deixe sem forwarders que o Bind vai buscar nos DNS raiz e trazer os IPs corretos para as inúmeras CDNs atuando no mercado.
ResponderExcluir