Edgard Jamhour, 07/06/2011 14:43 PRÁTICA DE DNS - LINUX Esses exercícios devem ser executados através do servidor de máquinas virtuais: espec.ppgia.pucpr.br ou através da imagem fornecida no DVD. DIFERENÇAS NO ROTEIRO EM RELAÇÃO A IMAGEM DO DVD Este roteiro foi desenvolvido para ser executado primariamente no servidor espec. Os alunos que utilizam a imagem do DVD também podem fazê-lo, mas com algumas diferenças. Os comandos do roteiro seguem a classificação a seguir: 1.A) INSTALAÇÃO DO SERVIDOR DNS Os comandos dentro de blocos de linhas simples devem ser executados em qualquer ambiente. Os comandos dentro de blocos de linhas múltiplas só devem ser executados no ambiente do servidor espec. Os comandos dentro de blocos com linhas em negrito devem ser executados apenas no ambiente do DVD. No ambiente HOST, execute os seguintes comandos: wget espec.ppgia.pucpr.br/jam_pacotes/dns.tar.gz tar -xzf dns.tar.gz Abra um terminal na espec, e lance uma máquina virtual: mkdir dns cd dns linux32.redes dns1 login: root <ENTER> INICIALIZAÇÃO DO AMBIENTE DO DVD No ambiente DVD é necessário digitar os seguintes comandos no terminal do ambiente host antes de iniciar a prática: sudo /etc/init.d/conftap.sh sudo iptables -F sudo services sshd restart sudo iptables -t nat -A POSTROUTING -j MASQUERADE Após digitar esses comandos feche o terminal. Utilize um novo terminal para lançar as máquinas virtuais, senão você irá receber mensagens de erro temporárias "send_sock sending to fd 4 Resource temporarily unavailable" que geralmente ficam escondidas. No ambiente DVD não é necessário instalar nenhum pacote, pois todos já estão instalados. 1. CENÁRIO 1: SERVIDOR DNS SIMPLES 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 Na máquina UML dns copie os arquivos necessários: scp [email protected]:dns/named.conf . scp [email protected]:dns/zona1.zone . Um arquivo na VM UML precisa ser criado pelo vi através dos comandos abaixo: vi /etc/sysconfig/network <INS> NETWORKING=Yes <ESC>:wq<ENTER> Também é necessário ativar a interface de loopback na VM UML: ifconfig lo up Edgard Jamhour, 07/06/2011 14:43 Indica o status do servidor bind (connection refused indica erro na inicialização do DNS) 1.B) CONFIGURAÇÃ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). 1.C) TESTES Quando você descompactou o arquivo dns.tar.gz, você obtém também dois arquivos exemplo para configurar o servidor DNS: named.conf: permite declarar as zonas configurar os forwarders zona1.zone: permite criar uma zona específica e Na VM UML digite os seguintes comandos: cp named.conf /etc cp zone1.zone /var/named service named start 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: 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 na VM UML: vi /etc/resolv.conf <INSERT> nameserver 127.0.0.1 <ESC>:wq<ENTER> tail /var/log/messages Altere o arquivo de zona substituindo o endereço do servidor dns pelo endereço da interface eth0 da sua VM. 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 named.conf, você precisará informar ao servidor DNS que ele precisa se atualizar. Isso é feito através de um outro utilitário denominado rndc. Teste o seu servidor DNS através do comando abaixo na VM UML: rndc status Caso esteja usando o ambiente do DVD, você precisará usar um outro servidor como forwarder, pois não há servidor DNS rodando no endereço 20.0.0.1. Altere o forwarder do arquivo named.conf usando o IP do servidor DNS indicado pelo ambiente HOST (veja o /etc/resolv.conf do ambiente HOST para determinar o IP). vi /etc/named.conf <INSERT> ... altere o ip do forwarders ... <ES>:wq<ENTER> Após isso, execute o comando de atualização do DNS: rndc reload Edgard Jamhour, 07/06/2011 14:43 2.A) INSTALAÇÃO DO SEGUNDO SERVIDOR DNS Efetue o teste do seu servidor testando primeiro os registros de sua zona: Abra um terminal na espec, e lance uma máquina virtual: ping -n www.pucpr.br ping -n espec.pucpr.br ping -n dns.pucpr.br cd dns linux32.redes dns2 login: root <ENTER> 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: 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: ping www.google.com.br ifconfig eth0 20.1.13.14 route add default gw 20.0.0.1 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 (HOST), então você precisará abrir um novo terminal (fora da máquina virtual) para executar esse comando: dig @20.0.13.14 www.pucpr.br 2. CENÁRIO 2 - DELEGAÇÃO DE SUBDOMÍNIO Na máquina UML dns copie os arquivos necessários: scp [email protected]:dns/named.conf . scp [email protected]:dns/zona1.zone . Um arquivo na VM UML precisa ser criado pelo vi através dos comandos abaixo: vi /etc/sysconfig/network <INS> NETWORKING=Yes <ESC>:wq<ENTER> Também é necessário ativar a interface de loopback na VM UML: ifconfig lo up 2.B) CONFIGURAÇÃO DO SEGUNDO SERVIDOR DNS No segundo cenário o domínio ppgia.pucpr.br será delegado para outro servidor, conforme mostra a figura a seguir. Quando você descompactou o arquivo dns.tar.gz, você obtém também dois arquivos exemplo para configurar o servidor DNS: Edgard Jamhour, 07/06/2011 14:43 e 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. 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. Para isso é necessário que você altere os arquivos named.conf e zona1.zone conforme indicado na figura. Os itens em vermelho correspondem ao que precisa ser modificado. Cuidado para utilizar o endereço correto da sua VM. named.conf: permite declarar as zonas configurar os forwarders zona1.zone: permite criar uma zona específica Após alterar os arquivos, execute os comandos abaixo na VM UML do DNS 2: Após a alteração é necessário digitar: cp named.conf /etc cp zone1.zone /var/named service named start rndc reload 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: Para efetuar o teste final, abra um terminal na espec e efetue as seguintes consultas utilizando o dig: Consulta recursiva para o servidor DNS1 tail /var/log/messages Consulta não recursiva para o servidor DNS1 dig @20.0.13.14 www.ppgia.pucpr.br dig @20.0.13.14 +norecurse www.ppgia.pucpr.br 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: 3. RELATÓRIO A SER ENTREGUE NO EUREKA 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 -n dns.ppgia.pucpr.br ping -n www.pucpr.br ping -n espec.pucpr.br 2.C) ALTERAÇÕES NO P RIMEIRO SERVIDOR DNS 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/named.conf [email protected]:. scp /var/named/zona1.zone [email protected]:. No DNS2 scp /etc/named.conf [email protected]:. scp /var/named/zona1.zone [email protected]:. Edgard Jamhour, 07/06/2011 14:43 É 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 www.ppgia.pucpr.br > recursiva.txt Consulta não recursiva para o servidor DNS1 dig @20.0.13.14 nrecursiva.txt +norecurse www.ppgia.pucpr.br > 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.