como adicionar entrada ao resolvedor DNS local [fechado]

14

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

Cenários:

  1. Quando abro um navegador (firefox ou qualquer outro), introduzo o URL kitty.myweb.com e o navegador faz a consulta de DNS
  2. Eu 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 algumas entradas; uma chamada para um URL consultará primeiro o resolvedor de DNS local e, se não houver entradas correspondentes, ele enviará a consulta para um resolvedor de DNS externo na rede local ou na Internet.

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

É possível fazer isso no linux e, em caso afirmativo, como? Existe algum trecho de código C que faria isso?

    
por misteryes 20.05.2013 / 21:07

2 respostas

24

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

1.2.3.4 kitty.myweb.com

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

address=/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 resolução do Linux. Para fazer com que a biblioteca de resolução veja um servidor DNS local, você precisará de uma entrada no resolv.conf:

nameserver 127.0.0.1

    
por 20.05.2013 / 21:26
7

A maneira mais fácil de adicionar uma única entrada DNS em seu host local é adicioná-lo ao arquivo de hosts. A localização desse arquivo pode variar por distribuição, mas sua localização tradicional é /etc/hosts e deve ficar mais ou menos assim:

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

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

    
por 20.05.2013 / 21:15