
Instalando DNS recursivo e autoritativo.
- Overview
- Inventário.
Overview
O Servidor DNS tem a função de resolver nomes. Como assim? Toda vez que você acessa a internet, como por exemplo o Viva o Linux , você não está acessando www.vivaolinux.com.br, está acessando um endereço IP formado por 4 octetos (162.144.34.172). Imagine você ter que gravar números ao invés de nomes toda vez que você quiser acessar a internet, seria complicado.
Segue abaixo uma ilustração de um DNS local.
Imagem 1 |
A imagem acima ilustra um DNS local recebendo uma requisição de um host da rede interna.O DNS tem autoridade sobre os dominios alfredobacker e vivaolinux.com.br bem como sobre a rede 172.16.0.0.
O DNS também serve para a economia de recursos e para o gerenciamento de domínios locais.Uma vez que seu servidor local armazena em cache de todos os seus acessos, você não precisará recorrer a um DNS externo para acessar um website. O gerenciamento de Dominios é importante para a intranet, uma vez que você pode separar seus websites por nome.Ao criar um dominio como alfredobacker, você tem autoridade sobre ele e pode criar um endereçamento local de e-mails ou o apontamento de vhosts para hosts disseminados pela sua intranet.
Inventário:
- VirtualBox
- Hardware:
- 20 Gb
- 256MB
- 1 CPU
- DNS Interno
- IP: 172.16.0.4/24
- Host Intranet
- IP: 172.16.0.4/24
- dominios:
- alfredobacker
- vivaolinux.com.br
repositórios do arquivo
/etc/apt/source.list:
deb http://ftp.br.debian.org/debian/ stretch main
deb-src http://ftp.br.debian.org/debian/ stretch main
deb http://security.debian.org/debian-security stretch/updates main contrib
deb http://ftp.br.debian.org/debian/ stretch main
deb-src http://ftp.br.debian.org/debian/ stretch main
deb http://security.debian.org/debian-security stretch/updates main contrib
deb-src http://security.debian.org/debian-security stretch/updates main contrib
deb http://ftp.br.debian.org/debian/ stretch-updates main contrib
deb-src http://ftp.br.debian.org/debian/ stretch-updates main contrib
deb http://ftp.br.debian.org/debian/ stretch-updates main contrib
deb-src http://ftp.br.debian.org/debian/ stretch-updates main contrib
Configuração do Bind:
$sudo vim /etc/resolv.conf
~
search vivaolinux.com.br
search alfredobacker
nameserver 172.16.0.4
~
~
search vivaolinux.com.br
search alfredobacker
nameserver 172.16.0.4
~
Para organização da implementação, primeiramente iremos
editar o arquivo:
/etc/hosts e inserir a entrada: 172.16.0.4
$sudo vim /etc/hosts
~
127.0.0.1 localhost 127.0.1.1 hostname 172.16.0.4 vivaolinux.com.br hostmaster.vivaolinux.com.br DNS1.vivaolinux.com.br
~
Feito isso, precisamos editar o arquivo /etc/bind/named.conf.options. Iremos inserir e substituir as entradas:
/etc/hosts e inserir a entrada: 172.16.0.4
$sudo vim /etc/hosts
~
127.0.0.1 localhost 127.0.1.1 hostname 172.16.0.4 vivaolinux.com.br hostmaster.vivaolinux.com.br DNS1.vivaolinux.com.br
~
Feito isso, precisamos editar o arquivo /etc/bind/named.conf.options. Iremos inserir e substituir as entradas:
$ vim /etc/bind/named.conf.options
~
directory "/etc/bind"; version "não disponível";
~
No mesmo arquivo coloque as entradas abaixo:
~
forwarders { 172.16.0.1; 8.8.8.8; };
listen-on { 127.0.0.1; 172.16.0.4; };
allow-query { 127.0.0.0/8; 172.16.0.0/24; };
~
~
directory "/etc/bind"; version "não disponível";
~
No mesmo arquivo coloque as entradas abaixo:
~
forwarders { 172.16.0.1; 8.8.8.8; };
listen-on { 127.0.0.1; 172.16.0.4; };
allow-query { 127.0.0.0/8; 172.16.0.0/24; };
~
Chaves(ML):
- listen-on: São os ips onde o DNS vai responder na porta 53.
- allow-query : São as redes que serão autorizadas a obter dados do DNS.
- listen-on-v6: São os ranges de IPV6
$cat named.conf.options
~
options {
directory "/etc/bind";
version "não disponível";
forwarders { 172.16.0.1; 8.8.8.8; };
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on{ 127.0.0.1; 172.16.0.4; };
allow-query { 127.0.0.1/8; 172.16.0.0/24; }; };
~
~
options {
directory "/etc/bind";
version "não disponível";
forwarders { 172.16.0.1; 8.8.8.8; };
dnssec-validation auto;
auth-nxdomain no; # conform to RFC1035
listen-on{ 127.0.0.1; 172.16.0.4; };
allow-query { 127.0.0.1/8; 172.16.0.0/24; }; };
~
arquivo ./named.conf.local
root# cat named.conf.local
~
//
////// VivaAoLinux.com.br Zone //////
//zone "vivaolinux.com.br" IN {
type master;
file "db.vivaolinux.com.br";
allow-transfer {none;};
};
//
////// AlfredoBacker Zone //////
//
zone "alfredobacker" IN {
type master;
file "db.alfredobacker";
allow-transfer {none;};
};
//
////// ZONA 172.16.0.0/24
//
zone "0.16.172.in-addr.arpa" IN {
type master;
file "rev.0.16.172";
allow-transfer {none;};
};
~
Criando Zonas
root# cat named.conf.local
~
//
////// VivaAoLinux.com.br Zone //////
//zone "vivaolinux.com.br" IN {
type master;
file "db.vivaolinux.com.br";
allow-transfer {none;};
};
//
////// AlfredoBacker Zone //////
//
zone "alfredobacker" IN {
type master;
file "db.alfredobacker";
allow-transfer {none;};
};
//
////// ZONA 172.16.0.0/24
//
zone "0.16.172.in-addr.arpa" IN {
type master;
file "rev.0.16.172";
allow-transfer {none;};
};
~
Criando Zonas
Iremos criar o Arquivo: /etc/bind/db.vivaolinux.com.br
root#vim db.vivaolinux.com.br
~
$TTL 3600
@ IN SOA vivaolinux.com.br. hostmaster.vivaolinux.com.br. (
2008111800root#vim db.vivaolinux.com.br
~
$TTL 3600
@ IN SOA vivaolinux.com.br. hostmaster.vivaolinux.com.br. (
900
400
3600000
3600
)
@ IN NS vivaolinux.com.br.
@ IN A 172.16.0.2
@ IN MX 10 mail.vivaolinux.com.br.
mail IN A 172.16.0.3
WWW IN CNAME vivaolinux.com.br.
~
root#vim db.alfredobacker
~
$TTL 3600
@ IN SOA alfredobacker. hostmaster.alfredobacker. (
2008111801
900
400
3600000
3600
)
@ IN NS alfredobacker.
@ IN A 172.16.0.10
@ IN MX 10 mail.alfredobacker.
mail IN A 172.16.0.11
www IN CNAME alfredobacker.
~
As chaves
de registro:
A chave de registro SOA indica o inicio de uma zona de autoridade: 2008111800 será o número serial, ou seja, o slave verá que o servidor master foi modificado através desse número, caso você modifique algo no seu servidor DNS, TEM QUE MODIFICAR O SERIAL TAMBÉM, colocando 2008111801 e assim por diante.
A segunda entrada 900 será o update, ou seja, de quanto em quanto tempo o slave verificará se teve alguma modificação em algum arquivo de zona.
A terceira entrada 400 será o retry, ou seja: caso o servidor master pare de funcionar por algum motivo, de quanto em quanto tempo o slave verificará se o master voltou.
A quarta entrada, 3600000 será o expire, ou seja, o servidor master caiu, após quanto tempo o servidor slave irá parar de resolver nomes também.
A quarta entrada 3600 será o negative cachê, é o tempo de cache do servidor.
A chave de registro NS (NameServer) indica o nome da autoridade do domínio. A chave A indica o endereço de host. A chave MX 10 indica o servidor de email para o domínio, o número 10 é a prioridade desse servidor. A chave CNAME é o nome canônico.
A chave de registro SOA indica o inicio de uma zona de autoridade: 2008111800 será o número serial, ou seja, o slave verá que o servidor master foi modificado através desse número, caso você modifique algo no seu servidor DNS, TEM QUE MODIFICAR O SERIAL TAMBÉM, colocando 2008111801 e assim por diante.
A segunda entrada 900 será o update, ou seja, de quanto em quanto tempo o slave verificará se teve alguma modificação em algum arquivo de zona.
A terceira entrada 400 será o retry, ou seja: caso o servidor master pare de funcionar por algum motivo, de quanto em quanto tempo o slave verificará se o master voltou.
A quarta entrada, 3600000 será o expire, ou seja, o servidor master caiu, após quanto tempo o servidor slave irá parar de resolver nomes também.
A quarta entrada 3600 será o negative cachê, é o tempo de cache do servidor.
A chave de registro NS (NameServer) indica o nome da autoridade do domínio. A chave A indica o endereço de host. A chave MX 10 indica o servidor de email para o domínio, o número 10 é a prioridade desse servidor. A chave CNAME é o nome canônico.
Criando Zonas Reversas:
Iremos criar o Arquivo: /etc/bind/db.vivaolinux.com.br
root# vim db.vivaolinux.com.br
root# vim db.vivaolinux.com.br
~
$TTL 3600 @ IN SOA vivaolinux.com.br. hostmaster.vivaolinux.com.br. (
2008111800
900
400
3600000
3600
)
@ IN NS vivaolinux.com.br.
@ IN A 172.16.0.2
@ IN MX 10 mail.vivaolinux.com.br.
mail IN A 172.16.0.3
www IN CNAME vivaolinux.com.br.
~
$TTL 3600 @ IN SOA vivaolinux.com.br. hostmaster.vivaolinux.com.br. (
2008111800
900
400
3600000
3600
)
@ IN NS vivaolinux.com.br.
@ IN A 172.16.0.2
@ IN MX 10 mail.vivaolinux.com.br.
mail IN A 172.16.0.3
www IN CNAME vivaolinux.com.br.
~
Criando Zonas Reversas.
Crie o arquivo: /etc/bind/rev.vivaolinux.com.br
root#vim
/etc/bind/rev.vivaolinux.com.br
~
$TTL 3600
@ IN SOA vivaolinux.com.br.
hostmaster.vivaolinux.com.br. (
2008111800
900
400
3600000
3600
)
@ IN NS vivaolinux.com.br.
2 IN PTR vivaolinux.com.br.
@ IN MX 10 mail.vivaolinux.com.br.
3 IN PTR mail.vivaolinux.com.br
;;
;;;;;; AlfredoBacker ;;;;;;
;;
@ IN NS alfredobacker.
10 IN PTR alfredobacker.
@ IN MX 10 mail.alfredobacker.
11 IN PTR mail.alfredobacker.
~
A chave de registro PTR (pointer) indica um ponteiro para outro lado do nome do domínio (reverso).
Configurando o servidor DNS em um host Local.
Edite o arquivo: /etc/resolv.conf
vim /etc/resolv.conf
~
nameserver 172.16.0.4
~
vim /etc/resolv.conf
~
nameserver 172.16.0.4
~
Teste o DNS com o Comando Host:
root # host 172.16.0.3 && host 172.16.0.4
stdout:
~
3.0.16.172.in-addr.arpa domain name pointer mail.vivaolinux.com.br.0.16.172.in-addr.arpa.
4.0.16.172.in-addr.arpa domain name pointer vivaolinux.com.br.
~
root # host 172.16.0.10 && host 172.16.0.11
~
10.0.16.172.in-addr.arpa domain name pointer alfredobacker.
11.0.16.172.in-addr.arpa domain name pointer mail.alfredobacker.
~
root# host vivaolinux.com.br && host mail.vivaolinux.com.br
~
vivaolinux.com.br has address 172.16.0.2
vivaolinux.com.br mail is handled by 10 mail.vivaolinux.com.br.
mail.vivaolinux.com.br has address 172.16.0.3
~
root # host alfredobacker && host mail.alfredobacker
~
alfredobacker has address 172.16.0.10
alfredobacker mail is handled by 10 mail.alfredobacker.
mail.alfredobacker has address 172.16.0.11
~
~
alfredobacker has address 172.16.0.10
alfredobacker mail is handled by 10 mail.alfredobacker.
mail.alfredobacker has address 172.16.0.11
~
Feitos estes testes, seu DNS local está habilitado a funcionar.
Bibliografia:
[1]: Tutorial, viva ao linux.
[1]: Tutorial, viva ao linux.
Comments
Post a Comment