Tabela de Conteúdos

Página desactualizada Esta página contém uma versão anterior deste guia que pode estar desatualizada. Para a consultar a versão mais recente clique aqui.

3.1.2 Cache DNS

Objectivo

Embora os endereços Internet tenham nomes “legíveis” (www.google.com), estes devem ser traduzidos para o endereço IP (216.239.59.147) do respectivo servidor. Essa conversão é efectuada realizando uma pesquisa no Sistema de Nomes de Domínios ou DNS (Domain Name System). Uma cache DNS guarda localmente os resultados dessa pesquisa para utilização futura, evitando a repetição de pesquisas e aumentando drasticamente a velocidade de resposta.

Instalação

server:~# apt-get install bind9 bind9-doc dnsutils

Configuração

A configuração gerada durante a instalação é perfeitamente funcional sem qualquer alteração. No entanto, vamos personalizar a instalação em 2 aspectos principais: a que servidores é que o nosso vai pedir ajuda na resolução de nomes, caso não o consiga fazer localmente (forwarders) e alguns aspectos de segurança.

Como forwarders utilizamos os servidores DNS do fornecedor de acesso à Internet (Neste caso, a título de exemplo, os da NetCabo). Por redundância, acrescentar também o do router ADSL.

Por segurança só serão aceites ligações recebidas pela interface local ou pela destinada à rede interna (listen-on { 127.0.0.1; 192.168.1.100; };). Também só serão respondidos os pedidos de resolução que partirem do próprio posto ou da rede interna (allow-query { 127.0.0.1; 192.168.1.0/24; };). Todos os outros serão ignorados, de modo a evitar eventuais utilizações abusivas do nosso servidor DNS por parte de terceiros.

A configuração é guardada no ficheiro /etc/bind/named.conf.options:

options {
        directory "/var/cache/bind";

        // If there is a firewall between you and nameservers you want
        // to talk to, you might need to uncomment the query-source
        // directive below.  Previous versions of BIND always asked
        // questions using port 53, but BIND 8.1 and later use an unprivileged
        // port by default.

        // query-source address * port 53;

        // If your ISP provided one or more IP addresses for stable
        // nameservers, you probably want to use them as forwarders.
        // Uncomment the following block, and insert the addresses replacing
        // the all-0's placeholder.

        forwarders {
                // Servidores DNS da NetCabo
                212.113.161.227;
                212.113.161.226;
                // router ADSL
                192.168.1.1
        };

        //security options
        listen-on { 127.0.0.1; 192.168.1.100; };
        allow-query { 127.0.0.1; 192.168.1.0/24; };
        allow-recursion { 127.0.0.1; 192.168.1.0/24; };
        allow-transfer { none; };

        auth-nxdomain no;    # conform to RFC1035
        // listen-on-v6 { any; };
};

Actualizar o ficheiro /etc/resolv.conf para que a resolução de nomes passe a ser feita localmente:

nameserver 127.0.0.1

Verificar também no ficheiro /etc/nsswitch.conf que a resolução de nomes passa também pelo serviço DNS:

# [...]
hosts:	files dns
# [...]

Reiniciar o serviço DNS:

server:~# /etc/init.d/bind9 restart

Verificação

Como verificação, basta procurar o endereço IP de qualquer sítio Internet. O servidor DNS deverá ser o nosso e o endereço IP do sítio deverá ser correctamente mostrado:

server:~# nslookup www.fccn.pt
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   www.fccn.pt
Address: 193.136.2.218

O processo inverso, ou seja, procurar o nome a partir do endereço IP também deverá funcionar:

server:~# nslookup 193.136.2.218
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
218.2.136.193.in-addr.arpa      name = enyo.fccn.pt.

Authoritative answers can be found from:
2.136.193.in-addr.arpa  nameserver = helios.fccn.pt.
2.136.193.in-addr.arpa  nameserver = ns01.fccn.pt.
2.136.193.in-addr.arpa  nameserver = ns02.fccn.pt.
helios.fccn.pt  internet address = 193.137.198.35
ns01.fccn.pt    internet address = 193.136.192.40
ns02.fccn.pt    internet address = 193.136.2.228
ns01.fccn.pt    has AAAA address 2001:690:a00:4001::200
ns02.fccn.pt    has AAAA address 2001:690:a80:4001::200

Configuração dos clientes

Windows

Para sistemas Windows indicar, nas propriedades do protocolo Internet (TCP(IP) da ligação de rede, o endereço do nosso servidor DNS (192.168.1.100) como sendo o servidor DNS preferido.

Linux

No caso de sistemas Linux, editar o ficheiro /etc/resolv.conf e acrescentar ou substituir o nameserver:

# [...]
nameserver 192.168.1.100
nameserver 192.168.1.1
# [...]

Para sistemas Windows indicar, nas propriedades do protocolo Internet (TCP(IP) da ligação de rede, o endereço do nosso servidor DNS (192.168.1.100) como sendo o servidor DNS preferido.

Configuração automática de clientes

O servidor DNS também pode ser atribuído automaticamente aos clientes através do protocolo DHCP. Para tal, basta acrescentar a opção domain-name-servers com o ou os endereços dos servidores DNS ao ficheiro /etc/dhcp3/dhcpd.conf do 3.2.2 Servidor DHCP:

# [...]
option domain-name-servers 192.168.1.100;
# [...]