Administração de Redes GNU/Linux/DNS: Serviço de Nomes de Domínio: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
K2crux (discussão | contribs)
Sem resumo de edição
K2crux (discussão | contribs)
inserindo figuras e alterando as marcações anteriores %T% e %PASSO%
Linha 47:
Note que você pode instalar a versão 8 ou versão 9 do BIND, adotaremos esta última.
 
%PASSO% Vejamos a seguir a instalação do pacote bind9:
 
<pre>
Linha 59:
=== Compilando e Instalando o BIND ===
 
%PASSO% Neste caso você deve ter o código fonte do software para compilar e instalar. A última versão do código fonte pode ser encontrada no site http://www.isc.org. Para instalar o BIND:
 
<pre>
Linha 78:
O comando ln -s /usr/local/bind-9.2.0 /usr/local/bind cria um link simbólico chamado /usr/local/bind; este procedimento pode tornar a sua instalação mais versátil, pois caso seja necessário atualizar o BIND, você pode simplesmente atualizar o link para a versão mais nova. Assim os seus scripts de inicialização de serviços, por exemplo, podem fazer referência ao link (/usr/local/bind) em vez de um caminho da versão específica (/usr/local/bind-9.2.0), causando menos impacto ao atualizar uma versão.
 
%T% Sempre que encontrar algum problema com a compilação e instalação, veja o arquivos README e INSTALL que acompanham o pacote.
 
== Hierarquia ==
Linha 90:
[[File:Pag 86a.jpg|hierarquia de nomes de domínio (DNS)]]
 
%T% Os sub-domínios do domínio raiz, referentes à países são padronizados por órgão internacionais e podem ser consultados em: http://www.userpage.chemie.fu-berlin.de/diverse/doc/ISO_3166.html.
 
Este diagrama nos mostra os servidores raízes no topo e os "sub-domínios" logo abaixo. Esta configuração nos lembra a árvore de diretório Linux, pois a partir do diretório / (raiz), podemos ir identificando os sub-diretórios até chegarmos no alvo desejado. O princípio da hierarquia DNS segue a mesma analogia.
Linha 114:
* 2) o servidor raiz fornece o(s) servidor(es) responsável(is) pelo domínio .br;
 
%PASSO% Para simular a consulta que o DNS local faz com o servidor raiz, utilizamos o comando dig, disponível no pacote dnsutils:
 
<pre>
Linha 159:
</pre>
 
%PASSO% Agora devemos consultar um servidor raiz sobre o domínio br, e para isto, eu preciso do endereço IP de um servidor raiz. Como eu poderia obter esta informação? Os criadores do DNS resolveram isto utilizando um arquivo estático, que pode ser atualizado manualmente (raramente é necessário), através de um arquivo que vem com o pacote BIND, denominado db.root, que também é conhecido como arquivo Hints. Este arquivo lista os nomes dos servidores raízes, e os seus respectivos números IP's, semelhante ao arquivo /etc/hosts. Uma vez consultado este arquivo, eu posso escolher um servidor entre os vários disponíveis para que eu possa realizar a consulta.
 
Antes de realizar consultas ao seu próprio DNS, vamos avaliar alguns arquivos que o pacote bind9 instalou em seu sistema:
Linha 242:
* tipo é o tipo de consulta (NS=servidor de nome, MX=servidor de e-mail, A=endereço, etc). Por padrão o valor é "A". Você pode especificar este valor tanto em maiúscula (MX, por exemplo) ou mínuscula (mx, por exemplo).
 
%PASSO% A seguir devemos definir o tipo de pesquisa que desejamos fazer. Neste caso queremos fazer uma pesquisa em relação aos registros NS (registros de servidores de nomes), pois queremos achar o servidor de nomes autorizado que gerencia o ".br". Arbitrariamente podemos escolhemos o servidor a.root-servers.net como fonte de pesquisa, assim:
<pre>
# dig @198.41.0.4 br. ns
Linha 260:
Note no comando acima, que o dig realiza uma pergunta: "quem é o servidor de nomes do domínio br.?" para o servidor raiz "a" de número IP 198.41.0.4
 
%PASSO% Assim como foi feito para o domínio br., faremos a consulta para o domínio com.br. Vamos primeiramente escolher um dos DNS para consulta. Vejamos:
 
<pre>
Linha 276:
</pre>
 
%PASSO% Observe que a própria máquina c.dns.br, além de responder pelo domínio br. também responde pelo domínio .com.br. Logo, podemos prosseguir a consulta usando o mesmo servidor definido anteriormente, agora para o domínio sistemasabertos.com.br.:
 
<pre>
Linha 289:
Neste caso já descobrimos que o hospedeiro intranet.sistemasabertos.com.br é o servidor de nomes primário (é o primeiro da lista) pelo domínio sistemasabertos.com.br e seu endereço IP é 200.163.79.1. Observe que também existe outro hospedeiro responsável pelo domínio sistemasabertos.com.br, que é o hospedeiro ns1.xname.org,também denominada como o servidor secundário do domínio sistemasabertos.com.br.
 
%PASSO% Agora devemos prosseguir definindo o hospedeiro intranet.sistemasabertos.com.br como nosso servidor de consulta:
 
<pre>
Linha 312:
== O arquivo /etc/bind/db.root ==
 
%PASSO% Este arquivo contém uma lista de nomes de servidores raízes, espalhados em todo o mundo e é usado pelo seu servidor DNS como ponto de partida de consulta, como mostrado anteriormente. Você nunca deve editar ou modificar este arquivo, a não ser para atualizar suas informações que são raramente alteradas. Segue abaixo um exemplo deste arquivo:
 
<pre>
Linha 359:
=== Definir o servidor de DNS ===
 
%PASSO% Para definir o servidor a ser consultado, deve-se editar o arquivo /etc/resolv.conf. Vejamos um exemplo do arquivo /etc/resolv.conf:
 
<pre>
Linha 370:
Este arquivo contém entradas dos endereços IP de um ou mais servidores de nomes. Assim como entradas para busca de domínios de nomes.
 
%PASSO% A opção search é seu domínio de pesquisa padrão, ou seja, ao entrar com o host lab10 com o telnet:
 
<pre>
Linha 386:
O parâmetro "nameserver" define o endereço IP do servidor de nomes que a máquina irá utilizar para fazer consultas. Você pode ter várias entradas deste parâmetro, sendo que, somente quando o primeiro servidor de nomes definido no arquivo venha a falhar o outro será usado.
 
%PASSO% Se você estiver executando um servidor DNS na sua máquina e gostaria de usá-lo para consultas, entre com o endereço IP da máquina local ou o ip de loopback no arquivo /etc/resolv.conf:
 
<pre>
Linha 392:
</pre>
 
%PASSO% Para obter o IP do servidor de nomes de um determinado domínio, digite:
 
<pre>
Linha 398:
</pre>
 
%T% Para maiores informações sobre o utilitário dig, execute man dig.
 
=== Definir a ordem de consulta ===
Linha 404:
Percebemos pelo exemplo acima, que existem dois métodos de resoluções de nomes: o arquivo /etc/hosts e o DNS. Entretanto, qual será utilizado para resolver nomes primeiramente?
 
%PASSO% A resposta para esta pergunta está no arquivo /etc/host.conf. Vejamos um exemplo deste arquivo:
 
<pre>
Linha 424:
<br><b><i>Fig. 5 - Entendendo Zona e Domínio.</i></b>
 
%T% Domínio e sub-domínio (zona) faz analogia com diretório e sub-diretório quando refere-se a sistemas de arquivo.
 
== Servidores DNS ==
Linha 587:
Para saber mais como utilizar estes recursos de segurança, veja o "Manual do Administrador do BIND - versão 9" e veja seção 4.4 - TSIG - Transaction SIGnatures, pois por enquanto, ainda não mostraremos como utilizar este recurso de comunicação segura.
 
%T% O valor "hmac-md5" para a opção algorithm é a único algoritmo criptográfico suportado no momento.
 
==== Sentença controls ====
Linha 607:
No nosso exemplo, o valor de endereco_ip é 127.0.0.1; o valor de porta é padrão; o valor de lista_clientes é localhost; e o valor de lista_chaves é a chave key_rndc, definida anteriormente. Isto significa que o DNS irá permitir conexões de clientes pelo IP 127.0.0.1, na porta 953, permitindo somente o cliente localhost (ele próprio), utilizando a chave key_rndc. Em outras palavras, o DNS permite utilizar o comando rndc localmente.
 
%T% o utilitário rndc é um utilitário para administração do BIND, que surgiu a partir do BIND versão 9, antes desta versão o utilitário era denominado ndc, e podia administrar somente localmente o servidor de nomes.
 
É importante saber que existem outras possíveis opções para cada sentença, também inclusive com outras sentenças não constantes neste arquivo padrão. Se você desejar saber mais, indicamos o "Manual de referência do Administrador do BIND 9", com endereço disponível na seção de links indicados deste capítulo.
Linha 617:
=== O arquivo db.127 ===
 
%PASSO% Como foi dito, o arquivo db.127 é o arquivo localhost reverso, que permite que clientes resolvam o número IP 127.0.0.1 como o nome localhost. Mais a frente iremos explicar detalhadamente a sintaxe deste arquivo. Por enquanto, só o apresentaremos como é o padrão:
 
<pre>
Linha 631:
</pre>
 
%PASSO% Resumindo, a única configuração a ser feita é a alteração da diretiva listen-on do arquivo named.conf, caso queira permitir que clientes consultem seu servidor. Agora você deve inicializar o daemon do DNS, portanto, execute:
 
<pre>
Linha 637:
</pre>
 
%PASSO% A este ponto seu servidor estará respondendo a solicitações de cliente, basta configurar um cliente e testar. Você até pode definir seu próprio servidor como cliente de si mesmo . Para isto edite o arquivo /etc/resolv.conf e deixe da seguinte forma:
 
<pre>
Linha 647:
Observe que foi utilizado o endereço de loopback para indicar a própria máquina. Para testar a configuração, basta utilizar o dig para fazer consultas ao servidor.
 
%T% Não é uma obrigação fazer está última configuração, mas caso queira utilizar o DNS, você deverá fazer esta configuração tanto nos clientes como no Servidor.
 
%PASSO% Para testar o servidor de cache, execute:
 
<pre>
Linha 668:
Observe que o servidor de cache retornou o endereço que solicitamos: www.ufg.br tem endereço 200.137.192.69. Para qualquer nome que existe na Internet o servidor de cache irá conseguir fornecer, pois este consulta os servidores raízes que por sua vez delega suas consultas para o servidores responsáveis por determinado domínio. Estes servidores responsáveis irão retornar o endereço IP que se deseja. Porém você não conseguirá resolver nomes de máquinas de sua rede. Para resolver nomes de seus hosts você precisará criar o seu próprio servidor primário.
 
%T% O cache dos servidores DNS armazenam as resoluções de nome em memória e tem um prazo de expiração definido em cada registro de recurso - RR- (Será explicado no próximo tópico) , assim se uma nova máquina fazer uma outra pesquisa sobre o endereço www.ufg.br, o servidor de cache responderá sem fazer nova pesquisa aos servidores raízes.
 
== Configuração do servidor Primário ==
Linha 738:
</pre>
 
%T% estamos considerando que você tenha um domínio na Internet e quer registrá-lo. Para maiores informações de como registrar um domínio veja o endereço http://www.registro.br. Este endereço pertence a FAPESP - orgão que responsável pela domínio .br. Para outros domínios existem outros órgãos.
 
Nesta nova configuração do arquivo surgem novas zonas definidas, as zonas sistemasabertos.com.br e a 1.10.in-addr.arpa. Podemos observar também a ocorrência da instrução file que define o arquivo da base de dados de domínio. Nesta base de dados se encontra os RRs - Registro de Recurso - do DNS. Estes RRs definem servidores de nomes, endereço IP de hosts, etc, para isto existem vários tipos de registros que veremos ao criar os arquivos de banco de dados primário.
Linha 744:
Logo, devemos criar os arquivos da base de dados db.sa e db.10.1, para isso você deverá entender a sintaxe e o propósito dos registros do banco de dados.
 
%T% Observe que a zona reversa 1.10.in-addr.arpa identifica o endereço de rede de trás para frente. Lembrando que estamos considerando que o servidor está na rede 10.1.0.0/16. Caso o endereço de rede fosse 200.137.4.0/24, a zona reversa para esta rede será 4.137.200.in-addr.arpa.
 
=== Registros de Recursos DNS ===
Linha 783:
Continuando com o nosso exemplo, na máquina lab1 que será o servidor execute os seguintes passos:
 
%PASSO% 1.Crie o arquivo com nome referente a instrução file que está na zona sistemasabertos.com.br. Logo o arquivo deve ser criado no diretório /var/cache/bind e deve conter o nome db.sa.
 
<pre>
Linha 812:
<br><b><i>Fig. 7 - Ilustração de como pode ser dividido o arquivo de registro de recurso.</i></b>
 
%PASSO% Configurando o arquivo da zona direta sistemasabertos.com.br
 
Aproveitando a sintaxe do arquivo da zona localhost db.local:
Linha 868:
==== Registro A - Definindo os hosts e seus IPs ====
 
%PASSO% Acima de todas as funções o objetivo final deste arquivo é mapear nomes para endereços IP. Eis aqui um exemplo das próximas linhas do arquivo:
 
<pre>
Linha 894:
Para que o DNS forneça este serviço precisamos criar o arquivo da base de dados da zona reversa. Antes disto, devemos criar uma zona reversa no arquivo /etc/bind/named.conf e posteriormente criar o arquivo de banco de dados.
 
%T% Está zona já foi criada anteriormente com nome de "1.10.in-addr.arpa." Lembre -se também que o arquivo da base de dados definido para esta zona deve ter o nome db.10.1
 
Através do arquivo named.conf e da zona definida no exemplo, devemos criar este arquivo dentro do diretório /var/cache/bind, o arquivo deverá ter o nome db.10.1. Segue abaixo a configuração deste arquivo:
Linha 922:
 
 
%PASSO%<nowiki> </nowiki>→ Configurando o arquivo reverso
 
Aproveitando o db.127
Linha 953:
Depois de feito isto, os próximos passos são:
 
%PASSO% 1.Reinicializar o bind
 
<pre>
Linha 959:
</pre>
 
%PASSO% Depois de inicializado o named, para diagnosticar possíveis erros utilize o comando:
 
<pre>
Linha 979:
Caso a saída do comando não registre nenhum erro, sua configuração está correta
 
%PASSO% 2.O arquivo /etc/resolv.conf do servidor deve ficar com a seguinte configuração:
 
<pre>
Linha 986:
</pre>
 
%T% Os clientes deverão definir através da entrada nameserver exatamente o endereço IP do servidor.
 
<pre>
Linha 992:
</pre>
 
%PASSO% Este parâmetro é utilizado quando você digitar apenas o nome da máquina sem seu respectivo domínio, então, automaticamente o domínio sistemasabertos.com.br será acrescentado.
 
<pre>
Linha 1 002:
== dig ==
 
%PASSO% Para verificar realmente se seu DNS realmente está funcionando, use a ferramenta dig. Eis aqui um exemplo:
 
<pre>
Linha 1 027:
<br><b><i>Fig. 9 - Ilustração do servidor secundário interagindo com o primário.</i></b>
 
%PASSO% Para configurar o named.conf do servidor escravo, você pode partir do servidor de cache e adicionar mais duas zonas. Veja o exemplo do arquivo /etc/bind/named.conf.local:
 
<pre>
Linha 1 049:
Antes de iniciar o daemon named, você deve verificar o dono e o grupo do diretório do /var/cache/bind. O serviço named do servidor secundário tenta gravar os arquivos do servidor primário (master) neste diretório, o serviço named utiliza do usuário também chamado bind para escrever estes arquivos neste diretório, porém o usuário bind não tem permissão para escrever este diretório. Logo, você deve alterar esta configuração:
 
%PASSO% No servidor secundário execute:
 
<pre>
Linha 1 055:
</pre>
 
%PASSO% Depois de feito as configurações acima, é hora iniciar o serviço named. Isto considerando que já esteja configurado o servidor primário.
 
<pre>
Linha 1 156:
Depois de feito isto, basta configurar os novos servidores primários para os novos domínios: pr.sistemasabertos.com.br e bc.sistemasabertos.com.br. A configuração destes novos servidores é a configuração padrão de servidores primários.
 
%T% Sempre que alterar os arquivos pertinente ao serviço named, este deve ser reiniciado.
 
<img src="%ATTACHURLPATH%/pag_127a.jpg" alt="pag_127a.jpg" width="573" height="383" />