comment ajouter une entrée au résolveur DNS local [fermé]


19

Je veux faire quelques tests sur Linux. Je veux mettre un petit serveur web sur une machine avec IP: 1.2.3.4 (hypothèse) et quand une requête DNS est faite pour une URL spécifique: kitty.myweb.com je veux retourner cette adresse IP.

Scénarios:

  1. Lorsque j'ouvre un navigateur (Firefox ou autre), j'entre l'URL kitty.myweb.com et le navigateur fait la requête DNS
  2. Je veux écrire un programme qui effectue la requête DNS pour kitty.myweb.com

Je sais que chaque ordinateur possède un résolveur DNS local qui met en cache certaines entrées; un appel à une URL interrogera d'abord le résolveur DNS local, et s'il n'y a aucune entrée correspondante, il enverra la requête à un résolveur DNS externe sur le LAN ou Internet.

Ce que je veux, c'est ajouter une entrée (kitty.myweb.com: 1.2.3.4) au résolveur DNS local, de sorte que pour les 2 scénarios ci-dessus, la réponse DNS sera 1.2.3.4 sans avoir à faire de requête externe.

Est-il possible de le faire sur Linux, et si oui, comment? Y a-t-il peut-être des extraits de code C qui feraient cela?

Réponses:


30

Vous pourrez peut-être utiliser / etc / hosts pour ajouter votre entrée. Cela n'utilise pas vraiment DNS mais cela affecte la bibliothèque de résolveurs sous Linux, qui est utilisée par la plupart des applications. Ajouter:

1.2.3.4 kitty.myweb.com

Une autre option serait d'installer un simple serveur DNS sur votre système. Celui que j'utilise souvent s'appelle dnsmasq. Sur certaines distributions, il est installé par défaut comme résolveur de mise en cache, auquel cas il vous suffit de modifier la configuration pour inclure:

adresse = / kitty.myweb.com / 1.2.3.4

Si vous utilisez votre propre serveur DNS, vous devrez probablement jouer avec /etc/resolv.conf qui est utilisé par la bibliothèque de résolution de Linux. Pour que la bibliothèque du résolveur regarde un serveur DNS local, vous aurez besoin d'une entrée dans resolv.conf:

serveur de noms 127.0.0.1


9

La façon la plus simple d'ajouter une seule entrée DNS sur votre hôte local consiste à l'ajouter au fichier hosts. L'emplacement de ce fichier peut varier selon la distribution, mais son emplacement traditionnel est /etc/hostset il devrait ressembler à peu près à ceci:

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

Notez que cela n'affectera que votre propre ordinateur et que cela ne fonctionne pas bien. En d'autres termes, il convient parfaitement aux tests simples, n'essayez tout simplement pas de modifier les fichiers hôtes sur de nombreux ordinateurs. Pour cela, vous voulez des entrées DNS appropriées.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.