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
dnsmasq
para nunca passar nomes abreviados para os servidores DNS upstream. Se o nome não estiver no arquivo/etc/hosts
local, "não encontrado" será retornado. -
bogus-priv Todas as pesquisas de IP reverso (192.168.xx) que não são encontradas em
/etc/hosts
serão retornadas como "nenhum tal domínio" e não serão encaminhadas aos servidores upstream. -
não-resolv Não leia
resolv.conf
para encontrar os servidores onde procurar o dns. -
no-poll Não pesquisa
resolv.conf
para alterações -
server = 8.8.8.8 Defina um ou mais
DNS
servidores para usar quando os endereços não forem locais. Estes sãoDNS
servidores abertos. -
local = / example.com / Em nosso domínio local, as consultas nesses domínios são respondidas pelos arquivos
/etc/hosts
ou 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.net
tolocalhost
-
no-hosts Esta opção interrompe
dnsmasq
usando o arquivo local/etc/hosts
como fonte de pesquisas. -
addn-hosts = /etc/dnsmasq_static_hosts.conf Força
dnsmasq
a 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
DHCP
qual host fornecerá endereços IP para. -
dhcp-range Esse é o intervalo de IPs que o
DHCP
veiculará:192.168.0.20
to192.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 esteIP
address -
dhcp-option = opção: roteador, 192.168.0.1 Quando um host está solicitando um endereço
IP
viaDHCP
, 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.