Escolar Documentos
Profissional Documentos
Cultura Documentos
O Domain Name System (DNS) é uma imensa base de dados distribuída em uma
estrutura hierárquica, utilizada para a tradução de nomes de domínios em endereços IP
e vice-versa. Os dados associados aos nomes de domínio estão contidos em Resource
Records ou RRs (Registro de Recursos). Atualmente existe uma grande variedade de
tipos de RRs, sendo os mais comuns:
SOA: indica a autoridade sobre uma zona.
NS: indica um servidor de nomes para uma zona.
A: mapeamento de nome para endereço (IPv4).
AAAA: mapeamento de nome para endereço (IPv6).
MX: indica um mail exchanger para um nome (servidor de e-mail).
CNAME: mapeia um nome alternativo (apelido).
PTR: mapeamento de endereço para nome.
O DNS é estruturado da seguinte forma: há os servidores raiz, que têm as informações
sobre as principais partes em que esse sistema de nomes é dividido, os domínios de
primeiro nível. Há dois tipos de domínios de primeiro nível. Os que usam as siglas que
representam os países, chamados de ccTLDs, ou country code top level domains: são os
nomes que terminam por .br para o Brasil, .pt para Portugal, etc. Há também os
genéricos, que não são vinculados a países específicos, como os .com, .org, ou .info: são
chamados de gTLDs ou generic top level domains. Há um conjunto de servidores na
Internet cuidando de cada um desses domínios de primeiro nível. Eles conhecem todas
as informações relevantes sobre eles, por isso são chamados de autoritativos.
Ao se criar um novo nome de domínio qualquer, por exemplo, para uma página Web, é
necessário configurar um servidor em algum lugar na rede, dizendo para qual endereço
IP esse nome apontará. Este será também um servidor autoritativo e o servidor do nível
hierárquico superior terá as informações dele. Por exemplo, ao criar o autoritativo do
domínio ipv6.br é preciso informar seu IP ao autoritativo do .br. Os computadores dos
usuários utilizam um componente chamado resolver, que consulta um servidor
chamado de recursivo, geralmente disponibilizado pelo provedor Internet. Os
servidores recursivos consultam toda a árvore de servidores autoritativos, começando
pela raiz, para encontrar as informações de um determinado nome.
Para que o DNS trabalhe com a versão 6 do protocolo Internet, algumas mudanças foram
definidas na RFC 3596 (Thomson et al., 2003).
- Um novo tipo de RR foi criado para armazenar os endereços IPv6 de 128 bits, o AAAA
ou quad-A. Sua função é a de traduzir nomes para endereços IPv6, de forma equivalente
à do registro do tipo A no IPv4. Caso um dispositivo possua mais de um endereço IPv6,
ele deverá ter um registro quad-A para cada um deles. Os registros são representados
como se segue:
Exemplo:
ipv6.br. IN A 200.160.6.147
ipv6.br. IN AAAA 2001:12ff:0:6172::147
- Para resolução de reverso, foi adicionado ao registro PTR o domínio ip6.arpa,
responsável por traduzir endereços IPv6 em nomes. Em sua representação, o endereço
é escrito com o bit menos significativo colocado mais à esquerda, de modo que cada
dígito hexadecimal seja separado pelo caractere ponto ., como é possível observar no
exemplo a seguir:
Exemplo:
147.6.160.200.in-addr.arpa IN PTR ipv6.br
7.4.1.0.0.0.0.0.0.0.0.0.0.0.0.0.2.7.1.6.0.0.0.0.f.f.2.1.1.0.0.2.ip6.arpa
IN PTR ipv6.br
Todos os outros tipos de registro DNS não sofreram alterações em sua forma de
configuração, apenas foram adaptados para suportar o novo tamanho dos endereços. É
muito importante notar que o protocolo por meio do qual é efetuada uma consulta não
influencia na resposta. Ou seja, um servidor é capaz de responder tanto a consultas
AAAA, quanto a consultas A, mesmo que possua conexão apenas IPv4 ou apenas IPv6.
A resposta deve ser idêntica em ambas as situações.
Roteiro experimental
Figura 1: cenário para configuração do DNS
3 – Caso o passo anterior não tenha apresentado erros de execução, inicie o processo
do BIND:
# named -c /etc/bind/named.conf
5 – Habilite o servidor DNS recursivo para aceitar requisições vindas por conexões IPv6.
Abra um terminal de n2Recursive com um duplo-clique e edite o arquivo de
configuração do BIND, localizado em /etc/bind/named.conf, de modo a acrescentar os
trechos destacados em negrito:
options {
allow-query { any; };
allow-query-cache {
127.0.0.0/8;
192.0.2.0/24;
::1/128;
2001:db8:ca5a::/48;
};
allow-recursion {
127.0.0.0/8;
192.0.2.0/24;
::1/128;
2001:db8:ca5a::/48;
};
listen-on-v6 { any; };
disable-empty-zone "2.0.192.in-addr.arpa";
disable-empty-zone "100.51.198.in-addr.arpa";
disable-empty-zone "113.0.203.in-addr.arpa";
disable-empty-zone "8.b.d.0.1.0.0.2.ip6.arpa";
};
zone "." {
type hint;
file "/etc/bind/db.root";
};
A opção listen-on-v6 com o valor any permite que qualquer endereço IPv6 disponível
em n2Recursive receba consultas DNS, enquanto os prefixos adicionados em allow-
query-cache e allow-recursion permitem que os endereços dos prefixos IPv6
especificados realizem consultas.
Caso o passo anterior não tenha apresentado erros de execução, reinicie o processo do
BIND para que a alteração seja aplicada por meio dos comandos:
# killall named
# named -c /etc/bind/named.conf
# cat /etc/bind/203.0.113.db
Observe a partir da resposta obtida que para o nome consultado há um endereço IPv4
associado, o 203.0.113.200.
Ainda no terminal de n1Client, pode-se realizar consultas relativas à resolução de endereço
reverso. Verifique um exemplo por meio do comando:
# host 203.0.113.220
O conteúdo das respostas é obtido por meio de consultas DNS recursivas. Note que apesar dos
servidores do ISP possuírem endereços IPv6 em suas interfaces de rede, nenhuma consulta DNS
feita retornou um endereço IPv6 como resposta. Isto ocorreu porque tal informação não consta
nos arquivos de zona do servidor DNS autoritativo do ISP.
3 – A seguir, configure o servidor autoritativo para que ele seja capaz tanto de receber
requisições por meio de conexões IPv6, quanto responder endereços IPv6 às consultas
realizadas. Abra um terminal de n8AuthoritativeExemplo com um duplo-clique e edite o arquivo
de configuração do BIND, localizado em /etc/bind/named.conf, de modo a acrescentar o trecho
destacado em negrito:
options {
allow-query { any; };
listen-on { any; };
listen-on-v6 { any; };
recursion no;
};
Figura 18: edição do conteúdo do arquivo named.conf
A opção listen-on-v6 com o valor any permite que qualquer endereço IPv6 disponível em
n8AuthoritativeExemplo receba consultas DNS.
# named-checkconf -p /etc/bind/named.conf
30 IN NS ns.exemplo.psi.br.
;; DNS server
ns 30 IN A 203.0.113.2
ns 30 IN AAAA 2001:db8:beba:cafe::2
;; WWW server
www 30 IN A 203.0.113.200
;; Mail server
30 IN MX 10 mail.exemplo.psi.br.
mail 30 IN A 203.0.113.220
;; SPF policy
;; SSH server
# killall named
# named -c /etc/bind/named.conf
Efetue consultas DNS para testar as novas configurações do servidor DNS autoritativo da rede
ISP em relação à zona www.exemplo.psi.br. Abra um terminal de n1Client com um duplo-clique
e efetue uma consulta por meio do comando:
# host www.exemplo.psi.br
Além das informações obtidas no passo 4, também existe agora um endereço IPv6 associado ao
nome www.exemplo.psi.br.
Para o uso da informação editada, é necessário cadastrar a zona de endereçamento reverso IPv6
no arquivo de configuração do serviço DNS BIND. Ainda no terminal de n8AuthoritativeExemplo,
edite o arquivo localizado em /etc/bind/named.conf, de modo a acrescentar as seguintes linhas:
zone "a.b.e.b.8.b.d.0.1.0.0.2.ip6.arpa" {
type master;
file "/etc/bind/2001-db8-beba.db";
};
# named-checkconf -p /etc/bind/named.conf
Caso os passos anteriores não tenham apresentado erros de execução, reinicie o processo do
BIND para que a alteração seja aplicada:
# killall named
# named -c /etc/bind/named.conf
Efetue consultas DNS para testar as novas configurações do servidor DNS autoritativo da rede
ISP em relação à zona de endereçamento reverso IPv6. Abra um terminal de n1Client e efetue
uma consulta:
# host 2001:db8:beba:cafe::220
# nslookup 2001:db8:beba:cafe::220
Figura 31: consulta mais completa
É possível realizar uma série de testes de conectividade utilizando o nome de uma máquina.
Algumas opções podem ser feitas com a utilização dos comandos ping ou ping6, traceroute ou
traceroute6 e mtr. Alguns exemplos são:
# ping www.exemplo.psi.br
# ping6 www.exemplo.psi.br
# mtr www.exemplo.psi.br
# traceroute6 mail.exemplo.psi