Als Namensauflösung bezeichnet man Verfahren, die es ermöglichen, Namen von Rechnern beziehungsweise Diensten in vom Computer bearbeitbare, meist numerische Adressen zu übersetzen.
Für Menschen sind Namen wie beispielsweise „www.wikipedia.org“ einfacher zu merken und zu verwenden als numerische Adressen. Für Computer und Netzwerkkomponente sind Zeichenketten hingegen unhandlich beziehungsweise ineffizient verarbeitbar. Die Namensauflösung vermittelt zwischen diesen beiden Anforderungen, indem sie Namen in Adressen und unter Umständen auch zurück übersetzen kann. Im Fall von Web-Adressen (URLs) wird der enthaltene Domainname (zum Beispiel „www.wikipedia.org“) mit dem Domain Name System in eine IP-Adresse (zum Beispiel „91.198.174.232“) konvertiert.
Namensauflösung wird in vielen Bereichen verwendet. Ein sehr bekannter Anwendungsfall ist das Übersetzen von Rechnernamen beziehungsweise Domainnamen in Netzwerkadressen. Darüber hinaus sind auch vielen Netzwerkdiensten Namen zugewiesen. Der Dienstname „www“ wird beispielsweise zum TCP-Port „80“ aufgelöst. Protokollnamen wie „TCP“ haben ihrerseits wieder eine zugehörige Nummer, zum Beispiel „17“ für „UDP“.
Unter UNIX ist jedem Benutzer und jeder Gruppe eine Identifikationsnummer (UID beziehungsweise GID) zwischen 0 und 65535 zugeordnet. Auch hier meldet sich der Benutzer mit seinem Namen an, die Überprüfung von Zugriffsrechten erfolgt jedoch anhand der numerischen UID und der GIDs der Gruppen, zu denen der Benutzer gehört. Programme wie „ls“ und „ps“ konvertieren hingegen die numerischen IDs wieder zu Namen, um für den Benutzer eine gut lesbare Ausgabe zu erzeugen.
Es gibt mehrere Verfahren, die zur Namensauflösung eingesetzt werden können. Oft kommen mehrere Verfahren zum Einsatz, die in einer bestimmten Reihenfolge abgefragt werden, bis eines eine gültige Antwort liefern konnte.
Die Namensauflösung eines Windows-Rechners in einem SMB-Netzwerk erfolgt in dieser Reihenfolge:
1. DNS-Namenszwischenspeicher (DNS Cache) * Der DNS-Cache auf dem lokalen Computer wird durchsucht. 2. Host Datei * Die Host Datei auf dem lokalen Computer wird durchsucht. 3. DNS Abfrage * Es wird eine Anfrage an einen DNS Server im Netzwerk gesendet. 4. NetBIOS-Namenszwischenspeicher * Der NetBIOS-Namenszwischenspeicher wird auf dem lokalen Computer durchsucht. 5. WINS Abfrage * Es wird eine Anfrage an einen WINS Server im Netzwerk gesendet. 6. Broadcast * Es wird ein NetBIOS-Broadcast an das eigene Subnetz gesendet. 7. Lmhost Datei * Die Lmhost Datei auf dem lokalem Computer wird durchsucht.
Die einfachste Möglichkeit der Namensauflösung stellen lokale Dateien dar, die eine entsprechende Zuordnung enthalten. In Textdateien wird – wie in einer Tabelle – einem Namen eine oder mehrere Adressen beziehungsweise Nummern zugeordnet.
Verwendet werden lokale Konfigurationsdateien, wenn eine zentrale Organisation der Daten nicht erforderlich ist oder wenn sich die Daten sehr selten ändern. Da diese Dateien lokal vorhanden sind, funktioniert die Auflösung auch dann noch, wenn das Netzwerk ganz oder teilweise ausgefallen ist. Daher werden sehr wichtige Daten häufig (auch) in lokale Dateien eingetragen.
Beispiele (UNIX):
Bildlicher Vergleich: Das Adressbuch in einem Mobiltelefon ist vergleichbar mit einer lokalen Konfigurationsdatei: Die gespeicherten Telefonnummern kann man nachschlagen, ohne eine andere Person zu fragen. Die Information ist auch dann verfügbar, wenn die Telefonauskunft aufgrund eines technischen Fehlers nicht erreichbar ist. Dafür wird das Adressbuch nicht automatisch gepflegt: Eine etwaige neue oder geänderte Telefonnummer erscheint nicht automatisch im Adressbuch.
Über einen Broadcast im direkt angeschlossenen Netz wird versucht, den Namen ausfindig zu machen. Dieses Vorgehen wird beispielsweise von ARP in Ethernet-Netzwerken verwendet, um die MAC-Adresse zu einer IPv4-Adresse herauszufinden.
Bildlicher Vergleich: Man ruft im Großraumbüro, in dem man sich befindet, den Namen des Partners, mit dem man telefonieren möchte und bittet um seine Telefonnummer. Wenn man diese bekommen hat, kann man den gewünschten Partner anrufen. Prinzipbedingt können nur Personen erreicht werden, die sich im selben Raum aufhalten.
Der Rechner erfragt die gewünschte Information bei einem speziellen Netzwerkdienst. Je nach Anwendungsfall kommen andere Dienste zum Einsatz. Durch die zentrale Datenhaltung können Änderungen an einer Stelle durchgeführt werden, abfragende Rechner müssen nicht angepasst werden.
Beispiele:
Bildlicher Vergleich: Man kennt (lediglich) die Telefonnummer der Telefonauskunft. Diese ruft man an, um die Telefonnummer einer dritten Person herauszufinden. Neue Telefonnummern müssen lediglich der Auskunft, nicht aber jedem Telefonbesitzer mitgeteilt werden. Wenn die Auskunft technische Probleme hat, kann man hingegen nur noch telefonieren, wenn man eine alternative Möglichkeit hat die Telefonnummer ausfindig zu machen.
Der Computer sieht in seinem lokalen Cache nach, ob er diesen Namen schon einmal aufgelöst hat. Wenn ja, befindet sich im Cache die benötigte Adresse / Nummer, die er wiederverwenden kann. Dieses Zwischenspeichern wird insbesondere in Verbindung mit Namensdiensten verwendet, um die Anzahl der Zugriffe zu reduzieren und um die Auflösung zu beschleunigen.
Bildlicher Vergleich: Man möchte jemanden anrufen, mit dem man vor kurzem schon einmal telefoniert hat. Also drückt man einfach die Wahlwiederholung, da das Telefon die letzten Nummern noch gespeichert hat.
Die Reihenfolge ist nicht standardisiert, sondern hängt von verschiedenen Faktoren ab.
Mit diesem Verfahren kann ein Webserver so konfiguriert werden, dass Websites unterschiedlichen Namens dieselbe IP-Adresse haben. Zur Unterscheidung nutzt der Webserver den im HTTP-Request enthaltenen Host Header. Die verschiedenen Websites werden in diesem Fall auch als (namensbasierte) Virtual Hosts bezeichnet.
Bildlicher Vergleich: Man ruft eine Telefonnummer an, die man auf einem der oben beschriebenen Wege ermittelt hat. Dem sich (unter dieser Nummer) meldenden Gesprächspartner sagt man, wen genau man sprechen möchte.
Dieser Artikel basiert auf dem Artikel Namensauflösung aus der freien Enzyklopädie Wikipedia und ist unter der Lizenz Creative Commons Attribution/Share Alike verfügbar. Zusätzliche Bedingungen können anwendbar sein. In der Wikipedia ist eine Liste der Autoren verfügbar. |