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.int
Zona 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!