Geralmente ao montar um servidor eu sempre instalo um servidor DNS, mesmo que ele não esteja com autoridade sobre nenhum domínio, realizo uma configuração apenas como cache para acelerar as consultas DNS da rede local. Quando preciso ter instalado também um servidor DHCP eu utilizo o dnsmasq que faz a integração DNS/DHCP num único .conf.
Vamos instalar o dnsmasq e configura-lo:
# cp dnsmasq.conf dnsmasq.conf.original
# vi /etc/dnsmasq.conf
domain-needed bogus-priv local=/empresa.local/ expand-hosts domain=empresa.local interface=eth1 listen-address=127.0.0.1 server=4.4.4.4 server=8.8.8.8 dhcp-range=172.16.1.100,172.16.1.200 dhcp-lease-max=100
Descrição:
domain-needed – Não encaminha requisições de consultas DNS para nomes de hosts simples (sem fqdn) para os servidores DNS listados em “server=…”, ou seja, twitter, facebook retornam 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 em “server=…”.
local=/empresa.local/ – Pesquisas para o domínio “empresa.local” não serão encaminhadas para os servidores listados em “server=…”.
expand-hosts – Adiciona automaticamente o domínio (empresa.local) em nomes de máquinas simples. Exemplo desk01 será completado com desk01.empresa.local.
domain=empresa.local – Procura neste domínio por nome de máquinas simples (hostname).
interface=eth1 – Interface na qual o dnsmasq irá ouvir requisições DNS e DHCP, utilize uma linha para cada interface.
listen-address=127.0.0.1 – Faz o próprio dnsmasq utilizar o próprio cache, ao invés de encaminhar para um servidor DNS.
server=4.4.4.4 – Servidor DNS consultado caso o cache local não conheça o domínio solicitado. Para cadastrar outro servidor basta adicionar outra linha.
dhcp-range=172.16.1.100,172.16.1.200,12h – Define o range de IPs e o tempo de concessão da configuração.
dhcp-max-lease 100 – Máximo de concessões, se omitido utiliza 150.
Agora basta reiniciar o servidor:
# /etc/init.d/dnsmasq restart
Vamos testar a configuração:
# ping globo.com
PING globo.com (201.7.176.59) 56(84) bytes of data. 64 bytes from globosat.com.br (201.7.176.59): icmp_req=1 ttl=249 time=22.3 ms 64 bytes from globosat.com.br (201.7.176.59): icmp_req=2 ttl=249 time=25.2 ms 64 bytes from globosat.com.br (201.7.176.59): icmp_req=3 ttl=249 time=24.0 ms 64 bytes from globosat.com.br (201.7.176.59): icmp_req=4 ttl=249 time=22.4 ms — globo.com ping statistics — 4 packets transmitted, 4 received, 0% packet loss, time 3005ms rtt min/avg/max/mdev = 22.309/23.525/25.299/1.247 ms
Vamos aos clientes:
LINUX
Por padrão alguns clientes DHCP linux não enviam o hostname, então vamos acertar isso:
# vi /etc/dhcp/dhclient.conf
send host-name “debian100″;
Configurar para pegar configuração via DHCP:
# vi /etc/network/interfaces
auto eth0 iface eth0 inet dhcp
Vamos reiniciar o serviço de rede:
# /etc/init.d/networking restart
# ping -c4 globo.com
WINDOWS
Por padrão todas as máquinas com S.O. Windows enviam por padrão o nome de máquina para o servidor DHCP. Então basta apenas configurar para pegar configuração de IP e DNS automaticamente.
Para testar abra o console e ping uma máquina da rede local apenas pelo nome de máquina, lembrando que as máquinas Windows bloqueiam ping por padrão.
C:> ping debian100
Caso seja necessário que um dos clientes seja mapeado para um IP basta voltar ao dnsmasq.conf e adicionar o seu MAC:IP:
# vi /etc/dnsmasq.conf
dhcp-host=08:00:27:6f:1a:10,172.16.1.30
E reiniciar o dnsmasq para que a configuração entre em vigor
# /etc/init.d/dnsmasq restart
Pronto, espero que tenham gostado do post e não se esqueçam de assinar o nosso portal.
Muito bom!
No entanto tenho algumas dúvidas, que abaixo pergunto:
Como se sabe o dnsmasq é uma ferramenta que tem como propósito gerar o cache de requisições dns feitas pelo sistema operacional. Sendo assim, quando usamos o dnsmasq diminuímos o tempo de latência, pois antes de ocorrer a requisição dns nos servidores da internet, essa requisição é feita na máquina local. Se a requisição estiver no banco local é atendida sem precisar ir aos servidores de dns da internet. Isso faz com que a eficiência do processo seja maior. Tendo em mente o exposto faço as seguintes perguntas:
1) como temos acesso ao banco de dados ou ao cache propriamente dito do dnsmasq?
2) Outra coisa: como podemos “limpar” esse cache? Ao executar o comando “/etc/init.d/dnsmasq restart” limpa-se o cache automaticamente?
Um grande abraço e parabéns pelo belo artigo!
Eduardo,
Primeiramente obrigado, quanto aos seus questionamentos não conheço nenhuma opção que dê acesso ao cache local do opendns e para limpar basta parar o processo ou restart pois os dados estão armazenados em memória.
Abração
Bom dia!
Estou querendo implantar um servidor PXE em CentOS ou Debian/Ubuntu para a instalação do windows via rede.
Na minha rede já possuo um DHCP que é fornecido pelo meu roteador e o servidor de dns é o próprio ip do roteador.
Não configurei um domínio mas sim um grupo de trabalho.
Onde devo alterar no arquivo acima para que não haja conflitos?
Atte.,
Marcos