Você está na página 1de 38

ADMINISTRAÇÃO DE REDES I

LINUX

DNS
Domain Name System

Frederico Madeira
LPIC­1, CCNA
fred@madeira.eng.br
www.madeira.eng.br
Agenda

- Visão geral do DNS

- Implementação em Linux

- Tipos de Servidores

- Arquivos de Configuração

- Arquivos de Zona

- Mensagens de log

- Atividades
Agenda

- Visão geral do DNS

- Implementação em Linux

- Tipos de Servidores

- Arquivos de Configuração

- Arquivos de Zona

- Mensagens de log

- Atividades
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

- 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

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
Agenda

- Visão geral do DNS

- Implementação em Linux

- Tipos de Servidores

- Arquivos de Configuração

- Arquivos de Zona

- Mensagens de log

- Atividades
DNS
Bind

- Implementado em linux pelo software Bind (bind-9.5.0-16.a6.fc8 /bind-


chroot-9.5.0-16.a6.fc8 ) 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


Agenda

- Visão geral do DNS

- Implementação em Linux

- Tipos de Servidores

- Arquivos de Configuração

- Arquivos de Zona

- Mensagens de log

- Atividades
DNS

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

- 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
Agenda

- Visão geral do DNS

- Implementação em Linux

- Tipos de Servidores

- Arquivos de Configuração

- Arquivos de Zona

- Mensagens de log

- Atividades
DNS
Arquivos de Configuração / Banco de Dados

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.

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)
DNS
/etc/named.conf

Declaração Zone

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


Agenda

- Visão geral do DNS

- Implementação em Linux

- Tipos de Servidores

- Arquivos de Configuração

- Arquivos de Zona

- Mensagens de log

- Atividades
DNS
Registros de banco de dados do DNS

- 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
Registros de banco de dados do DNS

Tipos de RR

Nome do Registro Tipo do Registro Função


Marca o começo dos dados de uma zona
e define parâmetros que afetam a zona
Start of Authority SOA inteira
Identifica o servidor de nomes de um
Name Server NS domínio
Address A Mapeia um hostname para um endereço
Pointer PTR Mapeia um endereço para um hostname
Identifica um servidor de correio para um
Mail Exchanger MX domínio
Canonical Name CNAME Define um alias para um hostname
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

- Arquivos de zona oferecem 4 diretivas


- Facilitam a construção do arquivo de zona
- Define valores padrão usados pelos registros Rrs.

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
Agenda

- Visão geral do DNS

- Implementação em Linux

- Tipos de Servidores

- Arquivos de Configuração

- Arquivos de Zona

- Mensagens de log

- Atividades
DNS
Mensagens 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 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
Agenda

- Visão geral do DNS

- Implementação em Linux

- Tipos de Servidores

- Arquivos de Configuração

- Arquivos de Zona

- Mensagens de log

- Atividades
DNS
Prática

Instalação do Bind

export http_proxy=http://cst03:123456@192.168.0.254:3128
export ftp_proxy=http://cst03:123456@192.168.0.254:3128

yum -y install bind bind-chroot


DNS
Prática

Atividade 1.

- Configure sua máquina para usar o seu servidor DNS configurado


apenas no modo de cache.

- Tente navegar na internet


DNS
Prática

Atividade 2.

- Configure em sua máquina o domínio: seusobrenome.com.br


Aponte os registros NS, MX e A para o seu IP.

- Crie um registro do tipo A com o nome WWW apontando para o IP


da máquina de seu vizinho.

- Acompanhe a carga do servidor no arquivo de log

- Tente pingar os hosts


DNS
Prática

Atividade 3.

- Configure sua máquina com servidor slave do domínio da pessoa


ao seu lado.

- Configure o seu linux para usar o servidor DNS do seu vizinho


(ele configurou como slave o nosso domínio), veja se você
consegue pingar no nosso domínio.

- Acompanhe a transferência de zona


ADMINISTRAÇÃO DE REDES I
LINUX

DNS
Domain Name System

Frederico Madeira
LPIC­1, CCNA
fred@madeira.eng.br
www.madeira.eng.br