Prática DNS Edgard Jamhour Exercícios práticos sobre DNS. Esse roteiro de prática inclui apenas aspectos básicos de configuração desses serviços. Apenas esses aspectos básicos é que serão cobrados em relatório. Todavia, os alunos tem toda a liberdade de experimentar opções de configuração avançadas utilizando o ambiente de máquinas virtuais. 1
Cenário 1: Instalação Código estudante: (101) 11 12 13 14 - X pucpr.br DNS1 20.0.13.14 eth0 espec 20.0.0.1 PASSO 1: Criar a máquina virtual - D S1 Abra um terminal na espec, e lance uma máquina virtual: mkdir dns cd dns /usr/local/uml/linux32.jamhour dns1 login: root <ENTER> PASSO 2: Configurar um endereço IP e rota default Atribua um endereço IP para interface eth0 da sua VM. Se sua carteira de estudante for: (101)11121314-0, você pode criar o endereço: ifconfig eth0 20.0.13.14 route add default gw 20.0.0.1 PASSO 3: Instalar pacotes Para essa prática é necessário instalar o servidor DNS (BIND versão 9.4) na sua VM. Você pode copiar os pacotes necessários digitando o seguinte comando na sua VM: wget 20.0.0.1/~jamhour/pacotes/dns.tar.gz Após efetuar a cópia, é necessário descompactar os pacotes: tar -xzf dns.tar.gz cd dnsdhcp<tab> Para instalar os pacotes digite os seguintes comandos na seqüência: rpm -ivh bind-libs<tab> rpm -ivh bind-9.4<tab> 2
Cenário 1: Configuração options { directory "/var/named/"; forwarders { 20.0.0.1; zone pucpr.br" { type master; file ""; $TTL 86400 @ IN SOA dns.pucpr.br. admin ( 2 ; serial 28800 ; refresh 7200 ; retry 604800 ; expire 86400 ; ttl ) IN NS dns dns IN A 20.0.13.14 IN CNAME dns espec IN A 20.0.0.1 dns.ppgia IN A 20.1.13.14 Quando você descompactou o arquivo dns.tar.gz, você obtém também dois arquivos exemplo para configurar o servidor DNS: : permite declarar as zonas e configurar os forwarders : permite criar uma zona específica Copie o arquivo para o diretório /etc: cp /etc Copie o arquivo zone1.zone para o diretório /var/named cp zone1.zone /var/named Inicialize o servidor DNS: service named start Quando você executa esse comando, o servidor NDS (named) lê o arquivo de configuração, localiza o arquivo de zona e o carrega em memória. Para verificar se houve algum erro nesse processo, digite: tail /var/log/messages O DNS armazena as mensagens de erro no arquivo de log messages. Como esse arquivo é muito grande, o comando tail indica para mostrar só as últimas entradas incluídas no arquivo. Esse comando é muito útil, pois muitas vezes comete-se erros de sintaxe, que impedem a carga do arquivo de zona. Todas as vezes que você efetuar uma alteração no arquivo de zona ou no arquivo, você precisará informar ao servidor DNS que ele precisa se atualizar. Isso é feito através de um outro utilitário denominado rndc. rndc status Indica o status do servidor bind (connection refused indica erro na inicialização do DNS) rndc reload Recarrega os arquivos de zona e configuração (você deve usar esse comando se fizer alguma alteração nos arquivos). 3
Cenário 1: Testes dns = pucpr espec ppgia dns $TTL 86400 @ IN SOA dns.pucpr.br. admin ( 2 ; serial 28800 ; refresh 7200 ; retry 604800 ; expire 86400 ; ttl ) IN NS dns dns IN A 20.0.13.14 IN CNAME dns espec IN A 20.0.0.1 ppgia IN NS dns.ppgia dns.ppgia IN A 20.1.13.14 Para que o seu servidor DNS seja o servidor padrão da sua máquina virtual, você deve editar o arquivo /etc/resolv.conf e incluir a seguinte linha: nameserver 127.0.0.1 Altere o arquivo de zona substituindo o endereço do servidor dns pelo seu endereço de VM. Após isso, execute o comando de atualização do DNS: rndc reload Efetue o teste do seu servidor testando primeiro os registros de sua zona: ping.pucpr.br ping espec.pucpr.br ping dns.pucpr.br Efetue o teste do forwarder, testando nomes fora do sua zona. Nesse caso, não haverá resposta do ping (por falta de roteamento entre a espec e endereços externos), mas você perceberá que houve tradução do endereço: ping.google.com.br Existe um utilitário mais adequado para fazer os testes do servidor DNS. Esse utilitário é o dig. Sua sintaxe é a seguinte: dig @servidor +option FQDN O parâmetro servidor é o IP do servidor DNS que você quer testar. O utilitário dig tem várias opções, por exemplo: +[no]recursive (ativa ou desativa consultas recursivas) O dig está instalado apenas na espec, então você precisará abrir um novo terminal (fora da máquina virtual) para executar esse comando: dig @20.0.13.14.pucpr.br 4
Cenário 2: Instalação Código estudante: (101) 11 12 13 14 - X pucpr.br DNS1 20.0.13.14 DNS2 20.1.13.14 pucpr.br eth0 espec 20.0.0.1 PASSO 1: Criar a máquina virtual D S2 Abra um novo terminal na espec, e entre no mesmo diretório criado para o cenário 1 : cd dns /usr/local/uml/linux32.jamhour dns2 login: root <ENTER> PASSO 2: Configurar um endereço IP e rota default Atribua um endereço IP para interface eth0 da sua VM. Se sua carteira de estudante for: (101)11121314-0, você pode criar o endereço: ifconfig eth0 20.1.13.14 route add default gw 20.0.0.1 PASSO 3: Instalar pacotes Para essa prática é necessário instalar o servidor DNS (BIND versão 9.4) na sua VM. Você pode copiar os pacotes necessários digitando o seguinte comando na sua VM: wget 20.0.0.1/~jamhour/pacotes/dns.tar.gz Após efetuar a cópia, é necessário descompactar os pacotes: tar -xzf dns.tar.gz cd dnsdhcp<tab> Para instalar os pacotes digite os seguintes comandos na seqüência: rpm -ivh bind-libs<tab> rpm -ivh bind-9.4<tab> 5
Cenário 2: Configuração DNS2 options { directory "/var/named/"; forwarders { 20.0.13.14; zone ppgia.pucpr.br" { type master; file ""; $TTL 86400 @ IN SOA dns.ppgia.pucpr.br. admin ( 2 ; serial 28800 ; refresh 7200 ; retry 604800 ; expire 86400 ; ttl ) IN NS dns dns IN A 20.1.13.14 IN CNAME dns Quando você descompactou o arquivo dns.tar.gz, você obtém também dois arquivos exemplo para configurar o servidor DNS: : permite declarar as zonas e configurar os forwarders : permite criar uma zona específica Altere os arquivos de acordo com o exemplo da figura. Observe que os endereços IP em vermelho precisam ser substituídos pelo endereço IP da sua VM. Copie o arquivo para o diretório /etc: cp /etc Copie o arquivo zone1.zone para o diretório /var/named cp zone1.zone /var/named Inicialize o servidor DNS: service named start Quando você executa esse comando, o servidor NDS (named) lê o arquivo de configuração, localiza o arquivo de zona e o carrega em memória. Para verificar se houve algum erro nesse processo, digite: tail /var/log/messages Para que o seu servidor DNS seja o servidor padrão da sua máquina virtual, você deve editar o arquivo /etc/resolv.conf e incluir a seguinte linha: nameserver 127.0.0.1 Efetue o teste do seu servidor testando primeiro os registros de sua zona e depois o de zonas externas: ping dns.ppgia.pucpr.br ping.pucpr.br ping espec.pucpr.br 6
Cenário 2: Configuração DNS 1 options { directory "/var/named/"; forwarders { 20.0.0.1; zone pucpr.br" { type master; file ""; zone ppgia.pucpr.br { type forward; forwarders {20.1.13.14; forward only; $TTL 86400 @ IN SOA dns.pucpr.br. admin ( 2 ; serial 28800 ; refresh 7200 ; retry 604800 ; expire 86400 ; ttl ) IN NS dns dns IN A 20.0.13.14 IN CNAME dns espec IN A 20.0.0.1 ppgia IN NS dns.ppgia dns.ppgia IN A 20.1.13.14 A fim de completar o cenário 2, é necessário fazer com que as consultas feitas ao servidor DNS 1 para a zona delegada ppgia.pucpr.br sejam direcionadas para o servidor DNS 2. Para isso é necessário que você altere os arquivos e conforme indicado na figura. Os itens em vermelho correspondem ao que precisa ser modificado. Cuidado para utilizar o endereço correto da sua VM. Após a alteração é necessário digitar: rndc reload Para efetuar o teste final, abra um terminal na espec e efetue as seguintes consultas utilizando o dig: Consulta recursiva para o servidor DNS1 dig @20.0.13.14.ppgia.pucpr.br Consulta não recursiva para o servidor DNS1 dig @20.0.13.14 +norecurse.ppgia.pucpr.br 7
Relatório da Prática Nome Matrícula Arquivo de configuração do DNS 1 Arquivo de configuração do DNS 2 Arquivo de zona do DNS 1 Arquivo de zona do DNS 2 Resultado da consulta recursiva Resultado da consulta não recursiva O relatório é baseado apenas no cenário 2. Para transferir os arquivos das máquinas virtuais para sua área de trabalho na espec digite: No DNS1 scp /etc/ seu_login@20.0.0.1:. scp /var/named/ seu_login@20.0.0.1:. No DNS2 scp /etc/ seu_login@20.0.0.1:. scp /var/named/ seu_login@20.0.0.1:. É necessário também salvar o resultado das consultas recursiva e não recursiva do domínio delegado ppgia.pucpr.br: Consulta recursiva para o servidor DNS1 dig @20.0.13.14.ppgia.pucpr.br > recursiva.txt Consulta não recursiva para o servidor DNS1 dig @20.0.13.14 +norecurse.ppgia.pucpr.br > nrecursiva.txt Para montar o relatório, utilize um editor de texto na espec, e compile todos os arquivos em um mesmo relatório, incluindo seu nome e um pequeno descritivo de cada arquivo. 8