Wie füge ich einen Eintrag zum lokalen DNS-Resolver hinzu? [geschlossen]

19

Ich möchte einige Tests unter Linux durchführen. Ich möchte einen kleinen Webserver auf einem Computer mit der IP-Adresse: 1.2.3.4 (Annahme) einrichten und bei einer DNS-Abfrage für eine bestimmte URL: kitty.myweb.com diese IP-Adresse zurückgeben.

Szenarien:

  1. Wenn ich einen Browser öffne (Firefox oder was auch immer), gebe ich die URL kitty.myweb.com ein und der Browser führt die DNS-Abfrage durch
  2. Ich möchte ein Programm schreiben, das die DNS-Abfrage für kitty.myweb.com ausführt

Ich weiß, dass jeder Computer einen lokalen DNS-Resolver hat, der einige Einträge zwischenspeichert. Bei einem Aufruf einer URL wird zuerst der lokale DNS-Resolver abgefragt. Wenn keine entsprechenden Einträge vorhanden sind, wird die Abfrage an einen externen DNS-Resolver im LAN oder Internet gesendet.

Ich möchte dem lokalen DNS-Resolver einen Eintrag (kitty.myweb.com: 1.2.3.4) hinzufügen, sodass in den beiden obigen Szenarien die DNS-Antwort 1.2.3.4 lautet, ohne dass eine externe Abfrage erforderlich ist.

Ist dies unter Linux möglich und wenn ja, wie? Gibt es vielleicht C-Code-Schnipsel, die dies tun würden?

misteryes
quelle

Antworten:

30

Möglicherweise können Sie / etc / hosts verwenden, um Ihren Eintrag hinzuzufügen. Dies verwendet DNS nicht wirklich, wirkt sich jedoch auf die Resolver-Bibliothek unter Linux aus, die von den meisten Anwendungen verwendet wird. Hinzufügen:

1.2.3.4 kitty.myweb.com

Eine andere Möglichkeit wäre, einen einfachen DNS-Server auf Ihrem System zu installieren. Die, die ich oft benutze, heißt dnsmasq. In einigen Distributionen wird es standardmäßig als Caching-Resolver installiert. In diesem Fall müssten Sie nur die Konfiguration ändern, um Folgendes einzuschließen:

address = / kitty.myweb.com / 1.2.3.4

Wenn Sie einen eigenen DNS-Server betreiben, müssen Sie wahrscheinlich mit /etc/resolv.conf spielen, die von der Linux-Resolver-Bibliothek verwendet wird. Damit die Resolver-Bibliothek auf einem lokalen DNS-Server angezeigt wird, benötigen Sie einen Eintrag in der Datei resolv.conf:

Nameserver 127.0.0.1

Gregor
quelle
9

Der einfachste Weg, einen einzelnen DNS-Eintrag auf Ihrem lokalen Host hinzuzufügen, besteht darin, ihn der Hosts-Datei hinzuzufügen. Der Speicherort dieser Datei kann je nach Distribution variieren. Der herkömmliche Speicherort lautet jedoch /etc/hostsund sollte ungefähr so ​​aussehen:

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

Beachten Sie, dass dies nur Ihren eigenen Computer betrifft und nicht gut skaliert. Mit anderen Worten, es ist in Ordnung für einfache Tests. Versuchen Sie einfach nicht, Hosts-Dateien auf vielen Computern zu bearbeiten. Dafür brauchst du richtige DNS-Einträge.

Hennes
quelle