Você pode fazer isso com dnsmasq .
O Dnsmasq aceita consultas DNS e as responde de um cache pequeno, local ou as encaminha para um servidor DNS real e recursivo. Ele carrega o conteúdo de / etc / hosts para que nomes de host locais que não aparecem no DNS global possam ser resolvidos e também responde a consultas DNS para hosts configurados para DHCP.
Instalar dnsmasq é apenas um caso de usar o apt-get.
sudo apt-get install dnsmasq
Configure o dnsmasq como DNS DHCP
Olhando o arquivo /etc/dnsmasq.conf primeiro. As linhas são listadas são aquelas que eu mudei de seus padrões. Apenas descomente e emendá-los conforme necessário. (Remova o "#" do começo da linha).
sudo nano /etc/dnsmasq.conf
domain-needed
bogus-priv
no-resolv
no-poll
server=/example.com/192.168.0.5
server=8.8.8.8
server=208.67.220.220
local=/example.com/
address=/doubleclick.net/127.0.0.1
no-hosts
addn-hosts=/etc/dnsmasq_static_hosts.conf
expand-hosts
domain=example.com
dhcp-range=192.168.0.20,192.168.0.50,72h
dhcp-host=mylaptop,192.168.0.199,36h
dhcp-option=option:router,192.168.0.1
dhcp-option=option:ntp-server,192.168.0.5
dhcp-option=19,0 # ip-forwarding off
dhcp-option=44,192.168.0.5 # set netbios-over-TCP/IP aka WINS
dhcp-option=45,192.168.0.5 # netbios datagram distribution server
dhcp-option=46,8 # netbios node type
O que essas linhas farão por você.
-
domain-needed Isso indica
dnsmasqpara nunca passar nomes abreviados para os servidores DNS upstream. Se o nome não estiver no arquivo/etc/hostslocal, "não encontrado" será retornado. -
bogus-priv Todas as pesquisas de IP reverso (192.168.xx) que não são encontradas em
/etc/hostsserão retornadas como "nenhum tal domínio" e não serão encaminhadas aos servidores upstream. -
não-resolv Não leia
resolv.confpara encontrar os servidores onde procurar o dns. -
no-poll Não pesquisa
resolv.confpara alterações -
server = 8.8.8.8 Defina um ou mais
DNSservidores para usar quando os endereços não forem locais. Estes sãoDNSservidores abertos. -
local = / example.com / Em nosso domínio local, as consultas nesses domínios são respondidas pelos arquivos
/etc/hostsou estáticos-hosts. -
address = / doubleclick.net / 127.0.0.1 Use essa força um endereço para os domínios especificados. por exemplo, para bloquear anúncios, force
doubleclck.nettolocalhost -
no-hosts Esta opção interrompe
dnsmasqusando o arquivo local/etc/hostscomo fonte de pesquisas. -
addn-hosts = /etc/dnsmasq_static_hosts.conf Força
dnsmasqa usar este arquivo para pesquisas. Está no mesmo formato que/etc/hosts. -
expand_hosts Portanto, podemos ver nossos hosts locais por meio de nosso domínio inicial sem precisar especificar o domínio repetidamente em nosso arquivo
/etc/hosts. -
domain Este é o nome do seu domínio local. Ele dirá ao servidor
DHCPqual host fornecerá endereços IP para. -
dhcp-range Esse é o intervalo de IPs que o
DHCPveiculará:192.168.0.20to192.168.0.50, com um tempo de concessão de 72 horas. O tempo de concessão é por quanto tempo esse IP será vinculado a um host. -
dhcp-host = mylaptop, 192.168.0.199,36h Qualquer máquina dizendo que eles são
hostname = ‘mylaptop’obtém esteIPaddress -
dhcp-option = opção: roteador, 192.168.0.1 Quando um host está solicitando um endereço
IPviaDHCP, informe também o gateway a ser usado. -
dhcp-option = opção: ntp-server, 192.168.0.5 Quando um host está solicitando um endereço IP por meio de
DHCP, informe o mesmoNTP. p>
No arquivo /etc/dnsmasq_static_hosts.conf , você pode adicionar uma lista de máquinas locais com endereços IP estáticos no mesmo formato do arquivo de hosts. Também é uma maneira fácil de criar aliases ou registros CNAME.
192.168.0.8 mail mail.example.com
192.168.0.9 smtp smtp.example.com
192.168.0.120 mythtvbox mythtvbox.example.com
Iniciando e interrompendo o serviço
sudo service dnsmasq start
sudo service dnsmasq stop
sudo service dnsmasq restart
E mais uma coisa a fazer. Encerre todos os outros DHCP servidores na rede local. Seu DHCP/DNS server deve ser apenas um.