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.3 Servidor DNS Local

Objectivo

Embora se possa atribuir nomes aos diversos sistemas de uma rede, estes não se conseguem reconhecer entre eles sem um sistema de resolução de nomes. Para que um sistema consiga localizar o endereço IP associado ao nome de outro sistema, é necessário que este esteja registado num servidor DNS, de modo a permitir a resolução de nomes.

Instalação

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

Configuração

A resolução de nomes converte nomes de sistemas no seu endereço IP e vice-versa. Assim, a configuração consiste, basicamente na criação de 2 zonas, uma (zone “home.lan”) que converte nomes em endereços IP e outra (zone “1.168.192.in-addr.arpa”) que converte endereços IP no respectivo nome de sistema.

As zonas são declaradas no ficheiro /etc/bind/named.conf.local:

//
// Do any local configuration here
//

// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";

zone "home.lan" {
    type master;
    file "/etc/bind/db.home.lan";
};

zone "1.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/db.1.168.192";
};

Para a zona “home.lan”, os nomes “server”, “virtual”, “ns” e router são associados aos respectivos endereços. A base de dados para a resolução de nomes na zona home.lan é guardada no ficheiro /etc/bind/db.home.lan:

;
; BIND data file for home.lan zone
;
$TTL    3D
@       IN      SOA     ns.home.lan. root.home.lan. (
                        2007042501      ; serial
                        8H              ; refresh
                        2H              ; retry
                        4W              ; expire
                        1D )            ; minimum
;
                NS      ns.home.lan.         ; Inet address of name server
                MX      10 mail.home.lan.    ; Primary mail exchange
;
server          A       192.168.1.100
                TXT     "interface interna do servidor caseiro"

virtual         A       192.168.1.101
                TXT     "interface externa do servidor caseiro"

ns              A       192.168.1.100
                TXT     "servidor de nomes"

router          A       192.168.1.1
                TXT     "router ADSL"

O protocolo DNS permite também a criação de aliases, ou canonical names, identificados pelo tipo de registo CNAME. Um alias é um nome alternativo de um sistema.

No final do ficheiro são declarados alguns aliases: o sistema “server” passa também a ser conhecido (CNAME ou canonical name) como “proxy” e “mail” e o servidor “virtual” responderá também pelo nome “www”:

// [...]
proxy           CNAME   server
mail            CNAME   server
www             CNAME   virtual
// [...]

A resolução inversa é implementada no ficheiro /etc/bind/db.1.168.192:

; BIND reverse data file for home.lan zone
;
$TTL    3D
@       IN      SOA     ns.home.lan. root.home.lan. (
                        2007042501      ; serial
                        8H              ; refresh
                        2H              ; retry
                        4W              ; expire
                        1D )            ; minimum
;
                NS      ns.home.lan. ; Inet address of name server
;
1               PTR     router.home.lan.
100             PTR     server.home.lan.
100             PTR     ns.home.lan.
101             PTR     virtual.home.lan.

Reiniciar o serviço:

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

Acrescentar o domínio home.lan no ficheiro /etc/resolv.conf:

# [...]
search home.lan
namserver 127.0.0.1
# [...]

Assim, quando nos referirmos ao sistema “proxy”, este será procurado no domínio “home.lan”, resultando no nome “proxy.home.lan”.

Verificação

Verificar a resolução de nomes:

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

Name:   server.home.lan
Address: 192.168.1.100

Verificar que os aliases também são resolvidos:

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

proxy.home.lan  canonical name = server.home.lan.
Name:   server.home.lan
Address: 192.168.1.100

Finalmente, verificar que a resolução inversa:

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

101.1.168.192.in-addr.arpa    name = virtual.home.lan.