Inhaltsverzeichnis
Zusammenfassung
Linux, ein wahres Kind des Internets, bietet Ihnen alle Voraussetzungen und notwendigen Netzwerktools zur Einbindung in diverse Netzwerkstrukturen. Die verschiedenen Dienste und besondere Eigenschaften des normalerweise von Linux verwendeten Protokolls TCP/IP werden hier besprochen. Anschließend zeigen wir Ihnen die Einrichtung eines Netzwerkzugangs mit einer Netzwerkkarte, einem Modem oder einem anderen Gerät mit Hilfe von YaST. Die Konfiguration kann auch manuell geschehen. Dieses Kapitel beschränkt sich auf die grundlegenden Mechanismen und die entsprechenden Netzwerkkonfigurationsdateien.
Linux und andere Unix-Betriebssysteme verwenden das TCP/IP-Protokoll. Genau genommen handelt es sich um eine Protokollfamilie, die ganz unterschiedliche Dienstleistungen bietet. Die in Tabelle 22.1, „Verschiedene Protokolle der TCP/IP Protokollfamilie“ aufgeführten Protokolle dienen dem Datenaustausch zwischen zwei Rechnern über TCP/IP. Über TCP/IP weltweit verbundene Netzwerke werden in ihrer Gesamtheit als „das Internet“ bezeichnet.
Bei RFC (engl. Request for comments) handelt es sich um Dokumente, die die verschiedenen Internetprotokolle und die Vorgehensweise bei der Implementierung des Betriebssystems und von Applikationen beschreiben. Auf diese RFC-Dokumente können Sie direkt über das Web zugreifen, die URL lautet http://www.ietf.org/. Die RFC-Dokumente beschreiben unter anderem den Aufbau der Internet-Protokolle. Falls Sie Ihr Know-how über ein bestimmtes Protokoll vertiefen wollen, ist das passende RFC-Dokument die richtige Anlaufstelle: http://www.ietf.org/rfc.html
Tabelle 22.1. Verschiedene Protokolle der TCP/IP Protokollfamilie
Protokoll | Beschreibung |
|---|---|
(engl. Transmission control protocol) Ein verbindungsorientiertes, gesichertes Protokoll. Die zu übertragenden Daten werden aus der Sicht der Applikation als Datenstrom verschickt und vom Betriebssystem selbst in das passende Übertragungsformat gebracht. Die Daten kommen bei der Zielapplikation auf dem Zielrechner als exakt der Datenstrom an, als der sie abgeschickt wurden. TCP stellt sicher, dass unterwegs keine Daten verloren gehen und nichts durcheinander kommt. TCP wird dort verwendet, wo die Reihenfolge der Daten wichtig ist und der Begriff Verbindung Sinn macht. | |
(engl. User Datagram protocol) Ein verbindungsloses, ungesichertes Protokoll. Die zu übertragenden Daten werden paketorientiert verschickt, die Datenpakete werden dabei schon von der Applikation erzeugt. Die Reihenfolge der Daten beim Empfänger ist nicht garantiert, ebenso kann es passieren, dass einzelne Datenpakete verloren gehen. UDP eignet sich für datensatzorientierte Applikationen und bietet kleinere Latenzzeiten als TCP. | |
(engl. Internet Control Message Protocol) Im Wesentlichen ist das kein für den Benutzer verwendbares Protokoll, sondern ein spezielles Steuerprotokoll, das Fehlerzustände übermittelt und das Verhalten der an der TCP/IP-Datenübertragung beteiligten Rechner steuern kann. Zusätzlich wird durch ICMP noch ein spezieller Echo-Modus bereitgestellt, den man mit dem Programm ping prüfen kann. | |
(engl. Internet group management protocol) Dieses Protokoll steuert das Verhalten von Rechnern bei der Verwendung von IP-Multicast. |
Wie in Abbildung 22.1, „Vereinfachtes Schichtenmodell für TCP/IP“ gezeigt wird, findet der Datenaustausch in verschiedenen Schichten statt. Die eigentliche Kommunikationsschicht ist die ungesicherte Datenübertragung über IP (Internet Protocol). Basierend auf IP garantiert TCP (transmission control protocol) ein gewisses Maß an Sicherheit für die Datenübertragung. Die IP-Schicht ist ein Aufsatz auf das darunter liegende hardwareabhängige Protokoll, zum Beispiel Ethernet.
In der Abbildung sind jeweils ein oder zwei Beispiele für die jeweilige Schicht erwähnt. Wie Sie sehen, sind die Schichten nach „Abstraktionsebenen“ geordnet, die unterste Schicht ist sehr nah an der Hardware. Die oberste Schicht hingegen abstrahiert die darunter liegende Hardware nahezu vollständig. Jede der Schichten hat eine ganz spezielle Funktion, die zum Großteil schon aus der Bezeichnung hervorgeht. So wird das verwendete Netzwerk (zum Beispiel Ethernet) durch die Bitübertragungsschicht und die Sicherungsschicht verkörpert.
Fast alle Hardwareprotokolle arbeiten paketorientiert. Die zu übertragenden Daten müssen in kleine „Päckchen“ gepackt werden und können nicht „in einem Rutsch“ verschickt werden. Deshalb arbeitet auch TCP/IP mit kleinen Datenpaketen. Die Maximalgröße eines TCP/IP Paketes ist knapp 64 Kilobyte. In der Praxis sind die Pakete normalerweise viel kleiner, da die Netzwerkhardware der limitierende Faktor ist. So ist die zulässige Maximalgröße eines Datenpaketes auf dem Ethernet ca. 1500 Byte. Dementsprechend wird die Paketgröße des TCP/IP Pakets begrenzt, wenn die Daten über ein Ethernet geschickt werden. Will man mehr Daten übertragen, müssen vom Betriebssystem entsprechend mehr Datenpakete verschickt werden.
Damit jede der Schichten die ihr zugeteilte Aufgabe erfüllen kann, müssen zusätzliche Informationen der jeweiligen Schicht im Datenpaket im Header, dem Kopf des Datenpakets, gespeichert werden. Jede der Schichten fügt einen kleinen Datenblock, den sog. „Protokollkopf“ (engl. Protocol header), an das im Entstehen begriffene Paket vorne dran. Schauen wir uns also einmal ein beliebiges TCP/IP-Datenpaket an, das auf einem Ethernetkabel unterwegs ist, so setzt sich dieses wie in Abbildung 22.2, „TCP/IP Paket im Ethernet“ abgebildet zusammen. Die Prüfsumme befindet sich am Ende des Pakets, nicht am Anfang. Die erleichtert die Arbeit der Netzwerkhardware.
Möchte eine Applikation also Daten über das Netzwerk verschicken, durchlaufen die Daten die einzelnen Schichtebenen, die alle im Linuxkernel (Ausnahme Schicht 1: Netzwerkkarte) implementiert sind. Jede der Schichten ist dafür verantwortlich, die Daten so aufzubereiten, dass sie an die jeweils darunter liegende Schicht weitergereicht werden können. Die unterste Schicht ist schließlich für den eigentlichen Datenversand zuständig. Beim Empfang läuft das ganze nun umgekehrt ab. Wie bei den Schalen einer Zwiebel werden von jeder Schicht die Protokollköpfe von den Nutzdaten entfernt. Schicht 4 ist dann letztendlich dafür verantwortlich, die Daten für die Applikation auf dem Zielrechner bereitzustellen. Dabei kommuniziert eine Schicht immer nur mit der Schicht direkt über oder unter ihr. Für eine Applikation ist es also irrelevant, ob die Daten über ein 100-MBit/s-FDDI-Netzwerk oder über eine 56-KBit/s-Modemleitung übertragen werden. Umgekehrt ist es für die Datenübertragungsleitung egal, welche Daten eigentlich verschickt werden, solange sie richtig verpackt sind.
Dieser Abschnitt beschreibt IPv4-Netzwerke. Informationen zu seinem Nachfolgeprotokoll IPv6 bekommen Sie unter Abschnitt 22.2, „IPv6 – Internet der nächsten Generation“.
Jeder Computer im Internet hat eine eindeutige 32-Bit-Adresse. Diese 32 Bit bzw. 4 Byte werden normalerweise wie in Beispiel 22.1, „Schreibweise einer IP-Adresse“ in der zweiten Zeile abgebildet geschrieben.
Beispiel 22.1. Schreibweise einer IP-Adresse
IP-Adresse (binär): 11000000 10101000 00000000 00010100 IP-Adresse (dezimal): 192. 168. 0. 20
Die vier Bytes werden also im dezimalen Zahlensystem durch einen Punkt getrennt nebeneinander geschrieben. Die IP-Adresse ist einem Rechner bzw. einer Netzwerkschnittstelle zugeordnet, sie kann also nicht woanders auf der Welt nochmals verwendet werden. Ausnahmen von diesen Regeln gibt es zwar, spielen aber bei der folgenden Betrachtung erst einmal keine Rolle.
Auch die Ethernetkarte besitzt selbst eine eindeutige Adresse, die so genannte MAC (engl. Media access control) Adresse. Diese ist 48 Bit lang, weltweit eindeutig und wird vom Hersteller der Netzwerkkarte fest in der Hardware gespeichert. Durch die Vergabe der Adresse vom Hersteller ergibt sich aber ein fataler Nachteil: Die MAC-Adressen bilden kein hierarchisches System, sondern sind mehr oder weniger zufällig verteilt. Sie können daher nicht zur Adressierung eines weit entfernten Rechners verwendet werden. Die MAC-Adresse spielt aber bei der Kommunikation von Rechnern in einem lokalen Netz eine entscheidende Rolle (und ist der Hauptbestandteil des Protokollkopfes von Schicht 2).
Zurück zu den IP-Adressen: Die Punkte deuten schon an, dass die IP-Adressen ein hierarchisches System bilden. Bis Mitte der 90er Jahre waren die IP-Adressen fest in Klassen eingeteilt. Dieses System erwies sich aber als zu unflexibel und daher wurde diese Aufteilung aufgegeben. Man verwendet nun „klassenloses Routing“ (CIDR (engl. classless inter domain routing)).
Da der Rechner mit der IP-Adresse 192.168.0.1 erst einmal nicht wissen kann, wo sich der Rechner mit der IP-Adresse 192.168.0.20 befindet, wurden die Netzmasken erdacht.
Vereinfacht gesagt definiert die (Sub-)Netzmaske auf einem Rechner mit IP-Adresse, was „drinnen“ und was „draußen“ ist. Rechner, die sich „drinnen“ (Profis sagen: „im gleichen Subnetz“) befinden, können direkt angesprochen werden. Rechner, die sich „draußen“ („nicht im gleichen Subnetz“) befinden, müssen über ein so genanntes Gateway oder Router angesprochen werden. Da jedes Netzwerkinterface eine eigene IP-Adresse bekommen kann, ahnen Sie schon, dass es schnell beliebig kompliziert wird.
Bevor ein Netzwerkpaket auf die Reise geschickt wird, läuft folgendes im Rechner ab: Die Zieladresse wird mit der Netzmaske bitweise UND verknüpft. Daraufhin wird auch die Absendeadresse bitweise mit der Netzmaske UND verknüpft. Stehen mehrere Netzwerkinterfaces zur Verfügung, werden in der Regel alle möglichen Absendeadressen überprüft. Die Ergebnisse der UND-Verknüpfungen werden verglichen. Ergibt sich zwischen den Ergebnissen eine exakte Übereinstimmung, so befindet sich der Zielrechner im gleichen Subnetz. Ansonsten muss er über ein Gateway angesprochen werden. Das heißt, je mehr „1“ Bits sich in der Netzmaske befinden, desto weniger Rechner können direkt, sondern nur über ein Gateway angesprochen werden. Zur Veranschaulichung sind in Beispiel 22.2, „Verknüpfungen der IP-Adressen mit der Netzmaske“ mehrere Beispiele aufgeführt.
Beispiel 22.2. Verknüpfungen der IP-Adressen mit der Netzmaske
IP-Adresse (192.168.0.20): 11000000 10101000 00000000 00010100 Netzmaske (255.255.255.0): 11111111 11111111 11111111 00000000 --------------------------------------------------------------- Ergebnis (binär): 11000000 10101000 00000000 00000000 Ergebnis (dezimal): 192. 168. 0. 0 IP-Adresse (213.95.15.200): 11010101 10111111 00001111 11001000 Netzmaske (255.255.255.0): 11111111 11111111 11111111 00000000 --------------------------------------------------------------- Ergebnis (binär): 11010101 10111111 00001111 00000000 Ergebnis (dezimal): 213. 95. 15. 0
Die Netzmaske wird wieder – wie schon die IP-Adresse – in Form von durch Punkte getrennten Dezimalzahlen geschrieben. Da die Netzmaske auch ein 32-Bit-Wert ist, werden vier Zahlenwerte nebeneinander geschrieben. Welche Rechner Gateway sind oder welche Adressbereiche über welche Netzwerkschnittstelle erreichbar sind, muss vom Benutzer konfiguriert werden.
Um wieder ein Beispiel zu geben: Alle Rechner, die am gleichen Ethernetkabel angeschlossen sind, befinden sich in der Regel im gleichen Subnetz und sind direkt erreichbar. Auch wenn das Ethernet über Switches oder Bridges unterteilt ist, sind diese Rechner immer noch direkt erreichbar.
Wollen Sie eine längere Strecke überbrücken, ist das preiswerte Ethernet
dafür nicht mehr geeignet. Sie müssen dann die IP-Pakete auf andere
Hardware wie FDDI oder ISDN weiterleiten. Solche Geräte heißen Router
bzw. Gateway. Ein Linuxrechner kann diese Aufgabe selbstverständlich auch
erledigen, die entsprechende Option wird mit
ip_forwarding bezeichnet.
Ist ein Gateway konfiguriert, wird das IP-Paket an das passende Gateway geschickt. Dieses versucht, das Paket dann wiederum nach dem gleichen Schema weiterzuleiten. Das wiederholt sich auf jedem weiteren Rechner sooft, bis das Paket entweder den Zielrechner erreicht hat oder die „Lebenszeit“ TTL (engl. time to live) des Paketes verbraucht ist.
Tabelle 22.2. Spezielle Adressen
Adressart | Beschreibung |
|---|---|
Das ist die Netzmaske UND eine beliebige Adresse aus dem Netz, also
das was in Beispiel 22.2, „Verknüpfungen der IP-Adressen mit der Netzmaske“ unter | |
Sie heißt soviel wie: „Sprich alle Rechner in diesem Subnetz an“. Um sie zu erzeugen wird die Netzmaske binär invertiert und mit der Netzwerkbasisadresse ODER verknüpft. Obiges Beispiel ergibt also 192.168.0.255. Natürlich kann auch diese Adresse keinem Rechner zugewiesen werden. | |
Die Adresse |
Weil IP-Adressen weltweit eindeutig sein müssen, können Sie natürlich nicht beliebige Adressen erfinden. Damit Sie aber trotzdem ein auf IP basierendes Netzwerk aufbauen können gibt es drei Adressbereiche, die Sie ohne weiteres verwenden können. Mit diesen können Sie allerdings nicht so ohne weiteres Verbindungen in das Internet aufbauen, da diese Adressen im Internet nicht weitergeleitet werden. Dabei handelt es sich um die Adressbereiche, die in RFC 1597 definiert und in Tabelle 22.3, „Private IP-Adressbereiche“ dargestellt sind.