Netzwerkgrundlagen c 2005 Jochen Grundmann http://www.online-platform.net Dieser Text unterliegt der GNU General Public License. Er darf als Ganzes oder in Auszügen kopiert werden, vorausgesetzt, dass sich dieser Copyright Vermerk auf jeder Kopie befindet. Version 1.1, 27. November 2005 Seite 2 Inhaltsverzeichnis 1 Einleitung 2 2.1 2.2 2.3 2.4 TCP/IP Netzwerkschnittstellenschicht Internetschicht . . . . . . . Transportschicht . . . . . . Anwendungsschicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5 5 5 6 3 3.1 3.1.1 3.2 3.3 3.4 3.5 3.6 3.6.1 3.6.2 3.6.3 IP-Adressen Aufbau von IP-Adressen . . . . . . . Netzklassen . . . . . . . . . . . . . Spezielle IP Adressen und Bereiche . IPv6 . . . . . . . . . . . . . . . . . APIPA . . . . . . . . . . . . . . . . Statische Zuweisung von IP-Adressen Nützliche Programme . . . . . . . . IPconfig . . . . . . . . . . . . . . . IFconfig . . . . . . . . . . . . . . . Ping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 7 7 8 9 10 10 13 13 14 15 4 4.1 DHCP 18 Weitere Möglichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 5 5.1 5.2 5.3 5.3.1 5.3.2 5.3.2.1 5.3.2.2 5.3.3 Domain Name System Die Datei Hosts . . . . . . . . . Windows Internet Name Service DNS . . . . . . . . . . . . . . . Richtlinien für die Benennung . . Zonen . . . . . . . . . . . . . . Forward-Lookupzone . . . . . . Reverse-Lookupzone . . . . . . . Nslookup . . . . . . . . . . . . Netzwerkgrundlagen 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 21 23 25 27 27 27 29 29 Seite 3 1 Einleitung Netzwerke, vor allem das Internet, sind heute etwas Selbstverständliches geworden. Fast jeder wird beruflich oder privat damit konfrontiert. Die meisten geben sich allerdings damit zufrieden es zu nutzen, jedenfalls so lange es funktioniert. Wer sich intensiver mit der Materie Netzwerke auseinander setzen möchte, kommt nicht darum herum, sich mit den theoretischen Grundlagen zu beschäftigen, die Netzwerke erst ans Laufen bringen und am Laufen halten. Das vorliegende Skript soll dazu beitragen Licht ins Dunkel zu bringen. Ich habe die wichtigsten Aspekte, mit denen man bei der Konfiguration und Administration von Netzwerken konfrontiert wird, zusammengefasst. Es ist vor allem als Begleitskript zu meinem Netzwerkgrundlagen Kurs, den ich bei der VHS Hagen durchführe, gedacht. Die Inhalte sind aber auch unabdingbar für jeden, der sich für die Administration von Netzwerkservern interessiert. Das Skript enthält, für einen solch kurzen Kurs, eine Menge an Informationen. Es soll und kann den Kurs nicht ersetzen, aber es ist einfach unmöglich sich als Teilnehmer alles mit zuschreiben oder als Dozent die knapp 30 Seiten an die Tafel zu bringen. Trotz des Umfangs behandelt das Skript nicht alle Netzwerkgrundlagen ausführlich, aber das liegt auch nicht in meiner Absicht. Ich möchte mich abschließend noch bei Ali Cengiz für das Korrekurlesen und bei Regina Harnischmacher für das Korrekurlesen und für die Erstellung der Grafiken und der Flashanimationen bedanken. Ansonsten hoffe ich, dass die Ausführungen dieses Dokuments für jeden, der es liest, hilfreich sind. Für Fragen, Kritik und Anregungen bin ich über die Online Plattform der VHS Hagen http: //www.online-platform.net jederzeit zu erreichen. Jochen Grundmann, im Juni 2005 Seite 4 2 TCP/IP TCP/IP ist nicht nur das Standardprotokoll für das Internet, mittlerweile ist es auch zum Standardprotokoll in lokalen Netzwerken geworden. Deshalb sind zumindest Grundkenntnisse darin für jeden, der sich mit Netzwerken beschäftigen möchte, notwendig geworden. TCP/IP besteht nicht nur aus einem bzw. zwei Protokollen (TCP und IP), sondern bezeichnet heute eine ganze Reihe von Protokollen die zusammen arbeiten, auch TCP/IP Protokollfamilie genannt. Ähnlich wie beim OSI Referenzmodell arbeiten die verschiedenen Protokolle auf unterschiedlichen Schichten. Beim Empfang von Daten werden diese Schichten von unten nach oben durchlaufen und beim Senden von oben nach unten. Abbildung 2.1: TCP/IP Protokollfamilie Netzwerkgrundlagen Seite 5 2.1 Netzwerkschnittstellenschicht Auf der Netzwerkschnittstellenschicht erfolgt die bitweise Übertragung der Daten über die eingesetzte Netzwerkhardware. Es spielt keine Rolle, ob Glasfaser oder Kupfer Technologie zum Einsatz kommt. 2.2 Internetschicht In der Internetschicht ist vor allem das Protokoll IP (Internet Protocol) tätig. Es ist für die Versendung der einzelnen Datenpakete zuständig, garantiert aber nicht, dass diese auch tatsächlich zugestellt werden oder in der richtigen Reihenfolge ankommen. Außerdem ist in dieser Schicht ARP (Address Resolution Protocol) tätig. Dieses dient dazu die MAC-Adresse1 , des Zielrechners zu ermitteln. IP erhält diese Adresse durch Rundsendung eines ARP- Abfragepakets. ICMP (Internet Control Messaging Protocol) dient zum Austausch von Status- und Fehlerinformationen zwischen den Hosts eines Netzwerks. Das Kommando ping verwendet dieses Protocol um Informationen abzufragen. IGMP (Internet Group Management Protocol) ermöglicht es Informationen gleich an eine Gruppe von Computern zu übertragen. Dieses wird als Multicasting bezeichnet. 2.3 Transportschicht In der Transportschicht arbeiten TCP (Transport Control Protocol) und UDP (User Datagram Protocol). Sie ermöglichen Kommunikationssitzungen zwischen Hosts. TCP besitzt einen leistungsfähigen Fehlerkorrektur Mechanismus. Dieser garantiert die Übertragung und die richtige Reihenfolge der Datenpakete. Dies wird erreicht, indem die Datenpakete durchnummeriert werden und durch die Generierung von Prüfsummen, die die Integrität der Daten sicherstellen. UDP hingegen besitzt keinerlei Fehlerkorrektur. Hier liegt die Verantwortung für die richtige Übertragung bei der Anwendung. Es wird z.B. bei der Übertragung von DNS Informationen eingesetzt. 1 Mit MAC-Adresse (Media Access Control) wird die eindeutige Hardware Adresse einer Netzwerkkarte bezeichnet. Diese ist weltweit einmalig, so dass es zu keiner Verwechselung mit dem Zielrechner kommt. Seite 6 2.4 Anwendungsschicht In der Anwendungsschicht erfolgt die Kommunikation zwischen den Protokollen der TCP/IP Familie und den Anwendungen. Die Anwendungen können entweder Winsock (socketbasierte Anwendungen) oder NetBT (NetBIOS basierte Anwendungen) als Schnittstelle verwenden. Als Socket bezeichnet man die Verbindung zwischen einer IP-Adresse und einem Port. Wenn eine Netzwerkverbindung über TCP/IP aufgebaut wird, wird die IP-Adresse an einen Port gekoppelt. So ist z.B. der Standardport für den Zugriff auf das Internet Port 80. Auf die Protokolle der TCP/IP Familie setzen dann weitere Protokolle wie FTP, SMTP, NNTP u.a. auf. Netzwerkgrundlagen Seite 7 3 IP-Adressen Wenn in einem Netzwerk TCP/IP als Übertragungsprotokoll verwendet wird, muss jeder Rechner mit einer eindeutigen IP-Adresse versehen werden, damit er im Netzwerk gefunden werden kann. Diese Adresse kann entweder statisch oder dynamisch über einen DHCP Server (siehe Seite 18) oder APIPA (siehe Seite 10) vergeben werden. 3.1 Aufbau von IP-Adressen Die IP Version 4 (IPv4) ist ein 32-Bit Code und besteht aus 4 Oktetts. Jedes Oktett entspricht einem Byte und kann einen Zahlenwert zwischen 0 und 255 annehmen. Die Oktetts werden jeweils durch einen Punkt voneinander getrennt. Beispiel: 192.168.0.1 Bei der neueren IP Version 6 (IPv6) liegt ein 128 Bit Code vor, der einen wesentlich größeren Adressraum anbietet (siehe Seite 9). Jede IP-Adresse wird in einen Netzwerk- und einen Hostbereich/Rechnerbereich aufgeteilt. Dazu wird eine so genannte Subnetzmaske eingerichtet, die angibt wie viele Bits zum Netz und wie viele zum Rechner gehören. Insgesamt gibt es fünf Klassen, die mit den Buchstaben von A - E durchnummeriert sind. Die Klassen D und E sind allerdings für besondere Zwecke reserviert (Klasse D für Multicast und Klasse E für Testzwecke). Deshalb soll auf diese hier nicht weiter eingegangen werden. 3.1.1 Netzklassen Bestimmte Standard-Subnetzmasken werden verschiedenen Netzklassen zugeordnet. Klasse-A-Netz Ein Klasse-A-Netz hat die Subnetzmaske 255.0.0.0. Das erste Oktett bestimmt das Netzwerk und die restlichen drei Oktetts den Rechner. Klasse-B-Netz Ein Klasse-B-Netz hat die Subnetzmaske 255.255.0.0. Hier bestimmen die ersten beiden Oktetts das Netzwerk und die beiden letzten Oktetts den Rechner. Seite 8 Klasse-C-Netz Ein Klasse-C-Netz hat die Subnetzmaske 255.255.255.0. Hier bestimmen die ersten drei Oktetts das Netzwerk und das letzte Oktett den Rechner. Abbildung 3.1: IP Klassen 3.2 Spezielle IP Adressen und Bereiche Es gibt einige spezielle IP-Adressen, mit denen Rechner nicht ausgestattet werden dürfen, da sie eine besondere Funktion haben. Broadcast-Adresse Mit der Broadcast-Adresse kann ein Rechner alle anderen Rechner in seinem Netzwerk gleichzeitig erreichen. Für einen Rechner mit der Adresse 192.168.0.17 ist die Broadcast-Adresse 192.168.0.255. Ein Rechner kann also niemals eine IP Adresse haben, die auf 255 endet. Die Broadcast Adresse eines Netzwerks wird zum Beispiel beim Bezug einer dynamischen IP-Adresse über DHCP verwendet (siehe auch Seite 18). Loopback-Adresse Mit der Loopback-Adresse (127.0.0.1) adressiert sich jeder Rechner selbst. Diese Adresse dient zum Testen von Netzwerkverbindungen. Netzwerkgrundlagen Seite 9 Öffentliche IP-Adressbereiche In jeder Netzwerkklasse gibt es einen Adressbereich, der nicht für das Internet zugelassen ist und für private Netzwerke genutzt werden kann. Klasse A B C Anzahl Subnetze nutzbare Adressbereiche 1 10.0.0.0 - 10.255.255.255 16 172.16.0.0 - 172.31.255.255 256 192.168.0.0 - 192.168.255.255 Welcher Adressbereich in einem Netzwerk genutzt werden soll ist u.a. auch von der Anzahl der Rechner in einem Netzwerk abhängig. Bei wenigen Rechnern ist ein Klasse C Netzwerk ausreichend. Bei mehr als 256 Rechnern ist aber möglicherweise ein Klasse B Netzwerk einfacher, da man ohne Routing auskommt. 3.3 IPv6 Bereits Anfang der 90er Jahre des letzten Jahrhunderts war absehbar, dass der Adressraum den IPv4 anbietet nicht mehr ausreichen wird1 . Außerdem ist das IPv4 Protokoll annähernd 20 Jahre alt und entspricht nicht mehr den heutigen Ansprüchen, z.B. im Bereich Sicherheit. Deshalb wurde es notwendig eine neue Version zu entwickeln, eben IPv6. IPv6 ist ein 128-bit Code, der hexadezimal notiert wird. Eine IPv6 Adresse besteht aus 8 Oktetts, die jeweils durch einen Doppelpunkt getrennt werden, z. B. 1080:0000:0000:0000:0008:0800:0004:417A Die Länge und die hexadezimale Schreibweise machen eine IPv6 Adresse ziemlich komplex. Deshalb gibt es einige Möglichkeiten die Schreibweise zu vereinfachen. 1. Aufeinander folgende Oktetts, die nur aus Nullen bestehen, dürfen ausgelassen werden. Dieses wird durch zwei aufeinander folgende Doppelpunkte gekennzeichnet. Dieser Vorgang darf aber nur einmal durchgeführt werden. Die obige Adresse würde dann wie folgt aussehen: 1080::0008:0800:0004:417A 2. Führende Nullen eines Oktetts dürfen ebenfalls ausgelassen werden, so dass von der ursprünglichen Adresse noch 1080::8:800:4:417A´ übrig bleibt. 1 Als Zahl ausgeschrieben bietet der IPv6 Adressraum 340.282.366.920.938.463.463.374.607.431.768.211.456 verschiedene Adressen, währen IPv4 nur 4.294.967.296 verschiedene Adressen anbietet. Seite 10 Weitere Neuerungen liegen darin, dass an Stelle von Netzklassen eine hierarchische Struktur verwendet wird und Sicherheitsmechanismen wie Datenverschlüsselung implementiert sind. Animationen Vereinfachung von IPv6 Adressen: http://www.online-platform.net/dns/reduzierung_dt.php?id=5 Hierarchische Struktur von IPv6 Adressen: http://www.online-platform.net/dns/structur_dt.php?id=6 3.4 APIPA Unter Windows 2000/XP/2003 besteht die Möglichkeit auch ohne DHCP Server mit dynamischen IP-Adressen zu arbeiten. Dieser Mechanismus trägt den Namen APIPA (Automatic Private IP Addressing). Wenn weder eine statische noch eine dynamische IP-Adresse über einen DHCP-Server bezogen werden kann weist sich ein Rechner selbstständig eine IP Adresse zu. Für APIPA ist der Adressbereich 169.254.0.1 - 169.254.254.254 mit der Subnetzmaske 255.255.0.0 reserviert. Dieser Bereich ist ebenfalls ein öffentlicher Bereich und wird im Internet nicht verwendet. 3.5 Statische Zuweisung von IP-Adressen Standardmäßig ist ein Rechner sowohl unter Windows als auch unter Linux auf den Bezug einer dynamischen IP-Adresse eingestellt2 . Ist kein DHCP Server auffindbar, so geben sich Windows 2000/XP Rechner selbstständig über APIPA eine IP-Adresse. Das ist sicherlich eine einfache Möglichkeit, wenn man ein einfaches Peer to Peer Netzwerk mit zwei oder drei Rechnern verwaltet. In einem kleinen Netzwerk kann aber auch mit statischen IP-Adressen gearbeitet werden. Das erhöht zwar den Konfigurationsaufwand, ist aber noch überschaubar. In einem größeren Netzwerk hingegen ist es einfacher mit dynamischen IP-Adressen zu arbeiten. Hier sollte jedoch darauf geachtet werden, dass die Server immer über eine feste IP-Adresse verfügen, damit sichergestellt ist, dass sie immer erreichbar sind. Außerdem kann ein DHCP Server sich selbst keine dynamische IP-Adresse geben. Die statische Zuweisung einer IP-Adresse erfolgt unter Windows in den Netzwerk- und DFÜVerbindungen3 . Dort werden alle Verbindungen aufgelistet. Wählen Sie die gewünschte LANVerbindung aus und klicken im Kontextmenü auf Eigenschaften. Machen Sie dann einen Dop2 Natürlich kann bereits während der Installation bei beiden Betriebssystemen eine statische IP-Adresse vergeben werden. 3 Je nach Windowsversion und -einstellung gibt es verschiedene Wege dorthin. Auf jeden Fall sind die Einstellungen über die Systemsteuerung erreichbar. Mein bevorzugter Weg geht über das Kontextmenü der Netzwerkumgebung. Netzwerkgrundlagen Seite 11 pelklick auf Internetprotokoll oder wählen Sie Internetprotokoll aus und klicken anschließend auf die Schaltfläche Eigenschaften. Abbildung 3.2: Einrichtung einer statischen IP-Adresse unter Windows Klickt man nach der Eingabe der IP-Adresse in das Feld Subnetzmaske, wird dieses von Windows automatisch ausgefüllt. Für die einfache Vernetzung von mehreren Rechnern sind diese Angaben bereits ausreichend. Ob ein Gateway und oder ein DNS Server (siehe Seite 21) eingetragen werden muss, ist von der Netzwerkstruktur abhängig4 . Zur Überprüfung sollte anschließend mit dem ping Kommando getestet werden, ob die verbundenen Rechner über das Netzwerk erreichbar sind (siehe Seite 15). Unter SuSE Linux gestaltet sich die Zuweisung einer statischen IP-Adresse ähnlich einfach. Starten Sie dazu YaST2 und wechseln Sie in die Kategorie Netzwerkgeräte. Wählen Sie dort den Punkt Netzwerkkarte aus. Im folgenden Dialog werden unter Bereits konfigurierte Geräte 4 Wird als Serverbetriebssystem Windows 2000/2003 eingesetzt und der Rechner hat eine statische IP-Adresse, so muss auf jeden Fall ein DNS Server eingetragen werden, da in Windows 2000/2003 Netzwerken die Namensauflösung über DNS durchgeführt wird. Seite 12 alle Netzwerkkarten aufgelistet. Über die Schaltfläche Ändern gelangen Sie in den nächsten Dialog. Dort wählen Sie die gewünschte Netzwerkkarte aus und klicken auf die Schaltfläche Bearbeiten. Im Gegensatz zu Windows wird die Subnetzmaske allerdings nicht automatisch eingetragen. Abbildung 3.3: Einrichtung einer statischen IP-Adresse unter Linux Unter Linux wird zusätzlich die MAC-Adresse der Netzwerkkarte angegeben. Animationen Einrichtung einer statischen IP-Adresse unter Windows 2000/XP: http://www.online-platform.net/dns/win2k.php?id=13 Einrichtung einer statischen IP-Adresse unter SuSE Linux: http://www.online-platform.net/dns/linux.php?id=12 Netzwerkgrundlagen Seite 13 3.6 Nützliche Programme Sowohl unter Windows als auch unter Linux gibt es einige Programme, mit denen die Netzwerkkonfiguration und Funktionalität überprüft werden kann. Bei beiden Betriebssystemen handelt es sich um Programme, die von einer Konsole bzw. Shell gestartet werden. 3.6.1 IPconfig Zum Überprüfen der Netzwerkkonfiguration wird unter Windows eine Eingabeaufforderung5 gestartet. Über die Eingabe von ipconfig wird die aktuelle IP-Adresse, die dazu gehörige Subnetzmaske und ein eventuell vorhandenes Gateway eines Rechners ausgegeben. Abbildung 3.4: IPconfig Das Programm ipconfig kann mit verschiedenen Parametern aufgerufen werden. Diese werden durch einen Schrägstrich getrennt an den Programmnamen angehängt. Eine Liste aller möglichen Parameter und eine kurze Erklärung kann über die Eingabe von ipconfig/? angezeigt werden. Für die IP-Konfiguration ist der Parameter all noch interessant. Durch die Eingabe von ipconfig /all, werden alle Informationen zur Netzwerkkarte und der IP-Konfiguration ausgegeben, die verfügbar sind. Zu den Ergebnissen siehe auch die Kapitel DNS auf Seite 21, DHCP auf Seite 18 und WINS auf Seite 23. 5 Ein schneller Weg, um eine DOS-Konsole zu bekommen geht über den Ausführen Dialog im Start Menü oder alternativ durch Tastenkombination Windowstaste+r. Dort muss dann noch cmd eingegeben werden und die Konsole wird geöffnet. Unter Windows 95/98/ME muss statt cmd command eingegeben werden. Seite 14 Abbildung 3.5: IPconfig/all Wenn mehrere Netzwerkkarten im Rechner vorhanden sind, werden diese Informationen für alle ausgegeben. Dabei kann es durchaus sein, dass eine Netzwerkkarte eine statische IP-Adresse hat und eine zweite eine dynamische IP-Adresse. Das ist z.B. der Fall, wenn im Netzwerk der Internetzugang über die Internetverbindungsfreigabe von Windows XP realisiert wird. In diesem Fall bekommt die Netzwerkkarte, über die der Computer mit dem lokalen Netzwerk verbunden ist , immer die feste IP-Adresse 192.168.0.1. 3.6.2 IFconfig Unter Linux gibt es ein ähnliches Programm mit dem Namen ifconfig. Man benötigt rootRechte zur Ausführung. Netzwerkgrundlagen Seite 15 Abbildung 3.6: IFconfig Die Informationen sind nicht ganz so umfangreich wie unter Windows, aber dafür wird hier auch die IPv6 Adresse und die Loopback Adresse der Netzwerkkarte ausgegeben. Ipconfig und ifconfig bieten sich immer zur Überprüfung der Netzwerkkonfiguration an, wenn im Netzwerk mit dynamischen IP-Adressen über einen DHCP Server gearbeitet wird, da es die einzige Möglichkeit ist am Rechner selbst nach zuschauen, welche IP-Adresse zugewiesen wurde. Wenn z.B. wegen eines falschen Treibers6 oder einer defekten Netzwerkkarte keine Netzwerkverbindung aufgebaut werden kann, kann dies hierüber erkannt werden. 3.6.3 Ping Sowohl unter Windows als auch unter Linux steht das Programm ping zur Verfügung7 . Es wird zur Überprüfung der Netzwerkfunktionalität eingesetzt. Hierzu werden Datenpakete über das Netzwerk an einen der anderen Rechner geschickt. Der Aufruf erfolgt über die Eingabe von ping und der IP-Adresse des Zielrechners, z.B. ping 172.31.0.240. 6 Manchmal werden trotz automatischer Hardwareerkennung Netzwerkkarten falsch erkannt und dem entsprechend ein falscher Treiber installiert. 7 Da ping bei beiden Betriebssystemen identisch arbeitet, stammen die Screenshots sowohl von Linux als auch von Windows. Die Beispieleingaben sind jederzeit austauschbar. Seite 16 Abbildung 3.7: Ping auf eine IP-Adresse Wenn im Netzwerk z.B. über einen DNS Server die Rechnernamen in IP-Adressen aufgelöst werden, kann ping auch mit dem Rechnernamen statt der IP-Adresse aufgerufen werden, z.B. ping win2k-file. Abbildung 3.8: Ping auf den Computernamen Wenn Rechner im Netzwerk nicht erreicht werden können, sollte zuerst ein ping auf die Loopbackadresse ausgeführt werden. Netzwerkgrundlagen Seite 17 Abbildung 3.9: ping auf die Loopbackadresse Bei Computern ohne Netzwerkkarte kann ping auch über die Eingabe von ping localhost getestet werden. Der Name localhost ist immer mit der Loopbackadresse verknüpft (siehe Seite 21). Abbildung 3.10: ping auf localhost Für das Kommando ping stehen noch weitere Parameter zur Verfügung. Diese werden unter Windows durch die Eingabe von ping/? und unter Linux durch die Eingabe von ping -h angezeigt. Seite 18 4 DHCP DHCP bedeutet Dynamic Host Configuration Protocol und bezeichnet das Protokoll, über das die dynamische Zuweisung von IP-Adressen (und weiterer optionaler Netzwerkinformationen) an einen Client durch einen so genannten DHCP Server durchgeführt wird. Bei jedem Windows und Linux Client gehört die dafür benötigte DHCP-Clientsoftware zur Standardinstallation. Sie wird aktiv, wenn der IP-Adressenbezug auf automatisch gestellt wird. Diese Zuweisung von IP-Adressinformationen wird als DHCP-Lease bezeichnet. Der Bezug einer dynamischen IP-Adresse über DHCP läuft auf folgende Weise ab. 1. DHCPDISCOVER Beim ersten Start sendet der Client eine Broadcastmeldung in der Standort eines DHCPServers und IP-Adressinformationen angefordert werden. Da er zu diesem Zeitpunkt noch keine IP-Adresse besitzt, verwendet er als Quelladresse 0.0.0.0. Die Meldung enthält die Hardwareadresse (MAC-Adresse) des Clients und dessen Computernamen, damit der Server feststellen kann, welcher Client die Anforderung gesendet hat. 2. DHCPOFFER Alle Server, die die IP-Leaseanforderung empfangen und über eine gültige Clientkonfiguration verfügen, senden daraufhin eine DHCPOFFER-Broadcastmeldung mit folgenden Informationen: • Hardwareadresse des Clients • Angebot einer IP-Adresse • Subnetzmaske • Leasedauer • IP-Adresse des Servers 3. DHCPREQUEST Nachdem der Client die DHCPOFFER Meldung erhalten und eine IP-Adresse ausgewählt hat, sendet er eine DHCPREQUEST Broadcastmeldung an alle DHCP-Server, in der er die Annahme eines Angebots mitteilt. Diese beinhaltet u.a. die IP-Adresse des Servers, dessen Angebot angenommen wurde. Daraufhin ziehen alle anderen DHCP-Server ihr Angebot zurück. Netzwerkgrundlagen Seite 19 4. DHCPACK/DHCPNACK Der DHCP-Server sendet eine Bestätigung an den Client. Diese enthält eine gültige Lease für eine IP-Adresse, sowie ggf. weitere Konfigurationsinformationen, z.B. Gateway, DNSServer, Zeitserver, Router. Die DHCPNACK-Meldung wird gesendet wenn die DHCP-Requestmeldung nicht erfolgreich ist. Sie tritt ein wenn: • Der Client versucht seine ehemalige IP-Adresse zu leasen, die aber nicht mehr verfügbar ist. • Die IP-Adresse ist ungültig, weil der Computer in ein anderes Subnetz verschoben wurde Abbildung 4.1: DHCP Lease Vorgang Die über DHCP empfangenen Informationen gelten nur für einen bestimmten Zeitraum, die so genannte Lease-Dauer. Nach der Hälfte der Lease-Dauer verlängert der Client selbstständig seine Lease beim DHCP Server. Beim nächsten Start kann der Client ohne erneute Abfrage seine ehemalige IP-Adresse wieder beziehen, vorausgesetzt die Lease-Dauer ist noch nicht abgelaufen und die IP-Adresse damit wieder freigegeben. 4.1 Weitere Möglichkeiten Neben der IP-Adresse, DNS Server und WINS Server können aber noch weitere netzwerkrelevante Informationen über DHCP bezogen werden, die bei einer statischen Einrichtung einen erheblichen Administrationsaufwand verursachen würden. Seite 20 Gateway Ein Gateway wird als Verbindung zu anderen Netzwerken eingesetzt. Üblicherweise kann ein Computer nur mit Computern kommunizieren, die sich im gleichen Netzwerk wie er selbst befinden. Wenn ein Netzwerk aus zwei Subnetzen besteht, kann ein Server als Router eingerichtet werden, der die beiden Subnetze miteinander verbindet. Dieser Server ist dann über zwei Netzwerkkarten an beide Subnetze angeschlossen. Der als Gateway eingerichtete Server kann aber auch die Verbindung ins Internet herstellen. Zeitserver Es ist auch möglich einen der Server als Zeitserver festzulegen, der den Clients über DHCP Datum und Uhrzeit übermittelt. Damit ist sichergestellt, dass alle Rechner im Netzwerk gleich eingestellt sind. Die manuelle Änderung von Datum und Uhrzeit ist unter Windows leider nur als Administrator möglich, was wiederum einen erheblichen Mehraufwand bedeutet. Es gibt natürlich darüber hinaus noch viele weitere Optionen, die aber den Umfang dieses Skripts sprengen würden. Netzwerkgrundlagen Seite 21 5 Domain Name System Kein Anwender verwendet in einem Netzwerk, vor allem im Internet, IP-Adressen, um auf andere Rechner zugreifen zu können. Schließlich kann man sich Namen auch besser merken als Zahlen. Deshalb muss dafür gesorgt werden, dass die Namen in einem Netzwerk in die dazugehörigen IP-Adressen aufgelöst werden. Dazu stehen grundsätzlich verschiedene Möglichkeiten zur Verfügung, die auf den folgenden Seiten näher betrachtet werden sollen. Die geeignetste bzw. einfachste Methode zur Namensauflösung ist dabei vom Verwendungszweck abhängig. 5.1 Die Datei Hosts Eine einfache Möglichkeit um die Namensauflösung durchzuführen, ist die Verwendung der Datei hosts 1 . Der Aufbau und die Funktion dieser Datei ist bei allen Betriebssystemen identisch. Unter Linux findet man sie im Verzeichnis /etc, unter Windows 2000/XP/2003 unter %sytemroot%\system32\drivers\etc 2 und unter Windows 98 direkt im Verzeichnis C:\windows. Hierbei handelt es sich um eine Tabelle in reinem Textformat, in der die IP-Adressen und die dazugehörigen Namen aufgelistet sind. Die erste Spalte enthält die IP-Adressen und die zweite Spalte die Namen der Computer, die diesen IP-Adressen zugeordnet sind. Kommentarzeilen werden mit dem Zeichen # eingeleitet. Zur Bearbeitung der Datei kann ein beliebiger Texteditor verwendet werden, z.B. Notepad unter Windows oder Kate unter Linux. Änderungen an der Datei werden sofort wirksam, es ist kein Neustart erforderlich. Es ist zu beachten, dass unter Linux Änderungen an der Datei hosts nur als der Benutzer root möglich sind. Der folgende Screenshot wurde unter SuSE Linux erstellt. Hier sind bereits die vordefinierten IPv6 Adressen zu sehen. Unter Windows ist die Datei natürlich entsprechend kürzer. 1 Im gleichen Verzeichnis wie die Datei hosts befindet sich möglicherweise auch eine Datei mit dem Namen hosts.sam. Diese ist inhaltlich identisch mit der Datei hosts. Allerdings handelt es sich dabei nur um eine Beispieldatei. Ich habe es schon häufig erlebt, dass statt der Datei hosts die hosts.sam verwendet wird. Dann funktioniert die Namensauflösung nicht. 2 Mit der Systemvariablen %systemroot% wird das Laufwerk und das Verzeichnis angesprochen, in dem das Betriebssystem installiert ist. Unter Windows 2000 ist das standardmäßig C:\Winnt und unter XP/2003 C:\Windows. Seite 22 Abbildung 5.1: Die Datei hosts Der Eintrag mit dem Verweis der Loopbackadresse 127.0.0.1 auf den Namen localhost ist immer schon in der Datei vorhanden. Deshalb ist es auch möglich das Kommando ping mit einem Namen durchzuführen. Weitere Einträge werden darunter vorgenommen. Dabei kann eine IP-Adresse auch mit mehreren Namen verknüpft werden. Noch einfacher gestaltet sich die Bearbeitung der Datei hosts unter Mandriva Linux 2006. Im Mandriva Linux Kontrollzentrum (zu erreichen über K-Menü -> System -> Einstellungen -> Den Computer konfigurieren) steht unter Netzwerk & Internet mit dem Punkt Hosts Definitionen verwalten eine grafische Oberfläche zur Verfügung, so dass nicht mehr direkt in der Textdatei gearbeitet werden muss. Dies ist gerade für Anfänger eine Arbeitserleichterung. Netzwerkgrundlagen Seite 23 Abbildung 5.2: Hosts Definitionen verwalten Über die Schaltflächen Hinzufügen, Bearbeiten und Entfernen am rechten Rand können neue Einträge vorgenommen werden und bereits vorhandene bearbeitet oder wieder gelöscht werden. Da die Datei hosts nur lokal ausgewertet werden kann, muss sie in einem Netzwerk auf jedem Rechner einzeln geführt werden3 . Bei nur zwei oder drei Rechnern ist das sicherlich noch machbar, aber bei mehr Computern wird der Verwaltungsaufwand, vor allem bei Änderungen, einfach zu groß. 5.2 Windows Internet Name Service WINS ist ein von Microsoft entwickelter Ansatz zur Übersetzung von Computernamen in IPAdressen. Bei den neueren Versionen von Windows (ab Windows 2000) wird WINS nicht mehr benötigt, da die Namensauflösung über DNS erfolgt. 3 Ich verwende die Datei hosts um meine Webprojekte mit PHP und MySQL über einen Namen ansprechen zu können. Diese löst die virtuellen Server des Apache Webservers in die dazugehörige IP-Adresse auf. Weitere Informationen dazu sind unter http://www.online-platform.net/downloads/PHP.pdf zu finden. Seite 24 Ältere Clients hingegen verwenden noch NetBIOS-Namen zur Kommunikation. In einer Windows 2000/2003 Netzwerk Umgebung mit z.B. Windows NT Clients müssen also NetBIOSNamen in IP-Adressen aufgelöst werden. Diese Aufgabe übernimmt der WINS Server. Er unterhält eine dynamische Datenbank, die die Zuordnung von Computernamen zu IP-Adressen verwaltet. Wenn mit statischen IP Adressen gearbeitet wird, muss der WINS Server bei allen Clients eingetragen werden. Dies geschieht in den Eigenschaften des Internetprotokolls (siehe Seite 11). Über die Schaltfläche Erweitert können zusätzliche Einstellungen vorgenommen werden. Dort werden im Register WINS über die Schaltfläche Hinzufügen die IP-Adressen des oder der WINS Server eingetragen. Abbildung 5.3: WINS Beim Start eines WINS Clients meldet sich dieser beim WINS Server an und registriert sich dort mit seinem Namen und seiner IP-Adresse. Wenn der Name noch nicht vergeben ist, schickt der der Server eine Bestätigung an den Client zurück, dass der Name für eine bestimmte Zeit für ihn reserviert ist. Diese Zeitspanne wird TTL (Time to Live) genannt. Die Namensanforderungen werden direkt an den Server gestellt, nicht über Broadcast. Wenn der Computer ordnungsgemäß heruntergefahren wird, wird der Name wieder freigegeben. Netzwerkgrundlagen Seite 25 Da NetBIOS Namen nur temporär registriert werden, muss ein WINS Client seinen Namen erneuern, bevor die TTL abgelaufen ist. Würde dies nicht geschehen, würde der Name anderen Clients zur Verfügung stehen. Nach einem Achtel der TTL erfolgt der 1. Erneuerungsversuch, sonst alle zwei Minuten nach der Hälfte der TTL, danach wird zum sekundären Server gewechselt (wenn vorhanden). Ist ein Name bereits registriert, überprüft der Server ob der derzeitige Besitzer noch im Netzwerk zur Verfügung steht. Dazu wird eine Namensanforderung an diesen gesendet. Dies geschieht dreimal in Abständen von 500 ms. Erfolgt keine Antwort, geht der WINS Server davon aus, dass der Besitzer nicht mehr im Netzwerk ist und vergibt den Namen neu. Meldet sich der Namensinhaber, wird eine negative Antwort an den anderen Client gesendet. Nach der Registrierung bei einem WINS-Server kann der Client mit anderen Clients kommunizieren, in dem er IP-Adressen anderer NetBIOS basierter Computer vom WINS Server abfragt. Damit nicht für jede Kommunikation der WINS Server abgefragt werden muss, verwaltet der Client einen Namenscache. Dieser wird zuerst auf die Zuordnung des NetBIOS Namens zur IP-Adresse des Zielcomputers überprüft. Gelingt das nicht, sendet er eine Anforderung zur Namensabfrage an den WINS-Server. Ist dieser nicht verfügbar, wird die Anforderung zweimal wiederholt, dann erfolgt eine Anforderung an den sekundären WINS-Server (wenn vorhanden). Bei Auflösung des Namens durch den WINS-Server sendet dieser die IP-Adresse des angeforderten Namens an den Client zurück. Wenn der Name nicht aufgelöst werden kann, wird dem Client mitgeteilt, dass der angeforderte Name nicht existiert, daraufhin initiiert der Client ein Netzwerkbroadcast. 5.3 DNS DNS wird im Internet zur Übersetzung von Namen (URLs) in die dazugehörigen IP-Adressen eingesetzt. Durch die Verbreitung des Internets in den letzten Jahren hat dieses Verfahren auch Einzug in lokale Netzwerke gefunden. Diese Aufgabe übernehmen so genannte DNS Server, auch Nameserver oder Namensserver genannt. DNS ist eine verteilte Datenbank mit einer hierarchischen Struktur. Jeder DNS Server verwaltet einen Teil der Datenbank. Die hierarchische Struktur sorgt für die Kommunikation der DNS Server untereinander. Die oberste Instanz sind sogenannte Root Server, auch Stammnamenserver genannt. Diese werden durch einen "." bezeichnet. Darunter befinden sich die Top-Level-Domains (Domänen 1. Ebene), kurz TLD. Die Top-Level-Domains werden in generische und länderspezifische (Country Code) Domains unterteilt. Dann folgen die Second-Level-Domains (Domänen 2. Ebene), kurz SLD. Die Namen für die Second-Level-Domains können frei gewählt werden. Danach können noch Subdomains zur weiteren Untergliederung folgen. Am Ende der Kette steht immer ein bestimmter Computer. Seite 26 Abbildung 5.4: DNS Hierarchie Jeder Knoten (Domäne) repräsentiert eine Partition der DNS-Datenbank. Beim Hinzufügen von Domänen wird der Name der übergeordneten Domäne angehängt. Dadurch kann die Position der Domäne in der Hierarchie ermittelt werden. Rootdomain . Top-Level-Domain net, edu, org, de, fr Second-Level-Domains online-platform.net, kann auch Computer oder Subdomänen (tests.online-platform.net) enthalten Hostnamen ein bestimmter Computer im Internet oder Netzwerk, ein Hostname ist der äußerste linke Bestandteil eines FQDN (www.online-platform.net) Der vollständige DNS-Name eines Hosts wird als FQDN (Fully Qualified Domain Name) bezeichnet. Dieser wird von DNS zur Auflösung eines Namens in eine IP-Adresse verwendet, z.B. www.online-platform.net. Der Name wird von rechts nach links aufgelöst (siehe hierzu auch Abbildung 5.5 auf Seite 28). Netzwerkgrundlagen Seite 27 5.3.1 Richtlinien für die Benennung Bei der Vergabe von Domain-Namen gibt es einige Punkte, die beachtet werden müssen bzw. beachtet werden sollten. • nicht mehr als fünf Ebenen • Verwenden von eindeutigen Namen • Verwenden einfacher Namen • Vermeiden langer Namen (max. Länge für einen FQDN sind 255 Zeichen, Domänenname max. 63 Zeichen) • Verwendung der standardmäßigen DNS- und Unicode-Zeichen (DNS: A-Z, a-z und der Bindestrich (-) 5.3.2 Zonen Mit Hilfe von Zonen wird die DNS Struktur in verwaltbare Abschnitte aufgeteilt. Eine Zone entspricht dabei einer Domain und ihren Subdomains. Ein Namenserver speichert die Zonendatenbankdatei. Jede Zone benötigt mindestens einen Namenserver, eine Zone kann jedoch mit mehreren Namenservern verknüpft sein. Die Aufteilung ist von der Menge der Informationen abhängig, die gespeichert werden. Jede Zone ist mit einer bestimmten Domäne verankert = Stammdomäne. Die Zonendatei enthält nur die Namenszuordnungen für die IP-Adressen einer Zone. Es werden zwei Arten von Zonen unterschieden. 5.3.2.1 Forward-Lookupzone In einer Forward-Lookupzone wird ein Name in die dazugehörige IP-Adresse aufgelöst. Dazu gibt ein Client die Abfrage an einen lokalen Namenserver weiter. Dieser kann den Namen entweder auflösen oder gibt ihn an einen anderen Namenserver weiter. Die folgende Grafik zeigt den Vorgang der Auflösung bei der Adresse www.fun2learnmore.de. Seite 28 Abbildung 5.5: DNS Namensauflösung 1. Der Client stellt eine Forward-Lookupfrage an den lokalen Namenserver des Providers zur Auflösung des Namens www.fun2learnmore.de in eine IP-Adresse. 2. Der Namenserver prüft die Zonendatenbankdatei. Da er keine Autorität für die Domäne www.fun2learnmore.de besitzt, leitet er die Abfrage an einen Rootnamenserver weiter. Der Rootnamenserver gibt einen Verweis auf den de-Namenserver zurück 3. Der lokale Namenserver wendet sich an den de-Namenserver, der mit einem Verweis auf den fun2learnmore-Namenserver antwortet. 4. Der lokale Namenserver wendet sich daraufhin an den fun2learnmore-Namenserver. Da dieser über Autorität über diesen Teil des Domänennamespace verfügt, wird die IPAdresse für www.fun2learnmore.de zurückgegeben. 5. Der lokale Namenserver sendet die IP-Adresse an den Client. Der Namenserver speichert die Abfragen für einen bestimmten Zeitraum (TTL = Time to Live) in einem Cache. Die Standardeinstellung unter Windows für die TTL sind 60 Minuten, diese kann aber geändert werden. Nach Ablauf der TTL wird das Abfrageergebnis aus dem Cache gelöscht. Netzwerkgrundlagen Seite 29 Animationen DNS Namensauflösung: http://www.online-platform.net/dns/dns_animiert_extra_dt.php?id=4 5.3.2.2 Reverse-Lookupzone Zusätzlich zu Forward-Lookupzonen besteht die Möglichkeit Reverse-Lookupzonen einzurichten. Bei einer Reverse-Lookupfrage werden IP-Adressen in die dazugehörigen Namen aufgelöst. Dazu wird eine spezielle Domain mit dem Namen in-addr.arpa erstellt. Vor den Namen wird die Netzwerkadresse in umgekehrter Reihenfolge gesetzt. Für das Netzwerk 192.168.0.x würde dann der Name für die Reverse-Lookupzone 0.168.192.in-addr.arpa lauten. 5.3.3 Nslookup Unter Windows kann das Kommandozeilenprogramm nslookup zur Fehlersuche und Funktionsüberprüfung bei DNS Servern sehr hilfreich und nützlich sein. Nslookup kann in einem interaktiven oder einem nicht interaktiven Modus verwendet werden. Im nicht interaktiven Modus wird nslookup mit einer IP- Adresse oder einem Hostnamen aufgerufen, z.B. nslookup cult-doz nslookup 172.31.0.85 Der interaktive Modus wird durch die Eingabe von nslookup ohne weitere Optionen gestartet. Danach werden der aktive DNS Server und dessen IP-Adresse ausgegeben. Am dann erscheinenden Prompt können die Optionen dann eingegeben werden, ohne nslookup jedes Mal erneut starten zu müssen. Durch die Eingabe des Befehls wird nslookup wieder beendet. Durch die Eingabe einer IP-Adresse wird der dazugehörige Hostname angezeigt. Außerdem wird der FQDN des DNS Servers und dessen IP-Adresse angezeigt. Danach folgt der FQDN des abefragten Hosts und noch einmal dessen IP-Adresse. Abbildung 5.6: nslookup mit IP-Adresse Seite 30 Wenn eine Reverse Lookupzone konfiguriert wurde, ist auch die Abfrage eines Hostnames möglich. Abbildung 5.7: nslookup mit Hostname Die ausgegebenen Informationen entsprechen den Ergebnissen bei der Abfrage einer IP-Adresse. Netzwerkgrundlagen