Geschichte von DNS

In den 70er-Jahren hatte man es satt, sich die IP-Adressen der Server zu merken, auf die man zugreifen wollte. Gleichzeitig entstand die Idee, anstelle einer numerischen Hostadresse einen einfacheren und einprägsameren Namen zu verwenden.

Mitarbeiter des Stanford Research Institute haben eine Textdatei HOSTS.TXT erstellt , die eine Liste von Zeichenfolgennamen und den entsprechenden numerischen Adressen von Computern im ARPANET enthielt.

Adressen wurden manuell vergeben. Um einen Hostnamen und eine Adresse anzufordern oder einen Computer zur Stammdatei hinzuzufügen, kontaktierten Benutzer während der Geschäftszeiten telefonisch das Netzwerkinformationszentrum von Stanford.

In den frühen 1980er Jahren war die Pflege einer einzigen, zentralen Host-Tabelle langsam und umständlich geworden, und das wachsende Netzwerk benötigte ein automatisches Benennungssystem, um technische und personelle Probleme zu bewältigen.

Im Jahr 1984 schrieben vier Studenten der UC Berkeley die erste Version des hierarchischen Domain-Name-Systems. Mittlerweile ist es vor allem auf Unix-Systemen weit verbreitet und noch immer die am weitesten verbreitete DNS-Software im Internet.

Einführung in DNS

Domain Name System (DNS) ist ein Verteilungssystem zum Speichern und Abrufen von Informationen über Domänen. Es wird am häufigsten verwendet, um eine IP-Adresse von einem Hostnamen (Computer oder Gerät) zu erhalten, E-Mail-Routing-Informationen zu erhalten und/oder Hosts für Protokolle in einer Domäne bereitzustellen.

Das System ist in Form einer bestimmten Hierarchie von DNS-Servern organisiert, die gemäß einem bestimmten Protokoll interagieren. Die Grundlage für das Verständnis von DNS ist das Verständnis der hierarchischen Struktur von Namen und Zonen.

Jeder für eine Domänenzone verantwortliche Server kann die Verantwortung für einen weiteren Teil der Domäne auf einen anderen Server übertragen, was es ermöglicht, die Verantwortung für die Relevanz von Informationen den Servern verschiedener Organisationen zu übertragen, die nur für „ihren“ Teil der Domäne verantwortlich sind Domainname.

Das DNS-System enthält eine Hierarchie von DNS-Servern, die der Zonenhierarchie entspricht. Jede Zone wird von mindestens einem autorisierenden DNS-Server unterstützt, der Informationen über die Domäne hostet.

Wichtig! Der Name und die IP-Adresse müssen nicht unbedingt eine Eins-zu-eins-Beziehung zueinander haben. Eine IP-Adresse kann viele Domänennamen haben, wodurch Sie viele Websites auf einem Computer unterstützen können (dies wird als Shared Hosting bezeichnet ).

Es kann auch umgekehrt sein – viele IP-Adressen können einem Domänennamen zugeordnet werden: Dies ermöglicht die Erstellung eines Lastausgleichs und wird aktiv in CDN-Netzwerken verwendet .

Um die Stabilität des Systems zu erhöhen, werden viele Server mit identischen Informationen verwendet, und das Protokoll verfügt über Mittel, um die Synchronität von Informationen auf verschiedenen Servern aufrechtzuerhalten. Es gibt 13 Root-Server, deren Adressen sich praktisch nicht ändern.

Interessant! Das DNS-Protokoll verwendet den TCP- oder UDP-Port 53, um auf Anfragen zu antworten. Traditionell werden Anfragen und Antworten als einzelnes UDP-Datagramm gesendet. TCP wird verwendet, wenn die Antwortdatengröße 512 Byte überschreitet.

DNS-Einträge

Der DNS-Server speichert eine Reihe von Parametern für jeden Domänennamen. Dabei handelt es sich um Aufzeichnungen über den Domainnamen, seine IP-Adresse sowie verschiedene Serviceinformationen.

Insgesamt gibt es mehrere Dutzend solcher Einträge, daher betrachten wir nur die beliebtesten davon:

A Adresse IP Adresse
AAAA Adresse IPv6 Adresse im IPv6-Format
CNAME Eindeutige Bezeichnung Kanonischer Name für Alias
MX Mail-Austauscher Mail-Gateway-Adresse für die Domäne
NS Name Server Die Adresse des Knotens, der für die Domänenzone verantwortlich ist
SOA Beginn der Autorität Angabe der Autorität der Information
SRV Serverauswahl Angeben von Serverstandorten für Dienste
PTR Zeiger Adressnamenübereinstimmung – Umgekehrte Übereinstimmung für A und AAAA
TXT Textzeichenfolge Schreiben Sie beliebige Binärdaten mit bis zu 255 Byte

Die interessantesten hier sind:

  • Mit dem A- Eintrag können Sie eine IP-Adresse angeben, die einer Domäne entspricht.
  • Mit CNAME können Sie ein Synonym für den Namen festlegen, zum Beispiel www.codegym.cc == codegym.cc.
  • Der MX- Eintrag enthält Informationen über den Mailserver: Was ist zu tun, wenn ein Brief bei xxx@codegym.cc eintrifft?
  • NS – gibt die Adresse des DNS-Servers an, der Informationen zu dieser Domäne enthält. Nützlich, wenn Datensätze zwischengespeichert und auf nicht nativen Knoten gespeichert werden.

Suche nach IP-Adressen

Sehen wir uns an, wie das DNS-System funktioniert.

Nehmen wir an, Sie haben api.codegym.cc in Ihren Browser eingegeben. Der Browser kontaktiert den lokalen DNS-Dienst und fordert Sie auf, ihm eine IP-Adresse für die Domäne api.codegym.cc zu geben. Folgendes wird als nächstes passieren ...

Zunächst prüft der DNS-Dienst, ob sich diese Domäne in der lokalen Hosts-Datei auf Ihrem Computer befindet. Wenn ja, wird die IP-Adresse daraus übernommen. Wenn nicht, sendet es eine Anfrage an den ihm bekannten DNS-Server: „Wie lautet die IP-Adresse von api.codegym.cc?“.

Allerdings weiß der DNS-Server möglicherweise nicht nur nichts über den angeforderten Namen, sondern sogar über die gesamte Domain codegym.cc. In diesem Fall kontaktiert der Server den Root-Server – zum Beispiel 198.41.0.4. Dieser Server sagt: „Ich habe keine Informationen über diese Adresse, aber ich weiß, dass 204.74.112.1 für die ru-Zone verantwortlich ist.“

Dann sendet der DNS-Server seine Anfrage an 204.74.112.1, antwortet aber: „Ich habe keine Informationen über diesen Server, aber ich weiß, dass 207.142.131.234 für die Zone codegym.cc verantwortlich ist.“ Schließlich wird die gleiche Anfrage an einen dritten DNS-Server gesendet und erhält eine Antwort – eine IP-Adresse, die an den Client, also den Browser, übermittelt wird.

In diesem Fall funktionierten bei der Suche nach einer IP nach Namen die folgenden Regeln:

  • Der Browser hat eine rekursive Anfrage an einen bekannten DNS-Server gesendet (als Antwort auf diese Art von Anfrage muss der Server eine IP-Adresse oder eine leere Antwort und einen NXDOMAIN-Fehlercode zurückgeben).
  • Der DNS-Server, der die Anfrage vom Browser erhalten hat, sendete nacheinander nicht rekursive Anfragen, auf die er Antworten von anderen DNS-Servern erhielt, bis er eine Antwort von dem für die angeforderte Zone zuständigen Server erhielt.
  • Die übrigen genannten DNS-Server verarbeiteten Anfragen nicht rekursiv (und hätten Anfragen höchstwahrscheinlich nicht rekursiv verarbeitet, selbst wenn eine solche Anforderung in der Anfrage enthalten wäre).

Es ist manchmal möglich, dass der angeforderte Server eine rekursive Anfrage an einen „Upstream“-DNS-Server sendet und auf eine fertige Antwort wartet.

Wichtig! Bei der rekursiven Abfrageverarbeitung durchlaufen alle Antworten den DNS-Server und dieser erhält die Möglichkeit, sie zwischenzuspeichern. Eine wiederholte Anfrage nach denselben Domainnamen geht in der Regel nicht über den Cache des Servers hinaus und Aufrufe an andere Server finden überhaupt nicht statt.

Die zulässige Cache-Zeit für Antworten wird mit den Antworten geliefert (TTL-Feld des Ressourcendatensatzes).

hosts-Datei

Wir haben festgestellt, dass die erste Suche in der lokalen Hosts-Datei erfolgt. Dies ist der Erbe der Datei HOSTS.TXT, die bereits zu Zeiten von ARPANET erfunden wurde. Ja, es existiert noch und wird immer noch verwendet.

Es befindet sich entlang des Weges:

  • /etc/hosts unter Linux.
  • %SystemRoot%\system32\drivers\etc\hosts unter Windows.
  • /system/etc/hosts in Android.

Normalerweise enthält die Datei eine Standortdefinition für den Localhost-Knoten:

127.0.0.1   	localhost

Der Aufbau ist sehr einfach: Zuerst kommt die IP-Adresse, dann der Domainname.

Nützlich

Mithilfe der Hosts-Datei ist es möglich, Anzeigen zu filtern, indem Domänenadressen von Bannern an die Adresse 127.0.0.0, 127.0.0.1 oder 0.0.0.0 umgeleitet werden.

Die Verwendung von 127.0.0.1 wird generell nicht empfohlen, da es zu einem Antwort-Timeout und damit verbundenen Verzögerungen kommt, wenn der Server nicht existiert oder falsch konfiguriert ist. Und wenn Sie eine Werbedomäne der IP-Adresse 0.0.0.0 zuordnen, werden alle Anfragen an diese sofort abgebrochen.

Öffentliche DNS-Server

Normalerweise erhalten Sie zusammen mit Ihrem Internetdienst einen DNS-Server, wenn Sie ihn verbinden. Doch nicht immer ist ein solcher kostenloser DNS-Server die beste Option. Darüber hinaus möchten Sie möglicherweise nicht bei jedem Besuch einer Website eine Abfrage mit dem Domänennamen an den DNS-Server Ihres Internetdienstanbieters senden.

Daher ziehen es viele Menschen vor, auf öffentliche, kostenlose DNS-Server umzusteigen. Erstens sind sie sehr schnell und verfügen über einen großen Cache an Domainnamen. Sie erhalten ein schnelleres Laden und eine schnellere Verfügbarkeit der Website bei minimalem Risiko technischer Probleme.

Zweitens Sicherheit. Einige DNS-Dienste können den Zugriff auf Phishing- und bösartige Websites blockieren und eine Inhaltsfilterung anbieten, um Kinder vor unangemessenen Online-Inhalten zu schützen.

Solche DNS-Server können sogar Betrüger bekämpfen. Wenn Sie beispielsweise auf die Website einer gefälschten Bank gehen, erhalten Sie vom DNS-Server nicht die IP-Adresse des Betrügers, sondern dessen Sicherheitsdienst.

Liste solcher Server

Wolkenflare 1.1.1.1
1.0.0.1
Cloudflare verspricht, dass es keine Besucherdaten zur Schaltung von Anzeigen verwenden und niemals IP-Adressen von Anforderungsquellen auf die Festplatte brennen wird.
Öffentliches DNS von Google 8.8.8.8
8.8.4.4
Speichert etwa 24–48 Stunden lang vollständige Informationen über die IP-Adresse des anfordernden Geräts zur Fehlerbehebung und Diagnose
Comodo Secure DNS 8.26.56.26
8.20.247.20
Blockiert Phishing-Websites, warnt aber auch, wenn Sie versuchen, Websites mit Malware oder Spyware zu besuchen
Yandex.DNS 77.88.8.8
77.88.8.1
Kostenloser DNS-Dienst einer beliebten russischen Suchmaschine