O que é DNS e pra que serve?
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 auto
Alterar 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.int
Acessar 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.6
Agora 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!