DNS-Server für Fake-Domäne, nur für interne Testzwecke (unter Linux)

DNS-Server für Fake-Domäne, nur für interne Testzwecke (unter Linux)

Angenommen, ich habe mehrere Maschinen (oder VMs) in einem internen LAN (Klasse 10.0 oder 192.168), die miteinander kommunizieren müssen. Anstatt jedoch eine etwas dynamische, mühsam zu aktualisierende Datei /etc/hosts zu konfigurieren (da hin und wieder neue VMs hinzugefügt werden), möchte ich einen internen DNS-Server einrichten. Auf allen meinen Testmaschinen und VMs läuft Linux. Dazu habe ich einige Fragen:

  1. Kann ich den DNS-Server so einrichten, dass ich eine gefälschte Domäne (z. B. „example.com“, da diese reserviert ist) als meine im privaten Netzwerk intern bekannte Domäne verwenden kann?
  2. Kann ich den DNS-Server so einrichten, dass /etc/resolv.conf auf diesen Server verweist, um alle Maschinen-IP-Adressen für Hosts in dieser privaten/gefälschten Domäne aufzulösen? Für eine echte/tatsächlich existierende Domäne sollte der DNS-Server jedoch auf einen kaskadierten tatsächlichen DNS-Server (z. B. einen öffentlichen DNS-Server) verweisen oder die aufgelöste IP-Adresse von diesem abrufen? Letzterer dient dem Zugriff auf das allgemeine öffentliche Internet von den Testmaschinen über einen NAT-Proxy.
  3. Könnte ich so etwas beispielsweise mit TinyDNS machen? Ich finde Bind ein bisschen zu einschüchternd und vielleicht ein Overkill für meine Bedürfnisse?

Antwort1

Die kurze Antwort lautet: Ja, und es spielt keine Rolle, ob Ihre Domain echt oder gefälscht ist. Es ist im Allgemeinen einfach eine bessere Idee, etwas zu verwenden, das Ihnen gehört (oder eine Subdomain von etwas, das Ihnen gehört), um mögliche Probleme in der Zukunft zu vermeiden. Die Verwendung einer echten Domain, die Ihnen gehört, ermöglicht es auch, echte (öffentlich vertrauenswürdige) Zertifikate für Namen in dieser Domain zu erhalten, ohne eine interne PKI einrichten zu müssen.

Nahezu jede DNS-Software kann das unterstützen, was Sie versuchen. Sie fungiert sowohl als „autoritativer“ als auch als „rekursiver“ DNS-Server. Sie ist für die example.com(oder eine beliebige) Zone autorisierend und Rekursion ist der Teil, der es ermöglicht, dass Abfragen, für die sie nicht autorisierend ist, aus dem Internet aufgelöst werden.

Ihre Clients verweisen in ihrer resolv.conf also nur auf Ihren DNS-Server. Abfragen für alles darin example.comwerden anhand seiner Datensätze aufgelöst. Bei Abfragen für alles andere sucht der DNS-Server im Internet nach Antworten, speichert sie (wahrscheinlich) zwischen und gibt sie als „nicht autoritative“ Antworten an den Client zurück.

Antwort2

ich benutzeDNS-MASQfür ähnliche Zwecke. Ich habe es auf einem Raspberry Pi laufen. Es dient als lokaler DNS-Server für mein Netzwerk, sodass alle Clients es abfragen. Wenn die Domäne nicht in seiner lokalen Datenbank oder seinem Cache vorhanden ist, wird eine Abfrage an einen Internet-DNS-Server gesendet (ich habe einige Tests durchgeführt, um herauszufinden, welcher die schnellste Antwortzeit hat, und diese ausgewählt).

Mit diesem Setup können Sie sowohl echte als auch „gefälschte“ Domänen haben. Wenn ich beispielsweise an einer Website arbeite, ändere ich möglicherweise die IP-Adresse der echten Domäne in eine lokale, in Bearbeitung befindliche Adresse auf dem DNSMASQ-Server. Wenn ich fertig bin und möchte, dass auf die echte Website im Internet zugegriffen wird, entferne ich einfach die Einstellung. (Denken Sie daran, dass dies ein kleines Netzwerk ist, über das ich die vollständige Kontrolle habe. In einem komplizierteren Szenario möchten Sie die Dinge nicht so hin und her ändern.)

In dnsmasq können Sie Folgendes tun:

address=/myfakedomain.com/10.16.1.20

um Anfragen für myfakedomain.com an die angegebene IP-Adresse umzuleiten. Sie können sogar Dinge tun wie:

address=/plex/10.16.1.55

um Benutzern die Eingabe von Schlüsselwörtern und den Zugriff auf Dienste im Netzwerk zu ermöglichen.

Ich verwende ihn auch als meinen DHCP-Server und stelle so sicher, dass er als primärer DNS-Server für das Netzwerk ausgegeben wird.

Antwort3

Versuchen Sie, diese Lösung zu verwenden:https://github.com/mocktools/ruby-dns-mock Es ist einfach, jede Art von DNS-Eintrag zu imitieren!

verwandte Informationen