Existem diversos serviços de DNS disponíveis para o linux. Neste post vamos tratar de um dos mais simples, mas que funciona muito bem para pequenas redes. Vamos ver aqui o DNSmasq que fornece dois serviços: DNS e DHCP.
Os serviços podem ser usados de forma independente.
O primeiro (DNS) permite que os computadores possam fazer acesso à internet, pois converte os nomes (por exemplo, http://h3dema.blogspot.com) para o respectivo endereço IP.
Um cache DNS local pode acelerar a navegação na Internet porque o navegador do usuário não precisa acessar um servidor de nomes de domínio quando ele procura um nome de domínio que o computador já visitou antes.
O segundo (DHCP) fornece e configura automaticamente os endereços IP para os outros computadores na rede com ou sem fio. Um computador precisa de um endereço de rede IP exclusivo para acessar a internet.
NOTA: Observe que o dnsmasq interfere com o Network Manager (gerenciador de rede), já que este pode usar "dnsmasq-base" para fornecer serviços DHCP ao compartilhar uma conexão à internet. Portanto, se você usar o gerenciador de rede instale dnsmasq-base, mas não dnsmasq. Se você tiver uma configuração mais complicada, desinstale o gerenciador de rede, use dnsmasq ou software similar (bind9, dhcpd, etc.) e configure tudo manualmente. Esta situação não será coberta neste post.
Neste post consideramos que o computador com o dnsmasq tem o endereço 192.168.0.1.
Execute esses comandos
Vamos mostrar como criar um cache DNS local.
Um servidor DNS resolve nomes de domínio legíveis para humanos em endereços IP. O cache reduzirá o tempo necessário para procurar nomes de domínio ao navegar. Com o dnsmasq instalado, use seu editor de texto preferido para editar /etc/dnsmasq.conf,
Troque a linha mostrada abaixo (em torno da linha 90):
Vamos ver o que cada termo quer dizer:
Agora, edite o arquivo /etc/dhcp3/dhclient.conf (em torno da linha 20) se parece com o seguinte:
Temos que reiniciar novamente o dnsmasq.
NOTA: Observe que o dnsmasq interfere com o Network Manager (gerenciador de rede), já que este pode usar "dnsmasq-base" para fornecer serviços DHCP ao compartilhar uma conexão à internet. Portanto, se você usar o gerenciador de rede instale dnsmasq-base, mas não dnsmasq. Se você tiver uma configuração mais complicada, desinstale o gerenciador de rede, use dnsmasq ou software similar (bind9, dhcpd, etc.) e configure tudo manualmente. Esta situação não será coberta neste post.
Instalação e configuração do dnsmasq
O dnsmasq pode ser instalação com o tradicional apt-get.Neste post consideramos que o computador com o dnsmasq tem o endereço 192.168.0.1.
Execute esses comandos
$ sudo apt-get install dnsmasq
O dnsmasq pode ser configurado editando o arquivo /etc/dnsmasq.conf.Vamos mostrar como criar um cache DNS local.
Um servidor DNS resolve nomes de domínio legíveis para humanos em endereços IP. O cache reduzirá o tempo necessário para procurar nomes de domínio ao navegar. Com o dnsmasq instalado, use seu editor de texto preferido para editar /etc/dnsmasq.conf,
Troque a linha mostrada abaixo (em torno da linha 90):
#listen-address=
para
listen-address=127.0.0.1
Normalmente esta alterações já é suficiente para o dnsmasq funcionar, mas vamos acrescentar algumas configurações adicionais. Assim o nosso arquivo de configuração ficará assim:
listen-address=127.0.0.1
domain-needed
bogus-priv
local=/meudominio.local/
expand-hosts
domain=meudominio.local
interface=eth1
server=4.4.4.4
server=8.8.8.8
Vamos ver o que cada termo quer dizer:
- listen-address = 127.0.0.1 - Faz o próprio Dnsmasq usando o arquivo interno, ao invés de encaminhar para um servidor DNS.
- domain-needed - O dnsmasq não vai tentar resolver os nomes quando forem fornecidos nomes de hosts simples, isto é, sem fqdn. Por exemplo ao solicitar youtube, o dnsmasq retorna um erro de "host não encontrado".
- bogus-priv - Qualquer pesquisa reversa para um ip privado (RFC 1918) não será redirecionada para os servidores listados como server=xxxx.
- local=/meudominio.local/ - Pesquisas para o domínio "meudominio.local" não são encaminhadas para os servidores configurados.
- domain=meudominio.local - Indica que o domínio do dnsmasq é "meudominio.local". Assim o dnsmasq procura no domínio por nome de máquinas simples (nome do host).
- expand-hosts - Adicional automaticamente ao domínio (meudominio.local) quando solicitados hosts com em nomes de máquinas simples. Por exemplo, comp01 será completado gerando um nome completo - comp01.meudominio.local.
- interface=eth0 - Indica a interface que o dnsmasq ir ouvir requisições de DNS e DHCP, utilize uma linha para cada interface.
- servidor = x.x.x.x - Cada linha indica um servidor DNS que será consultado pelo dnsmasq caso o cache local não conheça o domínio solicitado. Você pode cadastrar vários servidores. No nosso caso cadastramos os dois endereços de DNS público do Google.
Agora, edite o arquivo /etc/dhcp3/dhclient.conf (em torno da linha 20) se parece com o seguinte:
#supersede domain-name "fugue.com home.vix.com"; prepend domain-name-servers 127.0.0.1; request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, host-name, netbios-name-servers, netbios-scope;
A opção prepend domain-name-servers é importante pois garante que 127.0.0.1 aparecerá no topo da lista de servidores DNS. Lembre-se que o endereço 127.0.0.1 refere-se ao computador com dnsmasq. Sempre que um computador do dnsmasq precisa resolver um nome de domínio, ele enviará essa solicitação para o próprio dnsmasq.
Agora, edite o arquivo /etc/resolv.conf.
search meudominio.com
nameserver 127.0.0.1
Tendo feito toda esta configuração precisamos reiniciar o dnsmasq para que as mudanças que fizemos passem a funcionar. Faça isto com o comando:
$ sudo /etc/init.d/dnsmasq restart
Criando também um DHCP
Até o momento criamos o dns cache, mas ainda não foi criado do DHCP. Para fazer isto temos que editar o arquivo /etc/dnsmasq.conf e acrescentar pelo menos as duas linhas indicadas abaixo:
dhcp-range=192.168.0.100,192.168.0.200,12h
dhcp-lease-max=100
Vamos ver o que cada termo quer dizer:
- dhcp-range=192.168.0.100,192.168.0.200,12h - Esta linha define duas configurações: (a) o intervalo de IPs que serão fornecidos para a rede (indicamos o menor valor e o maior valor) e (b) o tempo de concessão da configuração - isto é o tempo que o endereço concedido a uma estação ficará válido.
- dhcp-max-lease 100 - Máximo de concessões. Se esta linha não for colocada no arquivo de configuração, o dnsmasq utilizará o valor padrão que é 150.
$ sudo /etc/init.d/dnsmasq restart
Comentários
Postar um comentário