Netzwerk Grundlagen

Viele Menschen wissen was eine IP-Adresse ist, dennoch gibt es manchmal sogar bei Administratoren Wissenslücken, was das Zusammenspiel der TCP/IP Protokollfamilie angeht. Diese Unterlagen versuchen einen Überblick über Netzwerkgrundlagen (betriebssystemunspezifisch) zu geben.

IP

Das IP-Protokoll ist die Grundlage der meisten Netzwerke heutzutage. Ein Protokoll ist dabei eine Art gemeinsame standardisierte Sprache, die es mehreren Rechnern erlaubt miteinander zu kommunizieren. Das IP-Protokoll ist für die Adressierung im Netzwerk verantwortlich. Derzeit gibt es 2 Versionen des IP-Protokolls: IPv4 und IPv6. Wenn ich in diesen Unterlagen nur vom IP-Protokoll spreche ist im allgemeinen IPv4 gemeint.

IPv4 ist derzeit noch überwiegend im Einsatz. IPv4 Adressen bestehen aus 4 Zahlen die Werte zwischen 0 und 255 (8 bit) annehmen können und jeweils durch Punkte getrennt werden. Gültige Adressen sind also z. B. 147.8.39.236 oder 7.45.238.3. Die Adresse 23.434.56.9 ist hingegen ungültig, da 434 größer als 255 ist.

Da eine IP-Adresse weltweit einmalig sein muß und die Anzahl der durch dieses Adressierungsschema möglichen Adressen relativ begrenzt ist, war bereits seit längerem klar, das langfristig IPv4 durch eine Nachfolgeversion abgelöst werden muß. Dieser Nachfolger ist IPv6. IPv6 hat deutlich längere Adressen. IPv6 Adressen werden hexadezimal notiert, wobei die Zahl in 8 Blöcke zu je 16 Bit unterteilt wird. Diese Blöcke werden durch Doppelpunkt getrennt notiert. IPv6 Adressen sehen daher z. B. so aus: 2001:0db8:85a3:08d3:1319:8a2e:0370:7344.

Führende Nullen in Blöcken dürfen ausgelassen werden, z. B. läßt sich die vorher benutzte Beispieladresse auch so schreiben: 2001:db8:85a3:8d3:1319:8a2e:370:7344. Ein oder mehrere aufeinander folgende Blöcke deren Wert 0 ist, dürfen ausgelassen und durch 2 Doppelpunkte ersetzt werden, z. B. ist 2001:a37:0:0:0:d342:13b6:89 gleichbedeutend mit 2001:a37::d342:13b6:89. Solch eine Auslassung darf zwecks Eindeutigkeit nur einmal durchgeführt werden.

Subnetting und Routing

Das IP-Protokoll ist auch für die Aufteilung in Netzwerke verantwortlich. Ein Netzwerk im IP-Sinne ist ein Verbund von zusammengehörigen Rechnern, die über Router mit anderen Netzwerken verbunden sein können. Welche Adressen zu einem Netzwerk gehören und welche als zu anderen Netzwerken gehörig gerechnet werden, entscheidet dabei die Netzwerkmaske. Die Netzwerkmaske "maskiert" diejenigen Bits in der IP-Adresse, die zum Netzwerk gehören.

Was heißt das in der Praxis: Eine Netzwerkmaske von 255.255.0.0 bedeutet, das die beiden ersten Stellen jeweils alle Bits zur Netzwerkadresse rechnen und die beiden folgenden Stellen alle Bits zum Hostanteil. Zusammen mit einer IP-Adresse von 172.28.45.211 bedeutet dies etwa das ein Rechner mit der Adresse 172.28.103.45 im gleichen Netzwerk liegt, aber ein Rechner mit der IP-Adresse 172.26.45.130 in einem anderen Netzwerk und nur über einen Router erreichbar ist. Die Netzwerkadresse dieses Netzwerks ist dann 172.28.0.0. Die erste Adresse in einem Netzwerk ist immer die Adresse für das ganze Netzwerk und kann nicht für einen Rechner vergeben werden. Die letzte Adresse in einem Netzwerk ist die Broadcastadresse über die Nachrichten an alle Teilnehmer des Netzwerks gesendet werden können. Diese Adresse kann daher auch nicht für einen einzelnen Rechner verwendet werden. Die Broadcastadresse für dieses Beispielnetzwerk ist 172.28.255.255. Alle Adressen die dazwischen liegen können für die Rechner dieses Netzwerkes verwendet werden.

Neben der Schreibweise der Netzwerkmaske wie eine IP-Adresse hat sich auch die Schreibweise mit Suffixen in neuerer Zeit durchgesetzt. Die Netzwerkmaske wird dabei als Suffix an eine IP-Adresse angehängt, z. B. 192.168.1.0/24. Das Suffix /24 entspricht dabei der Netzwerkmaske 255.255.255.0. Die Zahl gibt an, wieviele Bit der Adresse zum Netzwerkanteil gehören. Eine Netzwerkmaske von 255.255.0.0 hat also das Suffix /16.

Für IPv6 existiert nur die Suffixschreibweise, z. B.: 2001:0db8:85a3:08d3:1319:8a2e:0370:7347/64

Muß ein Rechner ein Datenpaket an eine Adresse schicken, die nicht innerhalb seines eigenen Netzwerkes liegt, schickt er dieses Paket an sein Standardgateway. Das Standardgateway ist der Rechner in einem Netzwerk, an dem alle Pakete geschickt werden, für die die Netzwerkroute nicht bekannt ist.

Das Standardgateway ist dabei ein Router der an mehrere Netzwerke angeschlossen ist und anhand seiner eigenen Routinginformationen entscheidet, wohin das Paket weiter geschickt wird. Das Internet selbst ist ein Verbund aus sehr vielen über Router miteinander verbundenen Netzwerken.

Broadcasts sind Netzwerkpakete, die an ein ganzes Netzwerk gerichtet sind und grundsätzlich nicht in andere Netzwerke geroutet werden. Broadcasts werden z. B. genutzt um bestimmte Informationen im gesamten Netzwerk zu verteilen. Zum versenden eines Broadcasts muß eine spezielle Adresse verwendet werden. Hierfür ist die jeweils letzte Adresse in einem Netzwerk reserviert. In dem Netzwerk 172.18.0.0/16 wäre dies z. B. 172.18.255.255.

Private Adressen und NAT

Da der IPv4 Adressraum begrenzt ist und IPv6 aufgrund seiner Inkompatibilität mit IPv4 nur langsam und schleppend eingeführt wird, gibt es eine Lösung um auch im IPv4 Adressraum genügend Rechner adressieren zu können. Hierzu wurden zum einen sogenannte private Adressräume eingerichtet. Das sind Adressen, die im Internet nicht geroutet werden und reserviert sind für nicht öffentliche Netze, wie z. B. interne Firmennetzwerke oder Heimnetzwerke. Für diesen Zweck wurden folgende Adressräume reserviert:

192.168.0.0/16
172.16.0.0/12
10.0.0.0/8

Diese Adressen können also von jedermann in seinem eigenen Netz vergeben werden und müssen nicht weltweit einmalig sein.

Da aber diese Adressen auch nicht im Internet geroutet werden, können Rechner mit so einer Adresse auch keine anderen Rechner im Internet erreichen. Daher gibt es noch einen zusätzlichen Trick: NAT. NAT steht für Network Adress Translation. NAT übersetzt private IP-Adressen in eine weltweit einmalige IP-Adresse.

NAT wird im allgemeinen durch Router durchgeführt, die an der Grenze zwischen internen Netzwerk und Internet stehen. Ein NAT-Router bekommt auf der Internetseite eine weltweit einmalige nicht private IP-Adresse und verändert alle Quell-IP-Adressen von Netzwerkpaketen die aus dem internen Netzwerk stammen ab, in diese einmalige IP-Adresse. Daher scheinen Verbindungen von Rechnern die hinter einem NAT-Router stehen, immer von der gleichen Adresse auszugehen, obwohl hinter dem NAT-Router zahllose weitere Rechner stehen können. Wenn der Router dann die Antwortpakete aus dem Internet empfängt werden die Adressen einfach wieder zurück übersetzt.

Nicht zu den privaten Adressen zählend, aber dennoch mit einer speziellen Bedeutung versehen, ist der Adressraum 127.0.0.0/8 (also die Adressen 127.0.0.1 bis 127.255.255.254). Diese Adressen stehen immer für den eigenen Rechner und werden auch Loopback Adressen genannt. Benutzt wird dabei meist nur die Adresse 127.0.0.1. Loopbackadressen werden benutzt um z. B. Dienste die auf dem selben Rechner laufen zu erreichen. Zum funktionieren der Loopbackadressen wird keine Netzwerkkarte benötigt. Die meisten Betriebssysteme emulieren stattdessen eine virtuelle Loopbacknetzwerkkarte (z. B. lo unter Linux). IPv6 benutzt als Loopbackadresse ::1.

Schichtenmodell

Die vielfältigen Protokolle die es in Netzwerken gibt, arbeiten in Schichten zusammen. Mann kann sich das so vorstellen, daß die Pakete eines Protokolls einer höheren Schicht in Pakete eines Protokolls einer niedrigeren Schicht verpackt werden und dadurch transportiert werden. Die höheren Protokollschichten benutzen also die niedrigeren als Transportmedium.

Es existieren zur Erklärung des Netzwerkaufbaus 2 unterschiedliche Schichtenmodelle: Das OSI-Referenzmodell, das 7 Schichten kennt und das TCP/IP Modell (auch DoD Modell genannt), das 4 Schichten unterscheidet. In der Literatur wird das OSI-Referenzmodell häufiger benutzt und es ist bekannter, ich persönlich empfinde jedoch in der Administratorpraxis das 4-schichtige TCP/IP Modell als Praxisnäher.

OSI-SchichtEinordnungDoD ModellProtokollbeispielKopplungselemente
7 AnwendungAnwendungsorientiertAnwendungHTTP, FTP, SMTP, POP3, DNSGateway
6 Darstellung
5 Sitzung
4 TransportTransportorientiertTransportTCP, UDP
3 VermittlungInternetIP, ICMPRouter
2 SicherungNetzzugangEthernetSwitch
1 BitübertragungHub

OSI-Referenzmodell

Das OSI-Referenzmodell unterteilt sich in 7 Schichten:

  1. Bitübertragungsschicht: Diese Schicht hat die Aufgabe die Datenpakete physikalisch durch die Leitung zu übertragen, besteht also aus den elektrischen Impulsen.
  2. Sicherung: Diese Schicht hat die Aufgabe eine fehlerfreie Übertragung der Daten über das Zugangsmedium (z. B. Netzwerkkarte) zu ermöglichen.
  3. Vermittlung: Diese Schicht sorgt für die Weitervermittlung von Datenpaketen. Auf dieser Ebene ist daher z. B. auch das Routing realisiert.
  4. Transport: Diese Schicht ist für den Transport und die Segmentierung der Datenpakete zuständig. Diese Schicht ist die unterste Schicht die eine vollständige Ende-zu-Ende Kommunikation ermöglicht.
  5. Sitzung: Diese Schicht sorgt für die Prozesskommunikation zwischen zwei Systemen. Sie sichert die Verbindung z. B. gegen Verbindungsabbrüche ab.
  6. Darstellung: Diese Schicht setzt die Darstellung der Daten in eine systemunabhängige Form um. Auch die Verschlüsselung ist eine Aufgabe dieser Schicht.
  7. Anwendung: Diese Schicht stellt den Anwendungen den Zugriff auf das Netzwerk bereit.

TCP/IP Modell

Das TCP/IP Modell wird auch oft DoD Modell genannt (weil es vom Department of Defense erstmalig verwendet wurde). Es hat 4 Schichten:

  1. Netzzugang: Diese Schicht ist gleichbedeutend mit den 2 ersten Schichten des OSI-Modells. Ein typisches Protokoll dieser Schicht ist Ethernet, das heute in den meisten Netzwerken verwendet wird.
  2. Internet: Wie der Name es schon sagt, ist dies die Schicht auf der auch das IP-Protokoll arbeitet. Es entspricht der Vermittlungsschicht im OSI-Modell.
  3. Transport: Auf dieser Schicht arbeiten die Protokoll TCP und UDP. Diese Schicht entspricht ebenfalls der Transport-Schicht im OSI-Modell.
  4. Anwendung: Diese Schicht ist die Schicht auf der die Anwendungsprotokolle, wie etwa HTTP oder FTP arbeiten. Es umfaßt die Schichten 5 - 7 im OSI-Modell.

Da in der täglichen Administratorpraxis meist kaum eine Differenzierung zwischen den OSI-Schichten 1 und 2 und ebenso auch nicht zwischen den OSI-Schichten 5 - 7 notwendig ist, halte ich das 4-schichtige TCP/IP-Modell für näher an der Praxis.

Den Weg von Daten durchs Netzwerk kann man sich in etwa so vorstellen, das eine Anwendung auf Anwendungsebene zuerst ein Paket für das jeweilige Anwendungsprotokoll packt, sagen wir als Beispiel ein Paket mit einer HTTP-Anfrage für eine Webseite. Das HTTP-Paket wird als nächstes in ein TCP-Paket eingepackt (Transport-Ebene). Dann wird dieses TCP-Paket in ein IP-Paket eingepackt und erhält seine Zieladresse und seine Quelladresse (an die Antworten wieder zurück geschickt werden). Dieses IP-Paket wird in ein Ethernet-Frame verpackt und an die Netzwerkkarte weitergegeben. Die Netzwerkkarte sendet dann das Ethernetframe durch die Leitung.

Da die Zieladresse in einem anderen Netzwerk liegt, wird das Ethernetframe an das Standardgateway geschickt. Das Standardgateway ist ein Router der dieses Paket zunächst mal auspackt, so das er wieder das IP-Paket vor sich hat und die Zieladresse begutachten kann. Der Router verpackt dann dieses IP-Paket wieder in ein Ethernetframe oder eventuell auch in ein PPP-Paket (für eine Einwählverbindung) und schickt es an den nächsten Router. Ist das Paket angekommen, wird wiederrum das Ethernetframe entpackt und schließlich auch das IP-Paket entpackt. Das TCP-Paket sagt dem Zielrechner außerdem das dieses Paket an die Portnummer 80 auf diesem Rechner geschickt werden soll. Nachdem also auch das TCP-Paket ausgepackt ist, hat die Anwendung die auf Port 80 auf diesem Rechner läuft das HTTP-Paket vor sich und kann es entpacken. Die Anwendung wiederrum verpackt ein Antwort-HTTP-Paket und die Reise beginnt von neuem.

weitere Protokolle

Das IP Protokoll hatte ich bereits vorgestellt. Im weiteren stelle ich noch weitere wichtige Protokolle der verschiedenen Netzwerkebenen vor.

TCP

Das TCP-Protokoll (Transmission Control Protocol) ist ein Protokoll der Transport-Schicht. Es sorgt daher für den sicheren Transport der Daten durchs Netzwerk. Das TCP-Protokoll arbeitet zur Adressierung mit Portnummern. Während IP-Adressen unterschiedliche Rechner kennzeichnen, werden Portnummern zur Adressierung innerhalb eines Rechners, z. B. für mehrere unterschiedliche Netzwerkanwendungen die auf einem Rechner laufen benutzt.

Das TCP-Protokoll ist ein Verbindungsorientiertes Protokoll, das heißt es gibt die 2 Zustände Verbindung aufgebaut oder Verbindung abgebaut. Ein Verbindungsaufbau (oder auch ein Verbindungsabbau) werden dabei durch einen sogenannten 3-Wege-Handschlag vollzogen. TCP-Pakete kennen für solche Zwecke einige "Flags".

Soll eine Verbindung aufgebaut werden, passiert folgendes: Zuerst sendet der Host, der eine Verbindung aufbauen möchte ein TCP-Paket mit gesetzten SYN-Flag. Der Zielhost antwortet dann mit einem TCP-Paket mit gesetzten SYN und zusätzlich gesetzten ACK-Flag. Danach bestätigt der erste Host dieses Paket mit einem TCP-Paket mit gesetzten ACK-Flag. Nun gilt die Verbindung als augebaut und es können Daten gesendet werden. Ein Verbindungsabbau geschieht ganz ähnlich nur das statt des SYN-Flags, das FIN-Flag verwendet wird.

TCP nummeriert seine Datenblöcke durch um zu gewährleisten, das der Empfänger die Daten in der richtigen Reihenfolge wieder zusammensetzt. Von Zeit zu Zeit wird der Empfang von Daten durch ein TCP-ACK-Paket bestätigt. Die Häufigkeit der Bestätigung hängt dabei von der sogenannten Window-Size ab, ein Wert der von jedem Host innerhalb gewisser Grenzen selbst festgelegt wird.

UDP

UDP (User Datagram Protocol) ist ein Protokoll das ebenso wie TCP auf der Transportebene arbeitet und Portnummern für die Adressierung verwendet. Im Gegensatz zu TCP arbeitet es jedoch nicht verbindungsorientiert und ist wesentlich simpler gehalten.

Bei UDP werden die Daten immer direkt gesendet, es gibt weder Bestätigungen, noch Sequenznummern. Daher müssen bei UDP die Anwendungen selber sicherstellen, das die Pakete korrekt zusammen gesetzt werden, und fehlende Paket erneut angefordert werden.

UDP hat durch seinen geringen Protokolloverhead den Vorteil deutlich schneller und effizienter als TCP zu arbeiten. UDP wird daher vor allen dort eingesetzt, wo Echtzeitübertragung wichtiger ist, als maximale Transportsicherung, wie etwa bei Voice over IP oder für Online-Spiele. Auch Protokolle die innerhalb minimalistischer Systeme funktionieren müssen verwenden daher meist UDP, wie etwa TFTP, eine vereinfachte Form von FTP welches auch in Netzwerkkarten-ROMs integriert wird. Auch für das Tunneln anderer Pakete wird oft UDP verwendet, das es wenig Sinn macht TCP-Pakete in anderen TCP-Paketen zu tunneln und der Overhead dadurch gigantisch werden würde.

ICMP

ICMP (Internet Control Message Protocol) ist ein Zusatz zum IP-Protokoll und arbeitet wie dieses auf der Ebene 3 des OSI-Models, bzw. auf der Internet-Schicht des TCP/IP-Modells. Es dient dem Austausch von Kontrollnachrichten und Fehlermeldungen. Beispielsweise schickt ein Router eine ICMP-Nachricht an einen Host zurück wenn Datenpakete dieses Hosts sein eigentliches Ziel nicht erreichen konnten und vom Router verworfen wurden. Auch der bekannte Ping und seine Antwortnachricht (Pong) sind eine ICMP-Nachricht.

ICMP kennt eine Reihe von Pakettypen, von denen die meisten nur sehr selten benutzt werden. Einige bekanntere Pakettypen sind:

Wenn ein Rechner ein UDP-Paket auf einem Port bekommt, welcher nicht geöffnet ist, antwortet dieser mit einem ICMP-Paket vom Typ 3 Untertyp 3 (Port unreachable). Bei einer Anfrage an einen nicht geöffneten TCP-Port, wird jedoch nicht mit einem ICMP-Paket, sondern mit einem TCP-Paket mit gesetzten RST (Reset) Flag geantwortet, was zu einer sofortigen Zurücksetzung der TCP-Verbindung führt.

Ethernet

Ethernet ist ein Netzwerkprotokoll auf den unteren beiden Ebenen des OSI-Modells oder auf der untersten Ebene des TCP/IP-Modells. Es dient der lokalen Vernetzung von Computern in einem LAN (Local Area Network). Ethernet umfaßt Spezifikationen für Kabel und Stecker. Netzwerkkarten und Switches arbeiten ebenso auf Ethernet-Ebene.

Zur Adressierung innerhalb eines LANs dienen bei Ethernet die MAC-Adressen (Media Access Control). MAC-Adressen werden als Hexadezimale Adressen dargestellt, die so ähnlich aussehen wie IPv6 Adressen, aber etwas kürzer als IPv6 Adressen sind. Eine typische MAC-Adresse wäre zum Beispiel: 66:55:a4:3c:22:11.

MAC-Adressen werden werksseitig für Netzwerkkarten vorgegeben, können jedoch durch Software auch temporär überschrieben werden.

Für Ethernet sind verschiedene Geschwindkeitsstufen spezifiziert worden. Heute sind meist 100 Mbit/s und 1 Gbit/s üblich. Die Typbezeichnung für gängige 100 Mbit/s Ethernet Netzwerke ist 100Base-TX, für 1 Gbit/s Ethernet-Netzwerke 1000Base-T.

Für die verschiedenen Ethernettypen gibt es auch jeweils Mindestspezifikationen für die verwendeten Kabel. Die Kabel werden in Kategorien (Cat) unterschieden und auch nach ihrer Abschirmung. Für 100Base-TX werden mindestens Cat 5 Kabel benötigt. Für 1000Base-T werden ebenfalls mindestens Cat 5 Kabel benötigt, besser jedoch Cat 5e.

ARP

ARP (Adress Resolution Protocol) ist ein Protokoll, das zwischen MAC-Adressen und IP-Adressen vermittelt. Es gehört zum OSI-Layer 2.

Möchte ein Rechner Daten an einen anderen Rechner senden, schickt er diese an die IP-Adresse des anderen Rechners. Sollte diese IP-Adresse im gleichen Netzwerk liegen, kann der Rechner seine Daten direkt (anstatt über Routing) an den anderen Rechner schicken. Daher kann er diese direkt an die MAC-Adresse des anderen Rechners senden. ARP dient dazu die MAC-Adresse des anderen Rechners zu erfragen. Dazu schickt der Rechner der senden möchte einen ARP-Request mit der Ziel-IP-Adresse und einer Broadcast-MAC-Adresse ins lokale Netzwerk. Der Rechner der Inhaber der Ziel-IP-Adresse ist, antwortet mit seiner MAC-Adresse.

Die Antworten werden in einem eigenen ARP-Cache zwischengespeichert, um zukünftig weniger ARP-Anfragen senden zu müssen. Die zwischengespeicherten Werte verfallen nach einiger Zeit. Auf den meisten Betriebssystemen kann man mit dem Befehl arp (oder arp -a) den ARP-Cache abfragen.

ARP wird nur bei IPv4 verwendet. IPv6 kennt für diesen Zweck NDP (Neighbor Discovery Protocol).

DHCP

DHCP steht für Dynamic Host Configuration Protocol. Wie der Name sagt, dient es zur dynamischen Konfiguration von Netzwerkrechnern. Mit DHCP können Rechner beim Startzeitpunkt mit einer Netzwerkkonfiguration versehen werden. DHCP gehört in die Anwendungsschicht im TCP/IP-Modell, bzw. in die Schichten 5 - 7 im OSI-Modell.

Wenn ein Rechner der für die Verwendung von DHCP eingerichtet wurde, gebootet wird, schickt er einen DHCP-Request als Broadcast ins Netzwerk. Dieser Broadcast wird als UDP-Paket an den Port 67 vom Quellport 68 geschickt. Ein DHCP-Server im Netzwerk schickt eine Antwort, in dem dem anfragenden Rechner (der bislang noch keine IP-Adresse hat) vom Server eine IP-Adresse sowie eventuell weitere Netzwerkkonfigurationen (wie etwa das Standardgateway und die zuständigen DNS-Server) mitgeteilt werden.

Die Dauer für die eine solche DHCP-Konfiguration gültig ist, wird Leasedauer genannt. Die Leasedauer kann vom Client angefordert werden, der DHCP-Server hat aber genauso die Möglichkeit die Leasedauer auf einen maximalen Wert zu begrenzen oder eine Default-Leasedauer vorzugeben.

DHCP ermöglicht es also die meisten Rechner in einem Netzwerk ohne eine statische Netzwerkkonfiguration zu belassen, was die Verwaltung vereinfacht, jedoch einen DHCP-Server notwendig macht.

DNS

Wir sind es gewohnt Dienste im Netzwerk über Namen, statt über IP-Adressen zu erreichen. Namen lassen sich leichter merken und können oftmals sogar eine Kurzbeschreibung dessen beinhalten, was ich unter diesen Namen finden kann. Außerdem lassen sich mit Namen auch Hierarchie-Bäume bilden durch die man zusammengehörige Teile identifizieren kann. Die Zuordnung von Netzwerknamen zu IP-Adressen erledigt das DNS. DNS steht für Domain Name System oder auch für Domain Name Server. Die Hierarchiebäume werden dabei durch Top-Level-Domains, Domains und Subdomains gebildet.

Der gesamte DNS-Namensraum ist hierarchisch aufgebaut. Die einzelnen Hierarchieebenen werden durch Punkte getrennt, wobei die oberste Hierarchie im Namen ganz hinten steht. Zum Beispiel gehört der Name www.example.net zu der Top-Level Domain net, was für Netzwerke steht. Die Domain unter net ist example und der Hostname ist immer der vorderste Teil des Ganzen, in diesem Fall also www. Der Hostname www ist dabei auch noch gleich ein Hinweis darauf, das es sich um eine Website handelt (www für world wide web) und nicht etwa um einen Mailserver oder anderes. Dies ist jedoch so nicht festgelegt und nur eine übliche Konvention.

Domain Name Server können entweder als autoritative Server für eine spezifische Domain arbeiten, oder können stellvertretend für ihre Clients Namen in IP-Adressen auflösen (oder beides). Ein autoritativer Nameserver ist einer der die Informationen zu einer Domain autoritativ vorhält, also für diese Domain zuständig ist. Der Administrator dieser Domain (Hostmaster genannt, so wie man bei einem Webadministrator von Webmaster spricht), muß seinem autoritativen Server beibringen welche Hostnamen innerhalb seiner Domain mit welchen IP-Adressen verknüpft sind. Nameserver die für Clients Namensauflösungen betreiben, befragen dazu andere autoritative Nameserver. Dazu fangen sie in der obersten Hierarchieebene an (die IP-Adressen der Server der obersten Ebene, Rootserver genannt, müssen dazu jedem Nameserver bekannt sein) und hangeln sich dann die jeweilige Hierarchie hinab, bis zu der Adresse, die diese wissen wollten. Die auflösenden Nameserver speichern dann die Ergebnisse in einem Cache um bei zukünftigen Clientanfragen schneller antworten zu können.

Zur Ausfallsicherheit und weil DNS für das funktionieren des Internets ein besonders wichtiger Dienst ist, werden für eine Domain im Normalfall mehr als ein autoritativer Nameserver eingesetzt. Einer der autoritativen Server ist dabei der Master-Server auf dem der Hostmaster die Hosts einpflegt. Weitere Server können dann als Slave-Server arbeiten, die die Daten des Masterservers über Zonentransfers bekommen. Die Slave-Server synchronisieren sich also selbstständig mit ihrem Master-Server.

DNS ist ein Anwendungsprotokoll, welches meist UDP, seltener auch TCP-Pakete benutzt und den Port 53 nutzt. Für die meisten Clientanfragen werden UDP-Pakete genutzt, Zonentransfers zwischen 2 Servern erfolgen jedoch über TCP.

Neben der Auflösung von Namen über DNS, besitzen die meisten Betriebssysteme auch noch eine Datei mit deren Hilfe jeder eigene Auflösungen von Namen in IP-Adressen für seinen Rechner definieren kann. Diese Datei wird Hosts-Datei genannt und heißt im allgemeinen auch so. Unter Linux/Unix findet man diese Datei als /etc/hosts und unter Windows in C:\Windows\System32\drivers\etc\hosts. In dieser Datei ist jede Zeile eine Zuordnung. Vorne in der Zeile steht die IP-Adresse und dahinter ein Name.

Diese Datei kann in sehr kleinen Netzen anstatt eines Nameservers eingesetzt werden oder um individuell einzelne Adressen manuell zu überschreiben (Hosts-Einträge haben meist Vorrang vor dem DNS). Allerdings haben auch die Programmierer von Trojanern diese Datei schon für ihre Zwecke benutzt, um arglose Internetsurfer auf z. B. gefälschte Bankseiten umzuleiten.


René Maroufi, dozent (at) maruweb.de
Creative Commons By ND