Integração de DNS com o DHCP
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.
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 e muito útil. Vale apena!
obrigado fazer o teste agora …..
Ricardo implementei aqui e ficou otimo, já tinha ouvido falar do Dnsmasq, mas ainda não tinha testado, ficou muito bom mesmo. Parabéns !!!
Marcos,
Obrigado pelo comentário
Abraços