Páginas

Mostrando postagens com marcador bind. Mostrar todas as postagens
Mostrando postagens com marcador bind. Mostrar todas as postagens

quinta-feira, 23 de fevereiro de 2012

Acelere sua navegação usando um cache local de DNS: PDNSD

Neste post vou ensinar como configurar um cache local de DNS. Ao contrário do Bind (neste post ensino como configura-lo), o PDNSD armazena o seu cache no HD quando o computador é desligado e lê esse conteúdo quando o computador é ligado.

Para instalar basta:
$ sudo apt-fast install pdnsd
(não entendeu o porque do apt-fast? visite este link)

No processo de instalação você poderá escolher entre três opções de configuração, escolha MANUAL! Além disso o apt instalará o pacote resolvconf junto, isso não será um problema, mais abaixo eu mostrarei como fazer para o seu computador sempre manter as configurações certar para o uso do PDNSD

Uma vez instalado vamos configurá-lo. Edite o arquivo /etc/pdnsd.conf
$ sudo vim /etc/pdnsd.conf
E deixe ele igual a este:


global {
   perm_cache=12048;
   cache_dir="/var/cache/pdnsd";
   max_ttl=604800;
   run_as="pdnsd";
   status_ctl=on;
   paranoid=on;
   server_port=53;
   server_ip="127.0.0.1";
}

server {
   ip="127.0.0.2";
   timeout=60;
   interval=900;
   uptest=none;
   ping_timeout=500;
   purge_cache=off;
   caching=on;
}

server {
   label="resolvconf";
}

source {
   ttl=86400;
   owner="localhost.";
   serve_aliases=on;
   file="/etc/hosts";
}

Este arquivo está configurado para ser usado junto com o resolvconf!

Na seção 'global' temos os parâmetros globais de configuração: tamanho do cache, tempo de  vida da entrada, IP que será usado, porta e etc.

Já a(s) seção(ões) 'server' tem os parâmetros dos servidores DNS que serão usados para resolver os nomes requisitados. Repare que neste arquivo eu usei o IP 127.0.0.2 como o servidor de DNS, isto porque no meu post anterior (este aqui) eu ensinei como encriptar o tráfego DNS e por isso estou usando este serviço. Se você quiser pode mudar o IP para qualquer outro servidor DNS de sua escolha e também pode adicionar mais entradas como esta. Um exemplo:


server {
   ip="192.168.1.1";
   ip="8.8.8.8";
   ip="208.67.222.222";
   timeout=60;
   interval=900;
   uptest=none;
   ping_timeout=500;
   purge_cache=off;
   caching=on;
}

Assim a primeira entrada seria o seu roteador (se houver algum) a segundo o DNS público do Google e a terceira o endereço do OpenDNS.

Devemos editar o arquivo /etc/default/pdnsd
$ sudo vim /etc/default/pdnsd
e deixá-lo da seguinte forma,


# do we start pdnsd ?
START_DAEMON=yes
# auto-mode, overrides /etc/pdsnd.conf if set [see /usr/share/pdnsd/]
#AUTO_MODE=
# optional CLI options to pass to pdnsd(8)
START_OPTIONS=


Temos, também, que editar o arquivo /etc/dhcp/dhclient.conf
$ sudo vim /etc/dhcp/dhclient.conf
e descomentar a linha que contém: prepend domain-name-servers 127.0.0.1;

Agora reinicie o serviço:
$ sudo service pdnsd restart
e teste se teve efeito com o comando dig:
$ dig terra.com.br
Deverá obter uma saída parecida com:


; <<>> DiG 9.7.3 <<>> terra.com.br
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21041
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;terra.com.br. IN A

;; ANSWER SECTION:
terra.com.br. 595 IN A 200.154.56.80

;; Query time: 161 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Feb 23 15:04:27 2012
;; MSG SIZE  rcvd: 46

e pela segunda vez:
$ dig terra.com.br


; <<>> DiG 9.7.3 <<>> terra.com.br
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27407
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;terra.com.br. IN A

;; ANSWER SECTION:
terra.com.br. 594 IN A 200.154.56.80

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Feb 23 15:04:28 2012
;; MSG SIZE  rcvd: 46

Para obter informações sobre quanto de cache você já usou ou se os servidores estão funcionando:
$ sudo pdnsd-ctl status 


Um problema que eu tive foi que na primeira vez eu coloquei 2Mb de cache e foi muito pouco, então aumentei para cerca de 10Mb e deu tudo certo!

Bom, é isso!


Este post foi inspirado nesta thread do UbuntuForums e neste post do go2linux e neste artigo (no final do artigo tem um exemplo de como configurar o PDNSD junto com o BIND9)

quarta-feira, 16 de fevereiro de 2011

Configurando servidor DNS: bind9

Neste post irei ensinar como configurar um servidor DNS em sua máquina. Quando configurado dessa forma, ele irá resolver os nomes e armazená-los de tal forma que não será mais preciso resolve-los da próxima vez.


++Instalando pacotes necessários++

$ sudo apt-get install bind9
Os arquivos de configuração ficaram armazenados em: /etc/bind


++Configurando++



Simplesmente descomente e acrescente seu servidor DNS favorito em: /etc/bind/named.conf.options
forwarders {
                0.0.0.0;
           };




No meu caso ficou:
forwarders {
                8.8.8.8; #Google Public DNS
                200.204.0.10; #Speedy BR
                200.221.11.101; #UOL-2 BR-2
           };




Existem outras opções como:
    OpenDNS: 208.67.220.220
    UltraDNS: 156.154.70.1
    DynGuide: 216.146.35.35
    GigaDNS BR: 189.38.95.95


Depois faça:



$ sudo  vim /etc/defaul/bind9



e mude para yes a linha RESOLVCONF, ou seja, deixe RESOLVCONF=yes


Após fazer as modificações rode:

$ sudo service bind9 restart


++Testando++


Uma boa maneira de testar se tudo correu bem é usando a ferramente dig.

$ sudo apt-get install dnsutils
Agora devemos rodar o dig em nossa interface loopback:

$ dig -x 127.0.0.1
Você deverá receber uma saída parecido com esta:

...
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
...



Agora devemos testar o dig em um domínio fora do nosso, por exemplo:

$ dig terra.com
e receberá como saída algo parecido com:
...
;; Query time: 48 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
...



já na segunda vez:

...
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
...



E pronto!!


Dica extra: Aconselho vocês a visitarem o site http://code.google.com/p/namebench/ e olharem essa ferramenta, ela busca por servidores DNS e te devolve uma combinação dos mais rápidos + os mais pertos! Olhem e testem para obterem a melhor configuração para vocês!!!


Fonte:
ubuntu documentation: dns
ubuntu documentation: dig