Szenario
Ich habe eine kleine Website auf einem Windows 10 Pro N-PC mit (z. B.) öffentlicher IP: 123.456.78
Wenn ich diese IP von irgendwo eingebe, wird die Website problemlos geöffnet.
Jetzt habe ich auch 2 Domänennamen gekauft, z. B. www.somewebsiteOne.com
bei www.somewebsiteTwo.org
2 verschiedenen Domänenverkäufern. Und ich bin abhängig von einem DNS-Dienst, der www.somewebsiteTwo.ddns.net
an weiterleitet 123.456.78
. Bei den Domänenverkäufern kann ich dann www.somewebsiteTwo.org
an weiterleiten www.somewebsiteTwo.ddns.net
. Meine Absicht ist es, die Abhängigkeit vom DNS-Server durch meinen selbstgehosteten Open-Source-DNS-Server mit Technitium zu ersetzen.
Um zu überprüfen, ob mein eigener DNS-Server funktioniert, muss ich Folgendes tun:
- Öffnen Sie Powershell auf einem anderen Computer in einem anderen Netzwerk.
- Geben Sie ein: nslookup www.somewebsiteTwo.org 123.456.78
- Das gibt tatsächlich die IP-Adresse 123.456.78 zurück
Problem
Wenn ich jetzt versuche, die IP-Adresse dieses DNS-Servers bei einem der beiden Domänenverkäufer einzugeben, muss ich Folgendes eingeben:
- Hostname
- IP Adresse
Wo kann ich für den Hostnamen etwas wie www.somewebsiteTwo.ddns.net
„(das ist ein DNS-Server, der www.somewebsiteTwo.org
an 123.456.78
und für die IP-Adresse weiterleitet 123.456.78
.)“ eingeben? Nachdem ich mit einem der beiden telefoniert hatte, wurde mir erklärt, dass sie den Hostnamen und nicht die IP-Adresse verwenden, um meinen persönlichen öffentlichen DNS-Server zu finden, nicht die IP-Adresse.
Das bedeutet im Wesentlichen, dass ich einen DNS-Server brauche, der einen Hostnamen für meinen persönlichen öffentlichen DNS-Server an die IP-Adresse meines DNS-Servers weiterleitet. Das widerspricht meinen Absichten. Daher habe ich Folgendes:
Frage
Wie kann ich einen funktionierenden Hostnamen ermitteln und verwenden, der auf meinen persönlichen öffentlichen DNS-Server unter verweist 123.456.78
?
Versuche
- Ich habe versucht, den Hostnamen meines PCs einzugeben, z. B. den, der in cmd bei command zurückgegeben wird
hostname
. Aber das wird nicht als gültiger Hostname angesehen. - Ich habe versucht, dies einzugeben
123.456.78
, aber dies wird nicht als gültiger Hostname angesehen. - Ich habe versucht, einzutreten
http://123.456.78/
, aber es funktioniert nicht. - Die IP-Adressen funktionieren aus folgenden Gründen nicht als Hostname für die Bezugnahme auf einen DNS-Server:
Der für einen DNS-Server und bei der Registrierung und Verwendung einer DNS-(Sub-)Domäne zu verwendende Hostname muss ein gültiger, vollqualifizierter DNS-Hostname sein, wie zum Beispiel ns1.example.com. oder customer-5363.dsl-users.isp.example.net . Das Protokoll erlaubt keine IP-Adresse. Wenn Sie einen DNS-Eintrag wie ns1.example.com verwenden möchten, um die Domäne example.com zu registrieren, muss Ihr Registrar zuerst den richtigen Verbindungseintrag einrichten
Antwort1
Nachdem ich mit einem der beiden telefoniert hatte, wurde mir erklärt, dass sie zum Auffinden meines persönlichen öffentlichen DNS-Servers den Hostnamen und nicht die IP-Adresse verwenden, nicht die IP-Adresse.
Das bedeutet im Wesentlichen, dass ich einen DNS-Server brauche, der einen Hostnamen für meinen persönlichen öffentlichen DNS-Server an die IP-Adresse meines DNS-Servers weiterleitet. Was meinen Absichten zuwiderläuft.
Das ist nicht ganz richtig.
Es stimmt, dass NS-Einträge, die für Domänendelegierungen verwendet werden,nurNehmen Sie Hostnamen und keine Rohadressen.
Allerdings dürfen Sie tatsächlich einen Hostnamen angeben, der sich unter Ihrer eigenen Domain befindet, und deshalb gibt es daneben IP-Adressfelder: Sie ermöglichen Ihnendefinierenden Hostnamen und verwenden Sie ihn gleichzeitig. Darauf bezieht sich die Support-Nachricht tatsächlich, wenn sie „Glue Records“ erwähnt, die diese Art von „Schleife“ ermöglichen.
(Beachten Sie, dass Sie genau dieselben Hostnamendefinitionen auch in Ihrem eigenen DNS-Server hinzufügen müssen – die Glue-Records beim Registrar gelten als Kopie und die auf Ihrem Server als maßgebliche Version.)
Wenn Sie beispielsweise den Nameserver eingeben ns1.somewebsite.com
, veröffentlicht der Registrar diesen DNS-Eintrag:
somewebsite.com. NS ns1.somewebsite.com.
Da der Hostname des Nameservers unter der Domain liegt, die er hostet, würde dies offensichtlich nicht so funktionieren, da es eine Schleife erzeugen würde. SieAuchSie müssen die IP-Adresse des Servers in das entsprechende Feld eingeben. Dadurch kann der Registrar einen zweiten DNS-Eintrag (den „Glue“-Eintrag) veröffentlichen:
somewebsite.com. NS ns1.somewebsite.com.
ns1.somewebsite.com. A 12.34.56.78
Wenn ein Resolver versucht, die Nameserver für Ihre Domäne abzufragen, werden ihre IP-Adressen aus den Glue-Records immer an dieselbe Antwort angehängt, wodurch das Loop-Problem vermieden wird.
Antwort2
In meiner Frage war der Hostname einfach eine beliebige Zeichenfolge, normalerweise ns1
gefolgt ns2
von <website without the http://www.>
z. B. wenn Ihre Website ist, swag.org
können Sie ns1.swag.org
in Ihren eigenen DNS-Servereinstellungen erstellen und dann den „Hostnamen“ ns1.swag.org
in Ihrem Registrar eingeben. Sie benötigen (normalerweise) 2 DNS-Server, also erstellen Sie einen weiteren „Hostnamen“ ns2.swag.org
und geben diesen ebenfalls ein. Dann geben Sie bei der IP einfach die öffentliche IP-Adresse Ihres PCs ein, auf dem der DNS-Server gehostet wird (die Sie auch bei dem ns1.swag.org
Eintrag in den Technitium/DNS-Einstellungen eingegeben haben).
Unten sehen Sie ein Beispiel, wie Sie dies alles mit Bildern erledigen können.
Überprüfte Einstellungen zum Hosten Ihres eigenen DNS-Servers:
- Kurz gesagt, Sie geben diese Einstellungen in Ihr Technitium-Einstellungsfenster ein (ersetzen Sie das
your ip
durch die öffentliche IP-Adresse Ihres Computers/Hosts/des Geräts, auf dem Sie Ihre Website hosten). (DasA
ns1.<yourwebsite>
` ist ein Verbindungseintrag, der dem Computer, der die Leute mit Ihrer Website verbindet, mitteilt: „Wenn Sie nach diesem Hostnamen/dieser Website suchen, können Sie sich diese IP ansehen, um den Hostnamen/die Website zu finden.“ (Dann würde es jedoch in eine Endlosschleife geraten, also sagen Sie ihm: „OK, hör hier auf, du hast die Website unter dieser IP gefunden.“)
- Erstellen Sie dann den benutzerdefinierten DNS-Eintrag bei Ihrem Domain-Registrar. Dies wird bei jedem Domain-Verkäufer anders gemacht. Dies ist das Beispiel für Namecheap. Kurz gesagt, Sie möchten den Hostnamen Ihres DNS-Servers eingeben (wenn Sie
ns1.<yourwebsite adres>
ihn in Technitium eingeben, geben Sie diesen zusammen mit der öffentlichen IP-Adresse Ihres Computers ein).
- Sie können überprüfen, ob Ihr DNS-Server/Glue-Eintrag für die IP korrekt eingegeben wurde, indem Sie nach folgendem suchen:
ns1
oderns2
(wenn Sie Folgendes eingegeben habenns1.<yourwebsite>
):
- Vergessen Sie nicht, in den Website-Einstellungen auch Ihren eigenen benutzerdefinierten DNS auszuwählen. Andernfalls haben Sie auf Ihrem lokalen DNS-Server alles richtig konfiguriert und dem Registrar gesagt: „Hey, beim benutzerdefinierten DNS schaut euch diese IP für meinen eigenen DNS-Server an.“ Am Ende sucht der Registrar jedoch immer noch auf seinem eigenen Standard-DNS-Server (wo er Ihre IP nicht findet, dafür müssen Sie bezahlen).
Anmerkungen
- Diese Einstellungen erlauben noch nicht
https://www.yourwebsite.something
. Dafür braucht man ein SSL-Zertifikat, das bekommt man kostenlos bei openssl und Technitium unterstützt zwar https. Das habe ich allerdings noch nicht implementiert. - Eine detailliertere und ausführlichere Anleitung finden Sie unter:https://github.com/at-0/DnsServerzusammen mit dem Open Source-DNS-Server Technitium, der von jemand anderem erstellt wurde, habe ich ihn einfach geforkt und Anweisungen hinzugefügt.