DNS - Das Domain Name System

1. Einleitung

Theoretisch kann jeder Computer in einem Netzwerk über seine IP-Adresse erreicht werden. Doch diese sind für den Menschen schwer zu merken. Z. B. ist IP-Adresse des Deutschen Bundestags 217.79.215.140, mit dieser Zahlenkombination kann man aber den Bundestag nicht assoziieren, eine Adresse wie www.bundestag.de ist wesentlich einfacher zu merken. Ebenfalls ist eine Mail-Adresse in der Form larry@wall.org einfacher zu merken als larry@71.139.5.245.
IP-Adressen von Computern können sich ändern, man müsste sich dann auch ständig um die neue IP-Adresse kümmern. Nutzt man Adressen in Textform, muss es aber irgendeinen „Vermittler“ geben, der die Adresse in Textform in die zugehörige IP-Adresse übersetzt, da der Computer eben nur mit diesen Zahlen umgehen kann.

1.1. Lösung über eine Datei

Am Anfang des Internets (s. Arpanet) konnte man dieses Problem noch mit einer Datei lösen, in der für jeden Rechner der Name und die zugehörige IP-Adresse stand. Diese Datei musste dann regelmäßig erneuert werden. In kleineren Netzwerken kann man dies immer noch so lösen, die zugehörige Datei ist unter Linux-Betriebssystemen /etc/hosts unter Windows-Betriebssystemen C:\Windows\system32\drivers\etc\host. Eine solche Datei kann z. B. so aussehen:

/etc/hosts
127.0.0.1     localhost
127.0.1.1     halodri
10.0.2.51     archimedes
10.0.2.99     platon sokrates

Die beiden ersten Zeilen beschreiben den Rechner, auf dem diese Datei liegt. Dieser Rechner ist unter dem Namen halodri zu erreichen, generell ist jeder Rechner unter dem Namen localhost zu erreichen. Diese beiden Zeilen werden automatisch bei der Installation eingetragen, bzw. wird die zweite Zeile geändert, wenn man den Computernamen ändert.

In der dritten Zeile wird dem Computer mitgeteilt, dass der Computer archimedes unter der IP-Adresse 10.0.2.51 zu erreichen ist. In der vierten Zeile wird dem Computer mitgeteilt, dass der Rechner platon unter der IP-Adresse 10.0.2.99 zu erreichen ist. Zusätzlich wurde noch ein Alias für platon festgelegt, der Rechner ist also zusätzlich noch unter dem Namen sokrates zu erreichen. Dieses macht durchaus Sinn, z. B. ist die Zeitung „Die Zeit“ unter der Adresse zeit.de und diezeit.de zu erreichen.

Übung

Übung

Übung

Öffne die Datei /etc/hosts mit root-Rechten in einem Texteditor. Trage einen weiteren Rechner mit der zugehörigen IP-Adresse ein. Führe dann auf der Konsole

ping <hostname> 

aus. Hierbei wird die IP-Adresse des Rechnernamens angezeigt.

2. Das Domain Name System (DNS)

Man erkennt, dass diese Methode aus den Anfangszeiten schnell ihre Brauchbarkeit verliert. Mittlerweile sind Millionen Computer über das Internet miteinander verbunden. Ein Datei nach dem Muster von oben hätte eine Größe von ein paar Gigabyte. Außerdem muss die Vergabe einheitlich geregelt werden, ansonsten würde es ständig zu Konflikten kommen. Aus diesem Grund wurde das Domain Name System (DNS) entwickelt.

Kurz erklärt funktioniert es so: Ein Rechner der einen Namen in eine IP-Adresse auflösen möchte sendet eine Anfrage an eine DNS-Server. Diese schlägt in seiner Datenbank nach und schickt die zugehörige IP-Adresse zurück. Damit ein Computer weiß, an welchen DNS-Server er sich wenden muss, wird dessen IP-Adresse hinterlegt.

2.1. DNS-Server eintragen

Normaler Weise ist die IP-Adresse des DNS-Servers in dem DSL-Router des jeweiligen DSL-Anbieters hinterlegt. Der DSL-Router bezieht die Adresse des DNS-Servers bei der Installation automatisch. Ein Computer in einem lokalen Netzwerk hat dann als DNS-Server die Adresse des DSL-Routers eingetragen. Man kann aber auch einen Computer im lokalen Netz so konfigurieren, dass er einen „echten“ DNS-Server im Internet benutzt. Unter der Adresse www.stanar.de findet man eine Übersicht über verschiedene DNS-Server.

Übung

Übung

Übung

Öffne die Konfigurationsseite deines DSL-Routers und finde den eingetragene DNS-Server.

Normalerweise bekommt einer Rechner über DHCP seinen DNS-Server mitgeteilt. Man kann den DNS-Server aber auch direkt eintragen. Diese geht entweder über die Datei /etc/resolv.conf in die man nach diesem Format einträge vornehmen kann:

plain /etc/resolv.conf
nameserver 10.0.2.1

Man kann auch mehrere DNS-Server eintragen. Wird versucht den zweiten zu kontaktieren, usw..

Alternativ kann man unter Ubuntu auch über den Dialog „Verbindungen bearbeiten“ den DNS-Server für eine Netzwerkverbindung eintragen. Die folgende Abbildung zeigt das Vorgehen.

Links: Dialog zum Ändern der Netzwerkeinstellungen öffnen. Rechts: Eintragen des DNS-Servers

Auf der Konsole kann man sich mit

dig www.wikipedia.de

weitere Informationen über die DNS-Anfrage anzeigen lassen kann.

Übung

Übung

Übung

Führe den oben beschriebenen Befehl dig … auf der Konsole für verschiedene Seiten aus und analysiere die Ausgabe.

2.2. Domainen und der DNS-Namensraum

Bis jetzt wurden nur der Name eines Computers verwendet. Dieses Vorgehen würde bald an seine Grenzen stoßen. Z. B. betreibt google seinen Dienst u.a. in Deutschland, dort ist er unter der IP-Adresse 173.194.35.159 zu erreichen, und in den USA, dort unter der IP-Adresse 173.194.35.147. Könnte man nur den Hostnamen google angeben, könnte man immer nur eine IP-Adresse erreichen. Deswegen wurden sog. Domains eingeführt. Das Prinzip funktioniert analog zu dem einer Postadresse:

Vor ein paar 100 Jahren war es ausreichend, dass eine Person nur einen Vornamen besitzt, da er nur einmal in seinem Umkreis vorkam. Mit Anwachsen der gesellschaftlichen Strukturen kam es aber öfter vor, dass es eine Person z. B. mit dem Namen Hans gab. Deswegen haben sich Nachnamen etabliert, so dass der Name „Hans Schmidt“ eindeutig eine Person beschrieb. Dieser Nachname entspricht in der Netzwerktechnik einer Domain. Mit dem Beispiel oben gibt es z. B. nun die Adresse google.de und google.us. In beiden Fällen ist der Hostname gleich, die Domain (der Nachname) ist aber anders.
Im Beispiel mit „Hans Schmidt“ reichte mit Einführung des Postbetriebs irgendwann die Bezeichnung mit Vornamen und Nachnamen nicht mehr aus, da es z. B. einen Hans Schmidt in Magdeburg und einen in Bielefeld geben konnte. In größeren Städten kann es auch vorkommen, dass es mehrere Hans Schmidt gibt, die aber in unterschiedlichen Straßen wohnen. Auch kann es sein, dass es einen Hans Schmidt in Österreich und einen in Deutschland geben kann, also gehört zu einer volständigen Adresse der Vor- und Zuname, die Straße, die Stadt und das Land.
Aufbau eines FQDN (Fully Qualified Domain Name)

In dieser Form ist auch das Internet aufgeteilt. So kann man z. B. über maps.google.de den deutschen Kartendienst von google aufrufen. Dabei beschreibt “.de“ die sog. Top-Level-Domain, „google“ die Domain und „maps“ die Subdomain. Man kann dieses Vorgehen weiter fortführen und weitere Subdomains hinzufügen.

Mittleerweile gibt es ca. 250 Top-Level-Domains im Internet. Diese unterteilen sich in zwei Bereiche:

  1. Länder (Countries): .de, .fr, .us, .lu, .nl, …
  2. Allgemein (Generic): .com (commercial), .org (organisation), .edu (education), .mil (US-Militär), …

Die Vergabe der Top-level-Domains übernimmt die ICANN (Internet Corporation for Assigned Names and Numbers). Die Vergabe der darunter liegenden Domains übernimmt dann jeweils eine andere Organisation. Die Vergabe der Domains unterhalb der Top-Level-Domain .de übernimmt z. B. die DENIC (Deutsches Network Information Center). Hat man sich bei dieser (oder über einen Internetdienstanbieter) z. B. die Domain meineWebseite.de reserviert, so kann man selbst weitere Subdomains anlegen. Aufgrund dieses Vergabeverfahrens kann es zu keinem Namenskonflikt kommen.

Die folgende Abbildung zeigt den Aufbau des Domain-Systems nochmal im Überblick:

Aufbau des DNS (Domain Name System)

2.3. Domains in lokalen Netzen

Auch im lokalen Netzwerken ist es sinnvoll Domains anzulegen:

  1. In einer Schule gibt es einen Informatikraum und ein Freiarbeitsraum mit Computern. In diesem Fall kann man eine Domain .intern als „Top-Level-Domain“ der Schule anlegen. Darunter die Domains .info und .frei um die Computer in den beiden Räumen zu unterscheiden. Hat dann ein Computer im Informatikraum den Namen foo1, so kann man ihn unter dem absoluten Namen foo1.info.intern ansprechen. Alle Rechner des Informatikraums sind unter der Domain info.intern vereinigt.
  2. Handelt es sich um eine Schule, in der ein Berufskollege und ein Gymnasium untergebracht sind, die sich ein gemeinsames Netzwerk teilen, so könnte man noch die zusätzlichen Domains .gym und .bk einfügen. Der Rechner foo1 im Informatikraum hat dann den FQDN foo1.info.gym.intern.
  3. In einem kleinen Netzwerk mit nur ein paar wenigen Computern unter denen es keine weiteren Unterscheidung geben soll, würde man nur die Domain .intern verwenden. Ein Rechner hat dann den FQDN foo1.intern.

Will man von einem Rechner aus einen anderen Rechner ansprechen und verwendet nur den Hostnamen, wird dieser nicht gefunden. Im Beispiel 3 von oben wird versucht mit

ping foo1

den Computer foo1 anzupingen. Dieses schlägt fehl, denn der Rechner ist nur unter dem Namen foo1.intern zu erreichen. Man muss also

ping foo1.intern

ausführen, um diesen Rechner zu erreichen. Man kann aber eine Netzwerkverbindung so konfigurieren, dass er automatisch eine Suchdomain anhängt, wenn der Hostname nicht auffindbar ist. In der Abbildung oben, die das manuelle Eintragen den DNS-Servers zeigt, muss hierzu in das Feld „Suchdomänen“ die Domain „intern“ eingetragen werden.

3. Einen DNS-Server im lokalen Netz einrichten

Um die oben beschriebene Einordnung der Computer in unterschiedliche Domains zu erreichen, muss man einen DNS-Server installieren. Ein DNS-Server ist ein Programm, dass auf irgendeinem Rechner im Netzwerk (meistens aber dem Server) läuft. Es lauscht auf dem Port 53 nach Anfragen, und gibt zu angefragten Hostnames die zugehörige IP-Adresse zurück.

Unter Linux gibt es zwei Programm die diese Aufgabe übernehmen.

  • BIND: Dies ist der DNS-Server der von den meisten Anbietern eines im Internet verfügbaren DNS-Servers benutzt wird. Er ist für große Netze ausgelegt. Das zugehörige Paket heißt bind9. Der Artikel DNS-Server Bind erläutert die Installation.
  • Dnsmasq: Ein einfach zu konfigurierender DNS-Server für mittlere und kleine Netze. Der Artikel Dnsmasq beschreibt, wie man diesen Server einrichtetet. Das zugehörige Pakte heißt dnsmasq.

Zentyal nutzt BIND als DNS-Server. Der Artikel Zentyal:Infrastruktur:DNS beschreibt, wie man ihn einrichtet.

Diskussion

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
238 +1 = ?
 
 
netzwerk/dns.txt · Zuletzt geändert: 2013/03/21 08:30 von admin