Você está na página 1de 21

Relatório do Trabalho Prático nº 1

DNS e DHCP

Documento elaborado pela equipa:


Jorge Miguel Morgado Henriques
Ricardo Nuno Mendão da Silva

Data de entrega:
22.10.2006
Indíce

Introdução ....................................................................................................................... 2

Configuração do servidor de DNS primário.................................................................. 3


Justificação de opções tomadas ........................................................................................................ 5
Configuração do servidor de DNS secundário.............................................................. 6
Justificação de opções tomadas ........................................................................................................ 7
Configuração do servidor de DHCP ............................................................................... 8
Justificação de opções tomadas ........................................................................................................ 9
Zonas do domínio.......................................................................................................... 10

Informação adicional .................................................................................................... 13

Testes e resultados ....................................................................................................... 14

Funcionalidades não cumpridas.................................................................................. 18

Conclusão....................................................................................................................... 20

1
Introdução

Este trabalho teve como objectivo a utilização do BIND em dois servidores


Linux para activar o domínio euro2008.pt. A máquina onde seria activado o
servidor DNS primário funcionaria igualmente como servidor DHCP para a
Rede interna e como router.
A figura seguinte ilustra o cenário de implementação do trabalho.

É um cenário típico de utilização de um sistema Firewall. Neste cenário a


rede interna encontra-se protegida do exterior por uma rede designada de
DMZ (neste caso prático a rede do LGSR).

2
Configuração do servidor de DNS primário

O servidor de DNS presente na mesma máquina do servidor de DHCP foi


configurado de forma a ser primário para todas as zonas do domínio. Este
notifica o servidor de DNS secundário sempre que efectua alterações aos
mapas de zona. De seguida autoriza a transferência destes mesmos mapas
apenas ao servidor secundário, utilizando TSIG.

Neste servidor deve suportar DDNS (Dynamic DNS) de forma a que um cliente
DHCP tenha o seu nome e endereço IP registados no DNS primário, durante o
processo de atribuição de endereço IP pelo servidor de DHCP. Esse registo
deve ser feito pelo próprio servidor de DHCP.

#named.conf

options{
directory “/var/named”;
forwarders{193.136.212.1;};
allow-query{192.168.9.0/24;};
notify yes;
allow-transfer{key “dns1-dns2”;};
dump-file “/var/named/data/cache_dump.db”;
statistics-file “/var/named/named_stats.db”;
dnssec-enable yes;
#query-source port 53;
};

controls{
inet 127.0.0.1 allow{localhost;} keys{“rndckey”;};
};

zone "." IN {
type hint;
file "named.ca";
};

zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};

zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";

3
allow-update { none; };
};

zone
"0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN
{
type master;
file "named.ip6.local";
allow-update { none; };
};

zone "255.in-addr.arpa" IN {
type master;
file "named.broadcast";
allow-update { none; };
};

zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
};

Zone “euro2008.pt” IN{


Type master;
File “named.euro2008.db”;
Update-policy {grant dhcp-dns subdomain euro2008.pt. A TXT;};
};

Zone “9.168.192.in-addr.arpa” IN{


Type master;
File “redeInterna.euro2008.db”;
Update-policy {grant dhcp-dns subdomain 9.168.192.in-addr.arpa PTR
TXT;};
};

Zone “0.254.10.in-addr.arpa” IN{


Type master;
File “DMZ.euro2008.db”;
};

Include “/etc/rndc.key”;
Server 10.254.0.10{
Keys{dns1-dns2};
};

Server 192.168.9.1{
Keys{dhcp-dns};
};

4
Justificação de opções tomadas

Para começar, foi definido no ficheiro de configuração do servidor de DNS


primário que caso este não conseguisse resolver uma query, em vez de
tentar aceder a outros servidores DNS na internet, deveria ir ao servidor do
DNS do DEI (193.136.212.1) através do parametro forwarders.

Para que este servidor só aceite querys dos clientes da rede interna foi
definido o parametro allow-query com o valor 192.168.9.0/24.

Para que este servidor de DNS (primário) notifique o servidor de DNS


secundário das alterações aos mapas de zona e para que apenas a este
autorize as transferências das mesmas, foram definidos os seguintes
parametros:
notify yes;
allow-transfer {key “dns1-dns2”;};

Em seguida foram adicionadas as zonas de mapeamento directo


euro2008.pt e de mapeamento inverso 9.168.192.in-addr.arpa e
0.254.10.in-addr.arpa.

O parametro type define que este servidor de DNS é principal ou master


para estas zonas (type master;).

O parametro file define, para cada zona, qual o ficheiro onde são descritos
os parametros dessa zona.

Através do parametro include é incluído o ficheiro que contém as chaves


TSIG. Em vez de colocar as chaves no próprio ficheiro de configuração do
servidor de DNS optou-se por colocar as mesmas no ficheiro rndc.key com
permissões mais restritivas por razões de segurança.

Em seguida são indicadas quais as chaves a utilizar perante os acessos de


determinadas máquinas (IPs). Assim é indicado que caso seja o servidor
com o IP 10.254.0.10 (servidor de DNS secundário) a comunicar, deve ser
utilizada a chave “dns1-dns2”; caso seja o servidor 192.168.9.1 (servidor de
DHCP) a comunicar, entao será usada a chave “dhcp-dns”.

5
Configuração do servidor de DNS secundário

O servidor de DNS presente na rede DMZ, na máquina dns2, é secundário


para todas as zonas. Vai conter mapas actualizados das zonas por via de
transferência do servidor primário. Estas transferências são encriptadas
com TSIG (ambas as partes envolvidas na comunicação têm uma chave
secreta configurada para o efeito).

#named.conf

options{
directory “/var/named”;
forwarders{193.136.212.1;};
allow-query{10.254.0.0/24};
allow-transfer{none;};
dump-file “/var/named/data/cache_dump.db”;
statistics-file “/var/named/named_stats.db”;
dnssec-enable yes;
#query-source address port 53;
};

controls{
inet 127.0.0.1 allow{localhost;} keys{“rndckey”;};
};
zone "." IN {
type hint;
file "named.ca";
};

zone "localdomain" IN {
type master;
file "localdomain.zone";
allow-update { none; };
};

zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};

zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};

zone
"0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN
{
type master;
file "named.ip6.local";
allow-update { none; };

6
};

zone "255.in-addr.arpa" IN {
type master;
file "named.broadcast";
allow-update { none; };
};

zone "0.in-addr.arpa" IN {
type master;
file "named.zero";
allow-update { none; };
};

Zone “euro2008.pt” IN{


Type slave;
File “named.euro2008.db”;
Masters{10.254.0.9;};
};
Zone “9.168.192.in-addr.arpa” IN{
Type slave;
File “redeInterna.euro2008.db”;
Masters{10.254.0.9;};
};
Zone “0.254.10.in-addr.arpa” IN{
Type slave;
File “DMZ.euro2008.db”;
Masters{10.254.0.9;};
};

Include “/etc/rndc.key”;

Server 10.254.0.10{
Keys{dns1-dns2};
};

Justificação de opções tomadas

Na configuração do servidor de DNS secundário, a grande diferença


incide na definição das zonas. Nas declarações destas, o parametro type
é definido como slave de modo que o servidor saiba que é secundário
para estas zonas; o parametro masters é definido com o IP do servidor
DNS primário para que o DNS secundário saiba quem é o servidor
primário daquelas zonas.

7
Configuração do servidor de DHCP

O servidor de DHCP foi configurado de forma a aceitar pedidos de


configuração apenas de clientes da rede interna e atribuir endereços de
uma pool de 20 endereços IP. Estes clientes deverão ser configurados no
domínio euro2008.pt e utilizar o router como servidor DNS.

Conforme ja foi referido anteriormente, este servidor deve registar os


clientes DHCP configurados, no servidor DNS primário. Esta operação de
registo utilizará também o protocolo TSIG, da mesma forma que acontece
com as comunicações entre servidores de DNS.

#dhcpd.conf

ddns-update-style interim;
ignore client-updates;
authoritative;
subnet 192.168.9.0 netmask 255.255.255.0{
option routers 192.168.9.1;
option subnet-mask 255.255.255.0;
option domain-name “euro2008.pt”;
option domain-name-servers 192.168.9.1;
option time-offset -18000; #Eastern Standard Time
range 192.168.9.10 192.168.9.30;
default-lease-time 86400; #24h
max-lease-time 90000; #25h
host master{
fixed-address 192.168.9.2;
option host-name “master”;
}
host condor{
fixed-address 192.168.9.3;
option host-name “condor”;
}
#dynamic DNS updates
ddns-updates on;
ddns-domainname “euro2008.pt.”;
ddns-rev-domainname “9.168.192.in-addr.arpa.”;

zone euro2008.pt{
primary 192.168.9.1;
key “dhcp-dns”;
}

zone 9.168.192.in-addr.arpa{
primary 192.168.9.1;
key “dhcp-dns”;
}

}
Include “/etc/rdnc.key”;

8
Justificação de opções tomadas

De forma a que os updates so servidor de DNS primário sejam feitos


apenas pelo DHCP, no acto de atribuição de IP, foi adicionado o
parametro ignore client-update;

Para a subrede 192.168.9.0 foi definido que o default gatway dos clientes
DHCP seria 192.168.9.1, o IP do router; foi definida a mascara de sub
rede; foi definido o nome do dominio como sendo euro2008.pt; foi
definido o servidor de DNS como sendo o DNS primário nessa mesma
máquina (192.168.9.1); foi definida uma pool de 20 endereços IP a
atribuir, entre o IP 192.168.9.10 e o IP 192.168.9.30; foram definidos um
tempo de “aluguer” normal e outro máximo; foram definidos doi hosts
com IP fixo (master-192.168.9.2 e condor-192.168.9.3); e foram activadas
as actualizações automáticas do DNS com os parametros:

Ddns-updates on;
Ddns-domainname “euro2008.pt”;
Ddns-rev-domainname “9.168.192.in-addr.arpa”;

zone euro2008.pt{
primary 192.168.9.1;
key “dhcp-dns”;
}

zone 9.168.192.in-addr.arpa{
primary 192.168.9.1;
key “dhcp-dns”;
}

9
Zonas do domínio

Zona de mapeamento directo para o domínio euro2008.pt .

#named.euro2008.db

$TTL 86400
@ IN SOA pcg5109.euro2008.pt. root.pcg5109.euro2008.pt. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum

IN TXT "Dominio Euro2008"


IN NS pcg5109.euro2008.pt.
IN NS dns2.euro2008.pt
IN MX 10 smtp
IN MX 20 mail

backups IN CNAME master


datastore IN CNAME condor
webmail IN CNAME mail
pop IN CNAME mail
imap IN CNAME mail
;
localhost IN A 127.0.0.1
pcg5109 IN A 192.168.9.1
pcg5109 IN A 10.254.0.9
mail IN A 10.254.0.2
smtp IN A 10.254.0.3
www IN A 10.254.0.4
dns2 IN A 10.254.0.10
master IN A 192.168.9.2
condor IN A 192.168.9.3

• registos do tipo TXT (text) permitem fornecer entradas com


informação textual;
• registos do tipo NS (nameserver) definem os servidores de nomes
(DNS) que mantêm registos para esta zona;
• registos do tipo MX (mail exchanger) definem os servidores de mail
da zona que tratarão destinatários do tipo xpto@euro2008.pt;
• registos do tipo CNAME (canonical name)definem aliases para
determinados nomes de hosts;
• registos do tipo A (address record)fornecem mapeameno entre
nomes e os respectivos dendereços IP.

10
Zona de mapeamento inverso para a rede interna (192.168.9.0/24).

#redeInterna.euro2008.db

$TTL 86400
@ IN SOA pcg5109.euro2008.pt. root.pcg5109.euro2008.pt. (
2004101180 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS pcg5109.euro2008.pt.
1 PTR pcg5109.euro2008.pt.
2 PTR master.euro2008.pt.
3 PTR condor.euro2008.pt.

• registos do tipo TXT (text) permitem fornecer entradas com


informação textual;
• registos do tipo NS (nameserver) definem os servidores de nomes
(DNS) que mantêm registos para esta zona;
• registos do tipo PTR (pointer record) fornecem mapeamento inverso
entre endereços IP e os respectivos nomes.

11
Zona de mapeamento inverso para a rede DMZ (10.254.0.0/24).

#DMZ.euro2008.db

$TTL 86400
@ IN SOA pcg5109.euro2008.pt. root.pcg5109.euro2008.pt. (
2004101100 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS pcg5109.euro2008.pt.
9 PTR pcg5109.euro2008.pt.
2 PTR mail.euro2008.pt.
3 PTR smtp.euro2008.pt.
4 PTR www.euro2008.pt.
10 PTR dns2.euro2008.pt.

• registos do tipo TXT (text) permitem fornecer entradas com


informação textual;
• registos do tipo NS (nameserver) definem os servidores de nomes
(DNS) que mantêm registos para esta zona;
• registos do tipo PTR (pointer record) fornecem mapeamento inverso
entre endereços IP e os respectivos nomes.

Só é necessário definir estes ficheiros de zona no servidor de DNS primário,


visto que depois de bem configurado, o servidor de DNS secundário vai
solicitar ao DNS primário a transferência da informação destas zonas.

12
Informação adicional

No ficheiro /etc/resolv.conf foi alterado o parametro search para


euro2008.pt para que o resolver adicione o sufixo euro2008.pt a nomes
que não sejam FQDN.

No ficheiro /etc/hosts foi adicionado o nome da propria máquina (pcg5109)


e o respectivo endereço IP externo, para além do nome localhost e o
endereço IP 127.0.0.1 que já estavam no ficheiro.

13
Testes e resultados

Como é possível observar na duas imagens seguintes, os testes à interacção


entre os dois servidores de DNS confirmam o seu bom funcionamento.

Pode-se observar o servidor de DNS primário a iniciar (1), a carregar as zonas,


e a notificar o secundário acerca de alterações na sua tabela de zonas (2).
Em seguida pode-se observar o inicio das transferências das tabelas de zona
do servidor de DNS primário para o servidor de DNS secundário utilizando a
TSIG com a chave “dns1-dns2”, gerada para o efeito. Todas as transferências
terminam com sucesso, e no servidor de DNS secundário, que não tinha as
tabelas de zona definidas, surgem os ficheiros com os detalhes de cada zona.

Nesta segunda imagem pode-se observar o DNS secundário em


funcionamento: a efectuar as transferências das zonas usando a TSIG
definida.

14
Estes são os ficheiros que o servidor de DNS secundário constroi na directoria
/var/named com a descrição das respectivas zonas, depois de transferir os
mapas de zona do servidor de DNS primário.

#ficheiro named.euro2008.db que o DNS secundário construiu por via da


#transferencia do DNS primário

$ORIGIN .
$TTL 86400; 1 day
@ IN SOA pcg5109.euro2008.pt. root.pcg5109.euro2008.pt. (
1997022700 ; Serial
28800 ; Refresh (8 hours)
14400 ; Retry (4 hours)
3600000 ; Expire (5 weeks 6 days 16
hours)
86400 ) ; Minimum

IN TXT "Dominio Euro2008"


IN NS pcg5109.euro2008.pt.
IN NS dns2.euro2008.pt
IN MX 10 smtp
IN MX 20 mail

backups IN CNAME master


datastore IN CNAME condor
15
webmail IN CNAME mail
pop IN CNAME mail
imap IN CNAME mail
;
localhost IN A 127.0.0.1
pcg5109 IN A 192.168.9.1
pcg5109 IN A 10.254.0.9
mail IN A 10.254.0.2
smtp IN A 10.254.0.3
www IN A 10.254.0.4
dns2 IN A 10.254.0.10
master IN A 192.168.9.2
condor IN A 192.168.9.3

#ficheiro redeInterna.euro2008.db que o DNS secundário construiu por via da


#transferencia do DNS primário

$ORIGIN .
$TTL 86400 ; 1 day
9.168.192.in-addr.arpa IN SOA pcg5109.euro2008.pt. root.pcg5109.euro2008.pt.
(
2004101180 ; Serial
28800 ; Refresh (8 hours)
14400 ; Retry (4 hours)
3600000 ; Expire (5 weeks 6 days 16
hours)
86400 ) ; Minimum (1 day)
IN NS pcg5109.euro2008.pt.
$ORIGIN 9.168.192.in-addr.arpa
1 PTR pcg5109.euro2008.pt.
2 PTR master.euro2008.pt.
3 PTR condor.euro2008.pt.

#ficheiro DMZ.euro2008.db que o DNS secundário construiu por via da


#transferência do primário.

$ORIGIN .
$TTL 86400 ; 1 day
0.254.10.in-addr.arpa IN SOA pcg5109.euro2008.pt. root.pcg5109.euro2008.pt.
(
2004101100 ; Serial
28800 ; Refresh (8 hours)
14400 ; Retry (4 hours)
3600000 ; Expire (5 weeks 6 days 16
hours)
86400 ) ; Minimum (1 day)
IN NS pcg5109.euro2008.pt.
$ORIGIN 0.254.10.in-addr.arpa.
10 PTR dns2.euro2008.pt.
2 PTR mail.euro2008.pt.
3 PTR smtp.euro2008.pt.
4 PTR www.euro2008.pt.
9 PTR pcg5109.euro2008.pt.

16
A imagem seguinte foi retirada de um cliente DHCP que foi ligado à rede
interna. Como tal, recebeu informação do servidor de DHCP e ficou registado
no domínio. O que a imagem também permite observar é o pedido de
resolução de vários nomes e a sua correcta resolução por parte do servidor
de DNS primário.

17
Funcionalidades não cumpridas

Apesar dos bons resultados acima demonstrados, houve um aspecto do


trabalho que nao ficou a funcionar como devia. As DDNS (dynamic DNS
updates) não funcionaram. Ambos os servidores DNS primário e DHCP
foram configurados para tal, contudo algo ficou a faltar para que estas
actualizações fossem efectuadas com sucesso.

dhcpd.conf

ddns-update-style interim;
ddns-updates on;
ddns-domainname “euro2008.pt.”;
ddns-rev-domainname “9.168.192.in-addr.arpa.”;

zone euro2008.pt{
primary 192.168.9.1;
key “dhcp-dns”;
}

zone 9.168.192.in-addr.arpa{
primary 192.168.9.1;
key “dhcp-dns”;
}

named.conf

zone "euro2008.pt" IN{


type master;
file "named.euro2008.db";
update-policy { grant dhcp-dns subdomain euro2008.pt. A TXT;};
};

zone "9.168.192.in-addr.arpa" IN{


type master;
file "redeInterna.euro2008.db";
update-policy { grant dhcp-dns subdomain 9.168.192.in-addr.arpa. PTR
TXT;};
};

include "/etc/rndc.key";
server 10.254.0.10{
keys {dns1-dns2;};
};
server 192.168.9.1{
keys {dhcp-dns;};
};
18
O servidor de DHCP envia a informação correcta ao cliente DHCP, mas
depois quando tenta registar o novo cliente no servidor de DNS primário,
não o consegue fazer. A imagem seguinte retrata a situação.

O servidor de DHCP tenta efectuar a actualização à zona que o servidor de


DNS primário tem , de forma a conter o registo do novo cliente DHCP.
Contudo, na criação do ficheiro .jnl, diz que não tem permissões para tal e a
partir daí falha. Este ficheiro .jnl é o ficheiro utilizado pelo mecanismo de
DDNS para fazer os updates dinamicos. Tentou-se alterar as permissões
quer da pasta /var/named onde o ficheiro estava a ser criado mas sem
sucesso.

19
Conclusão

Este trabalho contribuiu em boa forma para a nossa familiarização com a


gestão de servidores DNS e DHCP em ambiente Unix. Ambos tínhamos já
alguma experiência na gestão destes servidores mas em Windows 2003
Server. Adquirimos também bons conhecimentos sobre o funcionamento dos
mecanismos de DDNS, Dynamic Updates, utilizando o protocolo TSIG. Não
conseguimos que o mecanismo DDNS funcionasse em pleno, ficando com a
ideia de que, em termos de configurações do servidor de DHCP e servidor de
DNS primário, ficámos muito próximo do que se pretendia. Foi um trabalho
enriquecedor e bastante interessante.

20