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; # [...]
Links Relacionados
- ISC Bind (*http://www.isc.org/sw/bind/)
- Wikipedia: DNS (*http://pt.wikipedia.org/wiki/Dns)
- Linux Home Networking: Quick HOWTO: Ch18 Configuring DNS (*http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:_Ch18_:_Configuring_DNS)
- DNS Howto, 3. A resolving, caching name server (*http://langfeldt.net/DNS-HOWTO/BIND-9/DNS-HOWTO-3.html)
- Securing Debian Manual (*http://www.debian.org/doc/manuals/securing-debian-howto/ch-sec-services.en.html#s-sec-bind)