Servidor DNS: mudanças entre as edições
(25 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 8: | Linha 8: | ||
O '''[[DNS]]''' (''Domain Name Service''), ou '''sistema de nomes de domínio''', é um sistema que permite traduzir um '''nome de domínio''' (como por exemplo www.ifpr.edu.br) em um '''endereço IP''' (como 200.17.98.70). Isto facilita na medida em que não precisamos mais memorizar endereços IP, mas sim nomes de domínio, muito mais fáceis de serem lembrados e ao mesmo tempo identificados com o proprietário do domínio <ref name="KUROSE">KUROSE, J.F; ROSS K. W. Redes de Computadores e a Internet: Uma abordagem ''top-down'', São Paulo: Pearson, 2010.</ref>. | O '''[[DNS]]''' (''Domain Name Service''), ou '''sistema de nomes de domínio''', é um sistema que permite traduzir um '''nome de domínio''' (como por exemplo www.ifpr.edu.br) em um '''endereço IP''' (como 200.17.98.70). Isto facilita na medida em que não precisamos mais memorizar endereços IP, mas sim nomes de domínio, muito mais fáceis de serem lembrados e ao mesmo tempo identificados com o proprietário do domínio <ref name="KUROSE">KUROSE, J.F; ROSS K. W. Redes de Computadores e a Internet: Uma abordagem ''top-down'', São Paulo: Pearson, 2010.</ref>. | ||
==Registros DNS== | |||
Os '''servidores DNS''' armazenam '''registros de recursos''' ('''RR''') que fornecem o mapeamento dos '''nomes de domínio''' para '''endereços IP'''. | Os '''servidores DNS''' armazenam '''registros de recursos''' ('''RR''') que fornecem o mapeamento dos '''nomes de domínio''' para '''endereços IP'''. | ||
;Consulta ao DNS Direto: Por exemplo, para ver o '''registro''' associado ao '''nome de domínio''' www.foz.ifpr.edu.br pode-se fazer uma consulta ao ''' | ;Consulta ao DNS Direto: Por exemplo, para ver o '''registro''' associado ao '''nome de domínio''' www.foz.ifpr.edu.br pode-se fazer uma consulta ao '''servidor DNS''' do domínio com o comando '''dig''' (a saída do comando teve alguns comentários removidos para simplificar): | ||
dig www.foz.ifpr.edu.br | dig www.foz.ifpr.edu.br | ||
;; QUESTION SECTION: | ;; QUESTION SECTION: | ||
;www.foz.ifpr.edu.br. IN A | ;www.foz.ifpr.edu.br. IN A | ||
Linha 40: | Linha 40: | ||
dig -x 200.17.98.44 | dig -x 200.17.98.44 | ||
;; QUESTION SECTION: | ;; QUESTION SECTION: | ||
;44.98.17.200.in-addr.arpa. IN PTR | ;44.98.17.200.in-addr.arpa. IN PTR | ||
Linha 47: | Linha 47: | ||
98.17.200.in-addr.arpa. 1799 IN SOA ns1.ifpr.edu.br. | 98.17.200.in-addr.arpa. 1799 IN SOA ns1.ifpr.edu.br. | ||
===Principais registros DNS=== | |||
{| border="1" cellpadding="2" style="text-align: center;" | {| border="1" cellpadding="2" style="text-align: center;" | ||
!Tipo de registro | !Tipo de registro | ||
!Nome | |||
!Significado | !Significado | ||
|- | |- | ||
| A || Endereço IP do computador | | A || ''Address mapping'' || Endereço IP do computador | ||
|- | |- | ||
| NS || Servidor DNS com autoridade | | NS || ''Name Server'' ||Servidor DNS com autoridade | ||
|- | |- | ||
| CNAME || Nome alternativo | | CNAME || ''Canonic Name'' ||Nome alternativo | ||
|- | |- | ||
| MX || Servidor de email | | MX || ''Mail eXchanger'' ||Servidor de email | ||
|- | |- | ||
| SOA || | | SOA || ''Start Of Authority'' || Início da zona de autoridade | ||
|- | |- | ||
| PTR || Ponteiro para nome | | PTR || ''Pointer'' || Ponteiro para nome | ||
|- | |- | ||
| TXT || Texto livre | | TXT || ''Text'' || Texto livre | ||
|} | |} | ||
==Instalação e configuração do DNS== | |||
;Instalação: No Ubuntu o DNS é instalado através do aplicativo '''bind''' | ;Instalação do DNS: No Ubuntu o DNS é instalado através do aplicativo '''bind''': | ||
apt-get install bind9 | apt-get install bind9 | ||
;Configuração do DNS: O principal arquivo de configuração do DNS é o '''/etc/bind/named.conf'''. Por padrão o '''bind''' já vem configurado para trabalhar como servidor DNS com ''cache'', que pode resolver nomes tanto localmente quanto na rede local. | |||
O principal arquivo de configuração do DNS é o '''/etc/bind/named.conf'''. Por padrão o '''bind''' já vem configurado para trabalhar como servidor DNS com ''cache'', que pode resolver nomes tanto localmente quanto na rede local. | |||
O conteúdo do arquivo divide as configurações em partes: | :O conteúdo do arquivo divide as configurações em partes: | ||
include "/etc/bind/named.conf.default-zones"; | |||
include "/etc/bind/named.conf.local"; | |||
include "/etc/bind/named.conf.options"; | include "/etc/bind/named.conf.options"; | ||
===Zonas ''default''=== | |||
A configuração das '''default-zones''' vem pré configurada e está incluída no arquivo '''/etc/bind/named.conf.default-zones''': | |||
// prime the server with knowledge of the root servers | // prime the server with knowledge of the root servers | ||
zone "." { | zone "." { | ||
Linha 109: | Linha 110: | ||
}; | }; | ||
Cada uma das seções indica a localização de um arquivo onde está a configuração referente a ela, por exemplo, o arquivo '''/etc/bind/db.root'''. | Cada uma das seções indica a localização de um arquivo onde está a configuração referente a ela, por exemplo, o arquivo '''/etc/bind/db.root''' contém informações sobre os '''servidores DNS raiz'''. | ||
===Configuração de domínios locais em servidores primários=== | |||
A configuração de '''domínios locais''' em '''servidores DNS primários''', ou '''master''', é realizada no arquivo '''/etc/bind/named.conf.local''' e possui a seguinte estrutura: | |||
zone "dominio.edu.br" { | zone "dominio.edu.br" { | ||
type master; | type master; | ||
file "/etc/bind/db.dominio"; | file "/etc/bind/db.dominio"; | ||
allow-transfer { | allow-transfer { | ||
100.200. | 100.200.2.1; | ||
}; | }; | ||
}; | }; | ||
A primeira linha indica o domínio que se está configurando | *A primeira linha indica o domínio que se está configurando. | ||
*A segunda linha indica que é um domínio tipo ''master''. | |||
*A terceira linha especifica o arquivo de configuração desse domínio. | |||
*A linha '''allow-transfer''' indica '''servidores DNS secundários''' que receberão a transferência de uma cópia da zona, podendo, portanto, também resolverem nomes deste domínio. | |||
;/etc/bind/db.dominio: Este arquivo especifica a configuração do domínio primário e tem a seguintes estrutura: | |||
$TTL 86400 | |||
@ IN SOA ns.dominio.edu.br. email.dominio.edu.br. ( | |||
2015120801; serial | |||
3H ; refresh | |||
15M ; retry | |||
1W ; expire | |||
1D ; minimum | |||
) | |||
@ IN NS ns.dominio.edu.br. ; este é o servidor master deste domínio | |||
@ IN MX 10 mail.dominio.edu.br. | |||
dominio.edu.br A 100.200.1.1 | |||
mail A 100.200.1.1 | |||
www A 100.200.1.1 | |||
ftp A 100.200.1.1 | |||
ns A 100.200.1.1 | |||
A linha ''' | *A primeira linha inicia com @ IN SOA marcando o '''inicio da autoridade''' sobre o domínio e o nome do servidor, o qual pode ser verificado no terminal com o comando '''hostname'''. Esta linha também apresenta o email que vai responder pelo domínio (email@dominio.edu.br), entretando, usa-se ". " em lugar da "@" para indicar o email. | ||
*Cada vez que modificar o arquivo deve-se atualizar o número '''serial''', normalmente contendo a data em ordem invertida, seguido por um número de ordem. Se o número serial não for atualizado o servidor que recebe a transferência da zona não é atualizado. | |||
*Os campos (3H, 15M, 1W 3W) orientam o '''servidor DNS secundário''' sobre atualizações da zona de domínio. O campo 3H indica o tempo que o servidor deve aguardar entre atualizações (3 horas). O campo 15M indica que caso o servidor principal esteja fora do ar ele assume a responsabilidade sobre o domínio, verificando periodicamente estado do servidor principal (15 minutos). 1W é o tempo máximo que o servidor DNS secundário pode responder pelo domínio antes que as informações expirem (1 semana). 1D indica o tempo mínimo antes de devolver o domínio para o servidor DNS principal (1 dia). Os tempos também podem ser especificados em '''segundos''', por exemplo, 1H = 3600. <ref name=MORIMOTO>MORIMOTO, C. E. Seridores Linux: Guia prático, Sul Editores, Porto Alegre, 2013.</ref>. | |||
*A linha IN NS diz quem são dos '''servidores de nomes''' responsáveis pelo domínio. | |||
*A linha IN MX é necessária se se estiver usando um '''servidor de email'''. | |||
*As linhas com o registro A especificam o '''endereço IP do servidor''' para cada variação de nome. | |||
===Configuração de domínios em servidores secundários=== | |||
Os '''servidores DNS secundários''' podem funcionar como '''master''', especificando sua zona local, e também como '''slave''', recebendo a transferência de uma cópia da zona de um '''servidor DNS primário''', podendo, portanto, também resolverem nomes deste domínio. | |||
;Configuração de zona master: A configuração da zona '''master''' do '''servidor DNS secundário''' é equivalente a do '''servidor DNS primário'''. | |||
;Configuração de zona slave: Na configuração do '''servidor DNS secundário''' são incluídas zonas tipo '''slave''' e a indicação do endereço IP do servidor configurado como '''mastes''': | |||
zone "redes2.edu.br" IN { | |||
type slave; | |||
file "/var/cache/bind/slaves/db.redes2"; | |||
masters { 192.168.1.1; }; | |||
}; | |||
:O diretório '''/var/cache/bind/slaves/''' deve ser criado e servirá para guardar as cópias das zonas primárias: | |||
mkdir /var/cache/bind/slaves | |||
chown bind:bind /var/cache/bind/slaves | |||
:Deve-se dar permissão ao usuário '''bind''' para editar no diretório que será usado para guardar as cópias das zonas dos demais servidores. | |||
==Referências== | ==Referências== |
Edição atual tal como às 20h26min de 14 de dezembro de 2015
Servidor DNS
O DNS (Domain Name Service), ou sistema de nomes de domínio, é um sistema que permite traduzir um nome de domínio (como por exemplo www.ifpr.edu.br) em um endereço IP (como 200.17.98.70). Isto facilita na medida em que não precisamos mais memorizar endereços IP, mas sim nomes de domínio, muito mais fáceis de serem lembrados e ao mesmo tempo identificados com o proprietário do domínio [1].
Registros DNS
Os servidores DNS armazenam registros de recursos (RR) que fornecem o mapeamento dos nomes de domínio para endereços IP.
- Consulta ao DNS Direto
- Por exemplo, para ver o registro associado ao nome de domínio www.foz.ifpr.edu.br pode-se fazer uma consulta ao servidor DNS do domínio com o comando dig (a saída do comando teve alguns comentários removidos para simplificar):
dig www.foz.ifpr.edu.br
;; QUESTION SECTION: ;www.foz.ifpr.edu.br. IN A ;; ANSWER SECTION: www.foz.ifpr.edu.br. 172800 IN CNAME foz.ifpr.edu.br. foz.ifpr.edu.br. 23214 IN A 200.17.98.44 ;; AUTHORITY SECTION: ifpr.edu.br. 168394 IN NS noturno.ifpr.edu.br. ifpr.edu.br. 168394 IN NS ns2.ifpr.edu.br. ifpr.edu.br. 168394 IN NS mistica.ifpr.edu.br. ifpr.edu.br. 168394 IN NS ns1.ifpr.edu.br. ;; ADDITIONAL SECTION: ns1.ifpr.edu.br. 168413 IN A 200.17.98.5 ns2.ifpr.edu.br. 168413 IN A 200.17.98.6 mistica.ifpr.edu.br. 168413 IN A 200.17.98.8 noturno.ifpr.edu.br. 168413 IN A 200.17.98.7
- Consulta ao DNS Direto +trace
- Permite mostrar a árvore de servidores DNS consultados:
dig +trace www.foz.ifpr.edu.br
- Consulta ao DNS Reverso
- A consulta reversa ao serviço DNS fornece o nome de domínio a partir do endereço IP. Por exemplo, consulta reversa ao IP 200.17.98.44:
dig -x 200.17.98.44
;; QUESTION SECTION: ;44.98.17.200.in-addr.arpa. IN PTR ;; AUTHORITY SECTION: 98.17.200.in-addr.arpa. 1799 IN SOA ns1.ifpr.edu.br.
Principais registros DNS
Tipo de registro | Nome | Significado |
---|---|---|
A | Address mapping | Endereço IP do computador |
NS | Name Server | Servidor DNS com autoridade |
CNAME | Canonic Name | Nome alternativo |
MX | Mail eXchanger | Servidor de email |
SOA | Start Of Authority | Início da zona de autoridade |
PTR | Pointer | Ponteiro para nome |
TXT | Text | Texto livre |
Instalação e configuração do DNS
- Instalação do DNS
- No Ubuntu o DNS é instalado através do aplicativo bind:
apt-get install bind9
- Configuração do DNS
- O principal arquivo de configuração do DNS é o /etc/bind/named.conf. Por padrão o bind já vem configurado para trabalhar como servidor DNS com cache, que pode resolver nomes tanto localmente quanto na rede local.
- O conteúdo do arquivo divide as configurações em partes:
include "/etc/bind/named.conf.default-zones"; include "/etc/bind/named.conf.local"; include "/etc/bind/named.conf.options";
Zonas default
A configuração das default-zones vem pré configurada e está incluída no arquivo /etc/bind/named.conf.default-zones:
// prime the server with knowledge of the root servers zone "." { type hint; file "/etc/bind/db.root"; }; zone "localhost" { type master; file "/etc/bind/db.local"; }; zone "127.in-addr.arpa" { type master; file "/etc/bind/db.127"; }; zone "0.in-addr.arpa" { type master; file "/etc/bind/db.0"; } ;zone "255.in-addr.arpa" { type master; file "/etc/bind/db.255"; };
Cada uma das seções indica a localização de um arquivo onde está a configuração referente a ela, por exemplo, o arquivo /etc/bind/db.root contém informações sobre os servidores DNS raiz.
Configuração de domínios locais em servidores primários
A configuração de domínios locais em servidores DNS primários, ou master, é realizada no arquivo /etc/bind/named.conf.local e possui a seguinte estrutura:
zone "dominio.edu.br" { type master; file "/etc/bind/db.dominio"; allow-transfer { 100.200.2.1; }; };
- A primeira linha indica o domínio que se está configurando.
- A segunda linha indica que é um domínio tipo master.
- A terceira linha especifica o arquivo de configuração desse domínio.
- A linha allow-transfer indica servidores DNS secundários que receberão a transferência de uma cópia da zona, podendo, portanto, também resolverem nomes deste domínio.
- /etc/bind/db.dominio
- Este arquivo especifica a configuração do domínio primário e tem a seguintes estrutura:
$TTL 86400 @ IN SOA ns.dominio.edu.br. email.dominio.edu.br. ( 2015120801; serial 3H ; refresh 15M ; retry 1W ; expire 1D ; minimum ) @ IN NS ns.dominio.edu.br. ; este é o servidor master deste domínio @ IN MX 10 mail.dominio.edu.br. dominio.edu.br A 100.200.1.1 mail A 100.200.1.1 www A 100.200.1.1 ftp A 100.200.1.1 ns A 100.200.1.1
- A primeira linha inicia com @ IN SOA marcando o inicio da autoridade sobre o domínio e o nome do servidor, o qual pode ser verificado no terminal com o comando hostname. Esta linha também apresenta o email que vai responder pelo domínio (email@dominio.edu.br), entretando, usa-se ". " em lugar da "@" para indicar o email.
- Cada vez que modificar o arquivo deve-se atualizar o número serial, normalmente contendo a data em ordem invertida, seguido por um número de ordem. Se o número serial não for atualizado o servidor que recebe a transferência da zona não é atualizado.
- Os campos (3H, 15M, 1W 3W) orientam o servidor DNS secundário sobre atualizações da zona de domínio. O campo 3H indica o tempo que o servidor deve aguardar entre atualizações (3 horas). O campo 15M indica que caso o servidor principal esteja fora do ar ele assume a responsabilidade sobre o domínio, verificando periodicamente estado do servidor principal (15 minutos). 1W é o tempo máximo que o servidor DNS secundário pode responder pelo domínio antes que as informações expirem (1 semana). 1D indica o tempo mínimo antes de devolver o domínio para o servidor DNS principal (1 dia). Os tempos também podem ser especificados em segundos, por exemplo, 1H = 3600. [2].
- A linha IN NS diz quem são dos servidores de nomes responsáveis pelo domínio.
- A linha IN MX é necessária se se estiver usando um servidor de email.
- As linhas com o registro A especificam o endereço IP do servidor para cada variação de nome.
Configuração de domínios em servidores secundários
Os servidores DNS secundários podem funcionar como master, especificando sua zona local, e também como slave, recebendo a transferência de uma cópia da zona de um servidor DNS primário, podendo, portanto, também resolverem nomes deste domínio.
- Configuração de zona master
- A configuração da zona master do servidor DNS secundário é equivalente a do servidor DNS primário.
- Configuração de zona slave
- Na configuração do servidor DNS secundário são incluídas zonas tipo slave e a indicação do endereço IP do servidor configurado como mastes:
zone "redes2.edu.br" IN { type slave; file "/var/cache/bind/slaves/db.redes2"; masters { 192.168.1.1; }; };
- O diretório /var/cache/bind/slaves/ deve ser criado e servirá para guardar as cópias das zonas primárias:
mkdir /var/cache/bind/slaves chown bind:bind /var/cache/bind/slaves
- Deve-se dar permissão ao usuário bind para editar no diretório que será usado para guardar as cópias das zonas dos demais servidores.
Referências
--Evandro.cantu (discussão) 20h48min de 9 de dezembro de 2015 (BRST)