come aggiungere la voce al resolver DNS locale [chiuso]


19

Voglio fare alcuni test su Linux. Voglio mettere un piccolo server web su una macchina con IP: 1.2.3.4 (presupposto) e quando viene fatta una query DNS per un URL specifico: kitty.myweb.com voglio restituire questo indirizzo IP.

scenari:

  1. Quando apro un browser (firefox o altro), inserisco l'URL kitty.myweb.com e il browser eseguirà la query DNS
  2. Voglio scrivere un programma che esegue la query DNS per kitty.myweb.com

So che ogni computer ha un resolver DNS locale che memorizza nella cache alcune voci; una chiamata a un URL richiederà prima il resolver DNS locale e, se non vi sono voci corrispondenti, invierà la query a un resolver DNS esterno sulla LAN o su Internet.

Quello che voglio è aggiungere una voce (kitty.myweb.com: 1.2.3.4) al resolver DNS locale, in modo che per i 2 scenari precedenti, la risposta DNS sarà 1.2.3.4 senza dover effettuare una query esterna.

È possibile farlo su Linux, e se sì, come? Esistono forse frammenti di codice C che lo farebbero?

Risposte:


30

Potresti essere in grado di usare / etc / hosts per aggiungere la tua voce. Questo in realtà non utilizza DNS ma influisce sulla libreria del resolver in Linux, utilizzata dalla maggior parte delle applicazioni. Inserisci:

1.2.3.4 kitty.myweb.com

Un'altra opzione sarebbe quella di installare un semplice server DNS sul tuo sistema. Quello che uso spesso si chiama dnsmasq. In alcune distribuzioni viene installato per impostazione predefinita come risolutore della cache, nel qual caso sarà necessario modificare la configurazione solo per includere:

address = / kitty.myweb.com / 1.2.3.4

Se stai eseguendo il tuo server DNS, probabilmente dovrai giocare con /etc/resolv.conf che è usato dalla libreria del resolver di Linux. Per fare in modo che la libreria del resolver guardi un server DNS locale, è necessario inserire una voce in resolv.conf:

nameserver 127.0.0.1


9

Il modo più semplice per aggiungere una singola voce DNS sull'host locale è aggiungerlo al file hosts. La posizione di quel file può variare in base alla distribuzione, ma la sua posizione tradizionale è /etc/hostse dovrebbe essere simile a questa:

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

Nota che questo avrà effetto solo sul tuo computer e che non si adatta bene. In altre parole, va bene per semplici test, ma non provare a modificare i file host su molti computer. Per questo vuoi voci DNS appropriate.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.