como adicionar entrada ao resolvedor DNS local [fechado]

19

Eu quero fazer alguns testes no linux. Quero colocar um pequeno servidor Web em uma máquina com IP: 1.2.3.4 (suposição) e, quando uma consulta DNS for feita para um URL específico: kitty.myweb.com, quero retornar esse endereço IP.

Cenários:

  1. Quando abro um navegador (firefox ou o que for), insiro o URL kitty.myweb.com e o navegador faz a consulta DNS
  2. Quero escrever um programa que faça a consulta DNS para kitty.myweb.com

Eu sei que cada computador tem um resolvedor de DNS local que armazena em cache algumas entradas; uma chamada para um URL consultará primeiro o resolvedor de DNS local e, se não houver entradas correspondentes, a consulta será enviada para um resolvedor de DNS externo na LAN ou na Internet.

O que eu quero é adicionar uma entrada (kitty.myweb.com: 1.2.3.4) ao resolvedor de DNS local, para que, nos 2 cenários acima, a resposta do DNS seja 1.2.3.4 sem precisar fazer uma consulta externa.

É possível fazer isso no linux? Se sim, como? Talvez haja algum trecho de código C que faça isso?

misteryes
fonte

Respostas:

30

Você pode usar o / etc / hosts para adicionar sua entrada. Isso realmente não está usando DNS, mas afeta a biblioteca de resolvedores no Linux, que é usada pela maioria dos aplicativos. Adicionar:

1.2.3.4 kitty.myweb.com

Outra opção seria instalar um servidor DNS simples no seu sistema. O que eu geralmente uso é chamado dnsmasq. Em algumas distros, ele é instalado por padrão como um resolvedor de armazenamento em cache; nesse caso, você só precisa modificar a configuração para incluir:

endereço = / kitty.myweb.com / 1.2.3.4

Se você estiver executando seu próprio servidor DNS, provavelmente precisará jogar com o /etc/resolv.conf, que é usado pela biblioteca de resolvedores do Linux. Para fazer a biblioteca do resolvedor olhar para um servidor DNS local, você precisará de uma entrada no resolv.conf:

nameserver 127.0.0.1

Gregor
fonte
9

A maneira mais fácil de adicionar uma única entrada DNS ao host local é adicioná-la ao arquivo de hosts. A localização desse arquivo pode variar de acordo com a distribuição, mas sua localização tradicional é /etc/hostse deve ser mais ou menos assim:

:: 1 localhost localhost.seudominio.tld
127.0.0.1 localhost localhost.seudominio.tld
1.2.3.4 kitty.myweb.com

Observe que isso afetará apenas o seu próprio computador e que não será bem dimensionado. Em outras palavras, é bom para testes simples, apenas não tente editar arquivos de hosts em muitos computadores. Para isso, você deseja entradas DNS apropriadas.

Hennes
fonte