ADMINISTRAÇÃO DE REDES I LINUX
DNS - Domain Name System
Frederico Madeira
LPIC1, LPIC2, CCNA
fred@madeira.eng.br
www.madeira.eng.br
Agenda
Implementação Tipos de Arquivos de Arquivos de
Visão Geral
Em Linux Servidores Config Zona
Mensagens de
Atividades
Log
Visão Geral
DNS
- É um banco de dados hierárquico e distribuído, com milhares de
servidores através da internet, controlando as consultas de nomes e
endereços
- Servidor responsável por traduzir nomes em endereços IP (e vice
versa) de um determinado domínio.
- Evolução da tabela de hosts (/etc/hosts), resolve suas limitações
- Arquitetura cliente-servidor, onde o cliente solicita a informação ao
servidor
- Robustez e performance são obtidas através de replicação e caching
- Servidores são chamados de Name-Servers (Servidores de Nome)
DNS
- Sua organização é semelhante a do sistema de arquivos do unix (árvore invertida).
No caso do unix inicia-se com “/” e no DNS inicia-se com “.”
- Cada nó, passa a ser a raiz da nova sub-árvore. Através de consultas, acha-se
qualquer host no sistema de domínios, começando pela raiz, seguindo os ponteiros
até o domínio de destino.
- Domínios podem ser divididos em sub-domínios
- Cada domínio possuí um nome único (da mesma forma que os diretórios)
- FQDN – Full Qualify Domain Name = Nome que começa com um host e vai até a
raiz Ex: winnie.corp.hp.com
- Domínios TLDs (Top Levels Domains): org, edu, jp, com são servidos pelos
servidores raiz.
Coutry Code Top Levels Domains: .br, .us, .ca
Organizados pela IANA – Internet Assigned Numbers Authority
Lista dos TDLs: http://www.iana.org/domains/root/db/
DNS
Organização semelhante ao filesystem unix
DNS
Resolução de nomes de domínios
DNS
Consulta a base de dados da IANA – TLD .BR
DNS – Root Servers (Servidores raiz)
- No núcleo da arquitetura do DNS, existem 13 computadores especiais,
chamados de root servers
- Coordenados pela ICANN (Internet Corporation for Assigned Names and
Numbers) e são distribuídos pelo mundo.
- Todos possuem as mesmas informações vitais garantindo
balanceamaneto de carga e backup deles mesmos
- Possuem os registros de todos os TLD gerais e dos países
- Cada root server é replicado várias vezes
- Não possuem informações de hosts
DNS – Root Servers (Servidores raiz)
Lista dos Servidores Raiz
A.ROOT-SERVERS.NET. A 198.41.0.4
B.ROOT-SERVERS.NET. A 192.228.79.201
C.ROOT-SERVERS.NET. A 192.33.4.12
D.ROOT-SERVERS.NET. A 128.8.10.90
E.ROOT-SERVERS.NET. A 192.203.230.10
F.ROOT-SERVERS.NET. A 192.5.5.241
G.ROOT-SERVERS.NET. A 192.112.36.4
H.ROOT-SERVERS.NET. A 128.63.2.53
I.ROOT-SERVERS.NET. A 192.36.148.17
J.ROOT-SERVERS.NET. A 192.58.128.30
K.ROOT-SERVERS.NET. A 193.0.14.129
L.ROOT-SERVERS.NET. A 198.32.64.12
M.ROOT-SERVERS.NET. A 202.12.27.33
DNS – Root Servers (Servidores raiz)
Implementação
Visão Geral
Em Linux
DNS – Bind
- Implementado em linux pelo software Bind (bind-9.5.1-1.P1.fc10 /bind-
chroot-9.5.1-1.P1.fc10) o nome do daemon é named.
- BIND (Berkeley Internet Name Domain)
- Iniciando o serviço:
service named start
/etc/init.d/named start
- Logs do servidor de nomes podem ser vistos em /var/log/messages
- Roda em ambiente chrooted em /var/named/chroot
- Realiza balanceamento de carga via round robin
Implementação Tipos de
Visão Geral
Em Linux Servidores
DNS – Tipos de Servidor
Existem três configurações básicas:
Somente Cache (Não autorizado)
- Não são fontes oficiais de informações a respeito de domínios.
- Obtêm a resposta a partir de servidores remotos.
- Iniciam apenas com os endereços dos Root-Servers
- Armazenam as consultas feitas pelos usuários
Servidor Mestre (Autorizado para o domínio)
- Fonte oficial de todas as informações a respeito de um domínio
específico
- Carrega informações dos domínios a partir de arquivos locais
- Mantido pelo administrador do domínio
- Também chamado de servidor primário
- Armazenam as consultas feitas pelos usuários
DNS – Tipos de Servidor
Servidor Escravo (Autorizado para o domínio)
- É considerado um servidor autorizado, pois possui os dados
completos do domínio.
- Informações transferidas do servidor master (transferência de zona)
- Também chamado de servidor secundário
- Armazenam as consultas feitas pelos usuários
Implementação Tipos de Arquivos de
Visão Geral
Em Linux Servidores Config
DNS – Arquivos de Zona / Hosts
Arquivos de Configuração
/etc/named.conf
- Parâmetros básicos e aponta para as fontes de informação do banco
de dados do domínio
/var/named/named.ca
- Fornece os nomes e endereços dos servidores-raiz
Arquivos de Banco de Dados (hosts locais)
- Arquivos de zona, mapeia nomes de computador para ip
- Arquivos de zona reversa, mapeia os endereços IP em nomes
- localizados em:
/var/named/chroot/var/named (servidor master)
/var/named/chroot/var/named/slave (servidor slaves)
Configurados em : /etc/sysconfig/named
* Zona é um pedaço do espaço do nome de domínio sobre o qual um
servidor mestre tem autoridade.
DNS – /etc/named.conf
Declaração Options
- Apenas uma pode ser usada
- Localizada no inicio do arquivo
- Define parâmetros globais que definem como o Bind opera
options {
listen-on port 53 { any; };
directory \"/var/named\";
allow-query { any; };
allow-transfer { 192.168.15.10; 200.100.122.12; };
version \"Nao lhe interessa !\";
};
DNS – /etc/named.conf
Declaração Options
listen-on port 53 { any; }
- O daemon esperará solicitações em todas as interfaces
directory \"/var/named\"
- Diretório de trabalho, onde o servidor armazena os arquivos de
configuração
- Serve de PATH para o arquivos definidos nesse arquivo de configuração
allow-query { any; };
- Permite consultas de qualquer host
allow-transfer { 192.168.15.1; };
- Permite a transferência de zona para o servidor especificado
version \"Nao lhe interessa !\";
- Não informa a versão do servidor de nomes
- Previne contra ataques do topo banner grabbing
DNS – /etc/named.conf
Declaração Zone
- Mais importantes no arquivo de configuração
- Define uma zona que é servida por esse servidor
- Define o tipo de servidor que está sendo executado (master/slave)
- Define a fonte do arquivo de dados (local ou transferido do servidor
mestre)
- Define opções de processo especiais
// Master //Slave
zone \"turmalinux.com.br\" { zone \"turmalinux.com.br\" {
type master; type slave;
file \"turmalinux.com.br\"; file \"slaves/turmalinux.com.br\";
− notify yes; masters { 172.16.10.1; };
− also-notify { 172.16.19.20;} };
allow-update { localhost; };
allow-transfer { ip_slave; };
};
DNS – /etc/named.conf
Declaração Zone
zone \"turmalinux.com.br\": Determina o domínio que está sendo
configurado
type master/slave: Determina o tipo do servidor que está sendo
configurado para esse domínio.
file \"turmalinux.com.br\": Determina o arquivo onde estarão o
mapeamento dos hosts desse domínio. Fonte de informações sobre a
zone (master), depósito das informaçoes sobre a zona (slave)
allow-update { localhost; }: Especifica quais clientes estão
autorizados a atualizar o arquivo de zona dinamicamente. Normalmente,
apenas o servidor DHCP possui essa permissão, e a forma segura de se
fazer isso é rodando ambos na mesma máquina.
DNS – /etc/named.conf
Declaração Zone
Masters { 172.16.10.1; }: Indica o servidor mestre, pode haver mais
de um IP do servidor mestre (multi-homed). O servidor slave faz a
transferência de zona (baixa das informações de domínio do master
para o slave)
notify yes: Normalmente os servidores escravos verificam atualização
nos arquivos de zona dos servidores mestres. Com essa opção, o
servidor master irá notificar o slave que houve uma atualização em um
arquivo de zona através de uma mensagem DNS NOTIFY.
Also-notify { 172.16.19.20;}: Também notifica os servidores listados
Implementação Tipos de Arquivos de Arquivos de
Visão Geral
Em Linux Servidores Config Zona
DNS – Registro de banco de dados de hosts
- Chamados de Registro de Recursos Padrão ou apenas RRs.
- Todos os RRs possuem o mesmo formato básico:
[name] [ttl] IN type data
onde:
Name – Identifica o objeto de domínio afetado pelo registro
- Se tiver em branco, refere-se ao último objeto nomeado
- Se @, refere-se a origem atual ($ORIGIN ou nome do domínio na
declaração da zone
ttl – Tempo de vida, define o tempo em que esse recurso deve ser
deixado em cache, define quanto tempo os servidores remotos devem
deixar em cache as informações do seu domínio, se não especificado,
será usado o valor da diretiva $TTL.
IN – Campo class. Sempre possui esse valor
type – Tipo do registro do recurso (vide tabela)
data – Dados específicos do tipo do recurso. Diferente de acordo com
cada tipo de registro.
DNS – Registro de banco de dados de hosts
Tipos de RR
Tipo do
Nome do Registro Registro Função
Marca o começo dos dados de
uma zona e define parâmetros
que afetam a zona inteira
Start of Authority SOA
Identifica o servidor de nomes
de um domínio
Name Server NS
Mapeia um hostname para um
Address A endereço
Mapeia um endereço para um
hostname
Pointer PTR
Identifica um servidor de
Mail Exchanger MX correio para um domínio
Define um alias para um
hostname
Canonical Name CNAME
DNS – Diretivas de arquivo de zona
- Arquivos de zona oferecem 4 diretivas
- Facilitam a construção do arquivo de zona
- Define valores padrão usados pelos registros Rrs.
Diretiva $TTL
- Define o tempo em que os servidores armazenarão em cache as
informação sobre o domínio.
- Seta esse valor globalmente.
- Sobrescrita se declarada direto do RR.
- Definido em segundos ou com um valor e uma letra
1w – Uma semana
2d – Dois Dias
3h – Três horas
4m – Quatro minutos
50s – Cinco segundos
DNS – Diretivas de arquivo de zona
Diretiva $ORGIN
- Ajusta a origem atual
- Usado para completar quaisquer nome de domínio (definido na zona)
- Valor padrão é o definido na declaração da zona no named.conf
DNS – Arquivo de banco de dados de domínio (Zona)
$TTL 43200
@ IN SOA ns1.turmalinux.com.br. hostmaster.ns1.turmalinux.com.br. (
2008010802 ; serial
1H ; refresh
15M ; retry
14D ; expire
5m ; negative cache TTL
)
; Define os servidores de nome
IN NS ns1.turmalinux.com.br.
IN NS ns2.turmalinux.com.br.
; Define os servidores de mail
IN MX 5 mx1.turmalinux.com.br.
IN MX 10 mx2.turmalinux.com.br.
; Define os hosts desse domino
ns1 IN A 172.192.10.1
ns2 IN A 172.192.10.2
mx1 IN A 172.192.10.3
mx2 IN A 172.192.10.4
www IN CNAME www.terra.com.br.
DNS – Arquivo de banco de dados de domínio (Zona)
Registro SOA
-Todos os arquivos de zona começam com um registro SOA.
- O @ recorre a origem atual, no caso a que está declara no arquivo de
zona, que no nosso caso é turmalinux.com.br
- O campo de dados desse registro contém:
- ns1.turmalinux.com.br – Nome do servidor mestre para essa zona
- hostmaster.ns1.turmalinux.com.br – Endereço de email da pessoa
responsável por esse domínio (sem o sinal de @)
- 2008010802 ; Número de série do arquivo, informa que o arquivo foi
atualizado (o adm deve alterá-lo a cada mudança no arquivo de zona).
Esse valor é consultado pelo slave, se for diferente, ele transfere a
zona para ele.
- 1H : Informa de quanto em quanto tempo o servidor slave deve checar
o master por alterações na zona. (Valor mediano)
- 15M : Caso o servidor slave não consiga verificar o master, esse registro
informa de quanto em quanto tempo ele deve tentar novalmente. (valor
baixo)
DNS – Arquivo de banco de dados de domínio (Zona)
- 14D: Caso o servidor slave não consiga verificar o master, depois de
quanto tempo ele deve para de responder por aquele domínio (valor alto)
- 5M : Quando o servidor armazena uma resposta negativa (domínio não
existe), quanto tempo o servidor deve guardar em cache essa resposta
negativa (Valor deve ser pequeno)
Registro de Servidores de Nome
- Definem os servidores de nomes oficiais desse domínio.
Registro de Servidores de E-mail
- Definem os servidores de email oficiais desse domínio.
- O valor numérico após o tipo de registro, indica a prioridade
Registro de Informação de hosts
- Definem o mapeamento de host para ip
Registro CNAME
- Cria um apelido entre hosts.
- O apelido definido, não deve ser utilizada em nenhum outro registro
Implementação Tipos de Arquivos de Arquivos de
Visão Geral
Em Linux Servidores Config Zona
Mensagens de
Log
DNS – Mensagens do servidor de nomes
Mensagens do arquivo de log /var/log/messages
Indica que a zona madeira.com.br foi carregada com sucesso no servidor
de nomes.
[root@localhost named]# tail -f /var/log/messages
Apr 3 15:11:01 localhost named[32637]: zone madeira.com.br/IN: loaded serial
2008030301
Recarga do servidor, mas não houve alteração no serial da zona
Apr 3 15:15:08 localhost named[32637]: zone madeira.com.br/IN: zone serial unchanged.
zone may fail to transfer to slaves.
Apr 3 15:15:08 localhost named[32637]: zone madeira.com.br/IN: loaded serial
2008030301
Recarga do servidor, houve alteração no serial da zona
Apr 3 15:16:04 localhost named[32637]: zone madeira.com.br/IN: loaded serial
2008030302
DNS – Mensagens do servidor de nomes
Mensagens do arquivo de log /var/log/messages
Realiza a transferência de zona do master para o slave
Apr 3 15:45:47 localhost named[9614]: zone madeira.com.br/IN: Transfer started.
Apr 3 15:45:47 localhost named[9614]: transfer of 'madeira.com.br/IN' from
192.168.15.140#53: connected using 192.168.15.224#42614
Apr 3 15:45:47 localhost named[9614]: zone madeira.com.br/IN: transferred serial
2008030302
Apr 3 15:45:47 localhost named[9614]: transfer of 'madeira.com.br/IN' from
192.168.15.140#53: end of transfer
Implementação Tipos de Arquivos de Arquivos de
Visão Geral
Em Linux Servidores Config Zona
Mensagens de
Atividades
Log
DNS
Atividade 1
1. Configure sua máquina para usar o seu servidor DNS configurado
apenas no modo de cache.
2. Tente navegar na internet
DNS
Atividade 2
1. Configure em sua máquina o domínio: seusobrenome.com.br
Aponte os registros NS, MX e A para o seu IP.
2. Crie um registro do tipo A com o nome WWW apontando para o IP
da máquina de seu vizinho.
3. Acompanhe a carga do servidor no arquivo de log
4. Tente pingar os hosts
DNS
Atividade 3
1. Configure sua máquina com servidor slave do domínio da pessoa
ao seu lado.
2. Configure o seu linux para usar o servidor DNS do seu vizinho
(ele configurou como slave o nosso sobrenome.com.br), veja se você
consegue pingar no nosso domínio.
3. Acompanhe a transferência de zona
ADMINISTRAÇÃO DE REDES I LINUX
DNS - Domain Name System
Frederico Madeira
LPIC1, LPIC2, CCNA
fred@madeira.eng.br
www.madeira.eng.br
0 comments
Post a comment