Ferramentas de Usuário

Ferramentas de Site


pt:buster:intranet:dns:server

3.1.3 Servidor DNS Local

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.

Atenção

Antes de instalar o servidor DNS, é importante assegurar que a Cache DNS deverá estar previamente configurada e testada.

Instalação

<sxh bash; highlight: [1]> root@server:~# apt install bind9 bind9-doc dnsutils </sxh>

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 respetivo nome de sistema.

Zonas

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

<sxh; highlight: [5-13]; title: /etc/bind/named.conf.local> Do any local configuration here 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”; }; Consider adding the 1918 zones here, if they are not used in your organization include “/etc/bind/zones.rfc1918”;

</sxh>

Verificar que o ficheiro de configuração não contém erros:

<sxh bash; highlight: [1]> root@server:~# named-checkconf </sxh>

Resolução de nomes

A resolução de nomes transforma os nomes dos sistemas nos endereços IP correspondentes.

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

<sxh; highlight: [1-26]; title: /etc/bind/db.home.lan> ; ; BIND zone file for home.lan ;

$TTL 3D @ IN SOA @ root.home.lan. (

                      2017061201      ; serial
                      8H              ; refresh
                      2H              ; retry
                      4W              ; expire
                      1D )            ; minimum

; @ NS ns ; Inet address of name server @ MX 10 mail ; Primary mail exchanger

ns A 192.168.1.100 mail A 192.168.1.100

home.lan. A 192.168.1.100 server A 192.168.1.100

virtual A 192.168.1.101

router A 192.168.1.1 ; router ADSL gateway CNAME router gw CNAME router </sxh>

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 poderão ser declarados alguns aliases: o sistema “server” passará também a ser conhecido (CNAME ou canonical name) como “proxy”, “www” e “ftp”:

<sxh; highlight: [2-4]; title: /etc/bind/db.home.lan> […] proxy CNAME server www CNAME server ftp CNAME server […] </sxh>

Verificar que o ficheiro de configuração da zona home.lan não contém erros:

<sxh bash; highlight: [1]> root@server:~# named-checkzone home.lan /etc/bind/db.home.lan zone home.lan/IN: loaded serial 2017061201 OK </sxh>

Resolução Inversa

A resolução de inversa transforma endereços IP nos correspondentes nomes dos sistemas.

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

<sxh; highlight: [1-19]; title: /etc/bind/db.1.168.192> ; ; BIND zone file for 192.168.1.xxx ;

$TTL 3H @ IN SOA @ root.home.lan. (

                      2017061201      ; serial
                      8H              ; refresh
                      2H              ; retry
                      4W              ; expire
                      1D )            ; minimum

; @ NS ns.home.lan. ; Nameserver address

100 PTR server.home.lan. 100 PTR ns.home.lan. 100 PTR mail.home.lan. 101 PTR virtual.home.lan. 1 PTR router.home.lan. </sxh>

Verificar que o ficheiro de configuração da zona 1.168.192.in-addr.arpa não contém erros:

<sxh bash; highlight: [1]> root@server:~# named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.1.168.192 zone 1.168.192.in-addr.arpa/IN: loaded serial 2017061201 OK </sxh>

Verificar também que o bind9 consegue ler todas as zonas:

<sxh bash; highlight: [1]> root@server:~# named-checkconf -z zone home.lan/IN: loaded serial 2017061201 zone 1.168.192.in-addr.arpa/IN: loaded serial 2017061201 zone localhost/IN: loaded serial 2 zone 127.in-addr.arpa/IN: loaded serial 1 zone 0.in-addr.arpa/IN: loaded serial 1 zone 255.in-addr.arpa/IN: loaded serial 1 </sxh>

Reiniciar o serviço:

<sxh bash; highlight: [1]> root@server:~# systemctl restart bind9 </sxh>

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

<sxh; highlight: [2-4]; title: /etc/resolv.conf> # […] domain home.lan search home.lan nameserver 127.0.0.1 # […] </sxh>

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

Verificação

Verificar a resolução de nomes:

<sxh bash; highlight: [1]> root@server:~# nslookup server Server: 127.0.0.1 Address: 127.0.0.1#53

Name: server.home.lan Address: 192.168.1.100 </sxh>

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

<sxh bash; highlight: [1]> root@server:~# nslookup gateway Server: 127.0.0.1 Address: 127.0.0.1#53

gateway.home.lan canonical name = router.home.lan. Name: router.home.lan Address: 192.168.1.1 </sxh>

Finalmente, verificar que a resolução inversa:

<sxh bash; highlight: [1]> root@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.

</sxh>

Referências

pt/buster/intranet/dns/server.txt · Última modificação em: 2020-08-02 20:10 (edição externa)

Excepto menção em contrário, o conteúdo neste wiki está sob a seguinte licença: CC Attribution-Noncommercial-Share Alike 4.0 International
CC Attribution-Noncommercial-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki