Sistemas Operacionais Livres
Agenda
Visão Geral Implementação Em Linux ServidoresTipos de Arquivos deConfig Arquivos deZona
Mensagens de
- É 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)
- 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
DNS
DNS
- 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
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
– 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.
No CentOS instalar os arquivos de config: caching-nameserver-9.3.6-4.P1.el5_4.2 - 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
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
Arquivos de Configuração /etc/named.conf (Fedora)
/etc/named.rfc1912.zones (dominios) (centos)
/etc/named.caching-nameserver.conf (Serviço)(centos)
- 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.
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 !";
};
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
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
DNS
– /etc/named.conf
//Slave zone "turmalinux.com.br" { type slave; file "slaves/turmalinux.com.br"; masters { 172.16.10.1; }; }; // Master zone "turmalinux.com.br" { type master; file "turmalinux.com.br"; allow-transfer { ip_slave; }; };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.
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
DNS
– /etc/named.conf
- 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
Nome do Registro Função
SOA NS A PTR MX CNAME Tipo do Registro Start of Authority
Marca o começo dos dados de uma zona e define parâmetros
que afetam a zona inteira Name Server Identifica o servidor de nomes de um domínio
Address Mapeia um hostname para um endereço
Pointer Mapeia um endereço para um hostname
Mail Exchanger Identifica um servidor de correio para um domínio
- 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
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 A 172.192.10.4
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)
- 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
Visão Geral Implementação Em Linux ServidoresTipos de Arquivos deConfig Arquivos deZona
Mensagens de Log
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
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
Visão Geral Implementação Em Linux ServidoresTipos de Arquivos deConfig Arquivos deZona
Mensagens de
Atividade 1
1.
Configure sua máquina para usar o seu servidor DNS configurado
apenas no modo de cache.
2.
Tente navegar na internet
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
Atividade 3