Isso é um pouco confuso, já que você descreve outra configuração que não menciona no tópico.
Primeiro cache de DNS local
Isso é muito fácil de alcançar usando dnsmasq
Para configurar isso, instale o pacote dnsmasq
da sua distribuição. Como os sistemas baseados no Debian são comuns hoje em dia, eu assumirei esta distro.
$ apt-get install dnsmasq
Agora edite /etc/dnsmasq.conf
e defina a diretiva listen-address
para o endereço IP da interface de rede conectada à sua rede.
Agora reinicie o serviço dnsmasq
$ /etc/init.d/dnsmasq restart
Edite seu resolv.conf
e insira os servidores de nomes fornecidos pelos seus provedores ou por outro:
# Google DNS 1
nameserver 8.8.8.8
# Google DNS 2
nameserver 8.8.4.4
Agora você pode configurar sua máquina Linux como servidor DNS de seus clientes de rede local e usar o cache de DNS.
Para testar se está funcionando, você pode usar dig
$ dig example.com
Você verá algo como
;; Query time: 38 msec
Agora digite o comando novamente e você verá algo como:
;; Query time: 2 msec
ISP como servidor DNS real
Isso seria possível usando um software de servidor de nomes real, como bind. Mas se você não tem nenhuma experiência sobre isso, você provavelmente deveria começar a ler adiante em bind9.net , pois isso seria amplo para responder.