Das Protokollpaar TCP/IP hat sich in den vergangenen Jahren, auch unterstützt durch das schnelle Wachstum des Internet, durchgesetzt. Physikalisch besteht das Internet aus allen möglichen Verbindungen, sei es eine Modemstrecke oder ein Ethernet, bis hin zu schnellen ATM-basierten Strecken. Gemeinsam ist allen, dass dort TCP/IP zur Kommunikation eingesetzt wird. Auf allen diesen Verbindungen lassen sich Dienste wie WWW, Mail, News oder IRC benutzen.
Im Folgenden werden die Grundlagen beschrieben; Sie benötigen diese nicht unbedingt für die in diesem Buch vorgestellten einfachen Beispiele. Wenn Sie aber Ihr Netz erweitern wollen oder tiefer in die Materie einsteigen möchten, sollten Sie jetzt weiterlesen.
Jeder an das Internet (oder an jedes andere IP-basierte Netzwerk) angeschlossene Computer wird über eine einmalige IP-Adresse identifiziert. IP-Adressen haben eine Länge von vier Byte, die normalerweise als vier dezimale Zahlen, getrennt durch Punkte, dargestellt werden. Im Folgenden sehen Sie einige gültige Beispiele:
127.0.0.1 192.168.0.5 240.250.240.250
Anhand einer IP-Adresse lassen sich zwei Dinge feststellen: erstens das Netzwerk, in dem sich ein bestimmter Rechner befindet, und zweitens der Rechner selbst - dies entspricht dem so genannten Netzwerk- und dem Host-Teil der Adresse.
Für den Host-Teil der Adresse gibt es zwei besondere Werte: Wenn alle Bits auf 0 gesetzt sind, nennt man dies die Netzwerkadresse (network address, 0), wenn alle auf 1 gesetzt sind, beschreibt dies alle Rechner in diesem Netz - die so genannte Broadcast-Adresse (255).
Oder: „Wie kommt die Netzwerkkarte zu Ihrer Adresse?“ In den meisten Fällen werden Sie die Konfiguration Ihrer Netzwerkkarte bereits bei der Installation von Debian GNU/Linux vorgenommen haben. Wenn Sie eine solche Karte später einbauen oder das System mit einer zweiten Karte erweitern, müssen Sie diese von Hand einbinden.
Das Kommando ifconfig wird benutzt, um einem Netzwerkinterface (dies kann eine Netzwerkkarte, ein Modem, eine ISDN-Verbindung oder Ähnliches sein...) die benötigten Einstellungen zuzuweisen.
Loopback - Ein „virtuelles“ Netzwerkinterface. Dieses bezieht sich immer auf den Rechner selbst und hat die IP-Adresse: 127.0.0.1. Interface: lo.
Ethernet - Um zwei oder mehrere Rechner miteinander zu vernetzen, verwendet man eine Netzwerkkarte. Standard ist dabei der Einsatz von Ethernet-Karten. Interface: eth0, eth1, eth2 usw.
Tokenring - Ebenfalls zur Vernetzung über relativ kurze Strecken. Interface: tr0, tr1, tr2 usw.
PPP - „Point-to-Point Protocol“ (Punkt-zu-Punkt-Protokoll). Zur Verwendung über serielle Verbindungen, wie zum Beispiel Modemstrecken, ISDN usw. Interface: ppp0, ppp1, ppp2 usw.
Dummy - Für Systeme, die ansonsten keine Netzwerkverbindungen haben. Interface: dummy, dummy0, dummy1 usw.
Es gibt noch einige weitere Beispiele. Wir werden uns hier mit dem am meisten verbreiteten, dem Ethernet, beschäftigen.
Wenn Ihr Kernel die installierte Netzwerkkarte nicht erkennt, müssen Sie das passende Modul laden. Sie können dies temporär mit dem Kommando insmod oder modprobe durchführen. Wenn Sie das richtige Modul gefunden haben, tragen Sie die nötigen Werte in die Datei /etc/modutils ein. Danach ist das Kommando update-modules aufzurufen. Für eine NE2000-kompatible Karte wäre dies beispielsweise die Zeile alias eth0 ne (in der Datei /etc/conf.modules).
Mit dem Kommando ifconfig weisen Sie nun der Karte eine IP-Adresse zu. Im einfachsten Fall, also ohne weitere Optionen, gibt ifconfig die bisher konfigurierten Interfaces aus:
# /sbin/ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0 UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1 RX packets:18584 errors:0 dropped:0 overruns:0 frame:0 TX packets:18584 errors:0 dropped:0 overruns:0 carrier:0 Collisions:0
Bisher sollte auf Ihrem Rechner lediglich das Loopback-Interface ( lo) konfiguriert sein.
Rufen Sie nun ifconfig mit dem Namen des Interfaces ( eth0 für die erste, eth1 für die zweite Karte usw.) sowie der gewünschten IP-Nummer auf, und sehen Sie sich die Veränderung an:
# /sbin/ifconfig eth0 192.109.42.23 # /sbin/ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Bcast:127.255.255.255 Mask:255.0.0.0 UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1 RX packets:18584 errors:0 dropped:0 overruns:0 frame:0 TX packets:18584 errors:0 dropped:0 overruns:0 carrier:0 Collisions:0 eth0 Link encap:Ethernet HWaddr 00:00:F7:C3:45:1B inet addr:192.109.42.23 Bcast:192.109.42.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:55 errors:0 dropped:0 overruns:0 frame:0 TX packets:5 errors:0 dropped:0 overruns:0 carrier:0 Collisions:7 Interrupt:10 Base address:0x300
ifconfig gibt Ihnen nun auch die Informationen zur Ethernet-Karte aus. Die Werte für die Netzmaske, Broadcast-Adresse usw. wurden automatisch gesetzt. Wenn Sie bei diesen Werten andere Einstellungen benötigen, so müssen Sie diese ebenfalls mit ifconfig setzen:
# /sbin/ifconfig eth0 192.109.42.23 netmask 255.255.255.240
Dies verändert die zuvor angegebenen Werte. Wenn Sie ein Interface komplett deaktivieren wollen, benutzen Sie die Option down:
# /sbin/ifconfig eth0 down
Wenn Sie Ihre Netzwerkkarte bereits bei der Installation von Debian GNU/Linux eingerichtet haben, so werden Sie feststellen, dass einfach schon alles funktioniert... Hierzu wurden die notwendigen Werte in die Datei /etc/network/interfaces geschrieben.
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) # The loopback interface iface lo inet loopback # The first network card - this entry was created during the Debian # installation (network, broadcast and gateway are optional) iface eth0 inet static address 192.109.42.18 netmask 255.255.255.240 network 192.109.42.16 broadcast 192.109.42.16 gateway 192.109.42.17
In dieser Datei sind einige Variablen definiert, die beim Aufruf des Programms ifup ausgelesen werden.
Wenn Sie Ihre Netzwerkkarte erst später eingerichtet haben, müssen Sie diese Datei erstellen und sie an Ihre Bedürfnisse anpassen.
Aus wenigen Angaben eines Netzwerks die fehlenden Informationen zu generieren ist oft auch für den erfahrenen Admnistrator nicht ganz einfach und zudem fehleranfällig, wenn diese Berechnungen von Hand gemacht werden. Abhilfe schafft hier das Programm sipcalc (http://www.routemeister.net/projects/sipcalc/).
wasabi:~# sipcalc 192.168.1.1/24 -[ipv4 : 192.168.1.1/24] - 0 [CIDR] Host address - 192.168.1.1 Host address (decimal) - 3232235777 Host address (hex) - C0A80101 Network address - 192.168.1.0 Network mask - 255.255.255.0 Network mask (bits) - 24 Network mask (hex) - FFFFFF00 Broadcast address - 192.168.1.255 Cisco wildcard - 0.0.0.255 Addresses in network - 256 Network range - 192.168.1.0 - 192.168.1.255 Usable range - 192.168.1.1 - 192.168.1.254
Wenn Sie der Netzwerkkarte die eigenen Einstellungen mitgeteilt haben, müssen Sie dem Linux-Kernel noch beibringen, die IP-Pakete auch an die richtige Stelle zu schicken. Dies kann bei mehreren Netzwerkkarten durchaus richtige Arbeit werden...
Der Kernel hält die Informationen, welcher Rechner oder welches Netzwerk über welchen Weg zu erreichen ist, in der so genannten Routing-Tabelle („routing table“). Das Kommando, um sich diese Tabelle anzusehen, lautet: route. Wenn Sie bisher nur das Loopback-Device konfiguriert haben, wird das Ergebnis Folgendes sein:
# /sbin/route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 127.0.0.0 * 255.0.0.0 U 0 0 2 lo
Dies bedeutet, dass alle IP-Pakete (auch „traffic“ genannt) für das Netzwerk 127 über das Loopback-Device (lo) geschickt werden sollen.
Wenn Sie nun eine Netzwerkkarte konfiguriert haben, müssen Sie diese auch in die Routing-Tabelle des Kernels eintragen:
# /sbin/route add -net 192.109.42.0 # /sbin/route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 127.0.0.0 * 255.0.0.0 U 0 0 2 lo 192.109.42.0 * 255.255.255.0 U 0 0 137 eth0
Dies führt dazu, dass alle IP-Pakete für das Class-C-Netz 192.109.42.xxx über das Interface eth0 zu erreichen sind. Wenn Sie nur einen kleinen Teil eines Netzes zur Verfügung haben, müssen Sie dies über die Netzmaske (netmask) steuern:
# /sbin/route add -net 192.109.42.16 netmask 255.255.255.240
In diesem Beispiel stehen 16 IP-Nummern zur Verfügung (.16 bis .31).
Dies reicht schon aus, um ein kleines internes Netzwerk zu betreiben. Wenn Sie jedoch zwei Netzwerke miteinander verbinden wollen, müssen Sie dies über ein so genanntes „Gateway“ (oder auch „Router“ genannt) tun.
Wenn über das neue Interface nur ein bestimmtes Netzwerk zu erreichen ist und Sie die Adresse des Gateways (Routers) für dieses Netz kennen, müssen Sie die Routing-Tabelle um genau diesen Eintrag ergänzen. Sie erreichen dies mit der Option -net:
# route add -net 193.174.1.0 gw 192.109.42.17
Dies bedeutet, dass das Netz 193.174.1.0 (Class C) über das Gateway 192.109.42.17 zu erreichen ist. Es setzt aber auch voraus, dass schon bekannt ist, wie das Netz 192.109.42.x zu ereichen ist.
Eine andere häufig anzutreffende Möglichkeit ist es, alle IP-Pakete, für die es keinen passenden Eintrag in der Routing-Tabelle gibt, an ein Gateway zu schicken, die so genannte „Default-Route“.
# route add default gw 192.109.42.17
Dies würde zu folgender Routing-Tabelle führen:
Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 127.0.0.0 * 255.0.0.0 U 0 0 2 lo 192.109.42.16 0.0.0.0 255.255.255.240 U 0 0 0 eth0 0.0.0.0 192.109.42.17 0.0.0.0 UG 1 0 0 eth0
Sehen wir uns die Einträge im Einzelnen einmal an: Die erste Zeile bezieht sich auf das Loopback-Device (127.0.0.0, lo). Wenn Sie einen neueren Kernel verwenden, wird dies unter Umständen nicht angezeigt.
Werfen wir jedoch zunächst noch einmal einen genaueren Blick auf die Datei /etc/network/interfaces:
# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) # The loopback interface iface lo inet loopback # The first network card - this entry was created during the Debian # installation (network, broadcast and gateway are optional) iface eth0 inet static address 192.109.42.18 netmask 255.255.255.240 network 192.109.42.16 broadcast 192.109.42.16 gateway 192.109.42.17
Diese Datei definiert einige Variablen; wenn Sie eine Änderung an dieser Datei vornehmen, können Sie diese einfach mit dem Kommando ifup eth0 aktivieren. In den ersten Zeilen wird das so genannte Loopback-Device konfiguriert.
Die folgenden Zeilen beinhalten die benötigten Variablen für Ihr Netz.
In dieser Datei werden IP-Nummern verwendet. Wenn Sie das Kommando route aufrufen, um sich die Routing-Tabelle anzeigen zu lassen, werden Sie bemerken, dass dort die Namen der Rechner und Netze verwendet werden. Sie können die Ausgabe der IP-Nummern mit der Option -n hinter dem Kommando route erzwingen.
In der Datei /etc/hosts finden Sie den Namen des lokalen Rechners und in der Datei /etc/networks den Namen des Netzes. Systeme, deren Name nicht in der Datei /etc/hosts beschrieben sind, werden im Allgemeinen über den Nameserver aufgelöst.
Jeder mit dem Internet verbundene Rechner oder jedes Netzwerk, das IP als Netzwerk-Protokoll benutzt, hat eine (oder mehrere) IP-Adressen, mit der das Routing von und zu diesem System sichergestellt wird. Da die Benutzer sich diese Zahlenkolonnen nur schwer merken können, kann jedem Rechner (eigentlich jeder IP-Nummer) ein Name zugewiesen werden. Sicher haben Sie dies schon bei der Installation von Debian GNU/Linux bemerkt: Sie werden nach einem Rechnernamen (Hostnamen) gefragt.
Dieser Name wird an verschiedenen Stellen gespeichert. Sie können mit dem Kommando hostname den Namen des Rechners herausfinden; es wird der Wert aus der Datei /etc/hostname ausgegeben. Wenn Sie dies an einem (dauerhaft) ans Internet angeschlossenen Rechner probieren, besteht dieser Name aus verschiedenen Teilen, die durch Punkte getrennt sind, zum Beispiel linux.openoffice.de.
Nur der erste Teil ist der Name des Rechners (Hostname), der Rest wird als „Domain Name“ bezeichnet (hier: openoffice.de). Da es natürlich viele Menschen gibt, die möchten, dass ihr Rechner den Namen linux bekommt, wurde jeder dieser Namen dadurch einmalig gemacht, dass man ihn einer bestimmten Domäne zuordnet.
Innerhalb einer Domäne (also einer Gruppe von Computern, einem Netzwerk) ist meist eine Person für die Vergabe von Computernamen zuständig und pflegt die Daten(-bank) mit den notwendigen Informationen. Dieses System ist als DNS (Domain Name Service) bekannt. Es ist mit einem Telefonverzeichnis vergleichbar. Sie können nach einem Computernamen suchen und erhalten dessen IP-Adresse.
Vor der Einführung von DNS musste man sich die IP-Adressen der Rechner merken, um sich im Internet bewegen zu können. Namen wurden nur innerhalb kleinerer Netzwerke benutzt und konnten in verschiedenen Netzen doppelt vergeben werden. Diese (lokalen) Namen wurden in der Datei /etc/hosts gespeichert. Natürlich können Sie auch heute noch diese Datei benutzen, sie wird auch bei der Installation von Debian GNU/Linux angelegt. Die Datei enthält den Namen des eigenen Rechners und die dazugehörige IP-Adresse.
DNS ist ein sehr umfangreiches Thema; wir werden uns an dieser Stelle nur aus der Sicht des Nutzers (Clients) damit befassen.
Wenn ein Debian GNU/Linux-System die IP-Adresse eines anderen Rechners benötigt (zum Verschicken von Mail oder um eine Webseite aufzurufen), wird ein Teil der C-Library benutzt, um die Informationen zu bekommen - der „Resolver“. Zuerst wird ein Blick in die Datei /etc/nsswitch.conf geworfen (können Sie an dieser Stelle auch tun...). In dieser ist aufgeführt, an welchen Stellen versucht werden soll, die IP-Nummer zu finden. Hier sind drei verschiedene Einträge möglich. Wenn mehrere vorhanden sind, werden sie der Reihenfolge nach durchsucht.
Ein üblicher Eintrag in der Datei /etc/nsswitch.conf wäre:
hosts: files dns
Dieser Eintrag bringt den Resolver dazu, zuerst die Datei /etc/hosts und dann den (in /etc/resolv.conf definierten) Nameserver (DNS) nach dem Rechnernamen zu durchsuchen.
Die Datei /etc/resolv.conf enthält, neben dem Eintrag für einen oder mehrere Nameserver, zunächst den Namen der lokalen Domain.
domain openoffice.de nameserver 194.25.2.129 nameserver 192.168.22.33
Die erste Zeile bewirkt, dass die lokale Domain an den Rechnernamen (Hostname) angehängt wird, wenn nur ein Rechnername ohne Angabe der Domain angegeben wird. Die folgenden Zeilen beschreiben die (IP-technisch gesehen möglichst gut erreichbaren) Nameserver. Sie sollten hier in jedem Fall IP-Nummern und nicht die Namen der Rechner verwenden.
Alle Programme, die Sie benutzen (zum Beispiel Webbrowser), erfragen automatisch die IP-Nummer, wenn Sie einen Rechnernamen eingeben. Natürlich können Sie aber auch selbst solche Abfragen starten. Das zu Debian GNU/Linux gehörende Paket dnsutils enthält das Programm nslookup. Sie können nslookup interaktiv benutzen, um mehrere Abfragen nacheinander zu starten. Die häufigste Anwendung ist aber, nslookup für eine einzelne Abfrage zu benutzen. Hierzu geben Sie nach dem Kommando einfach den Namen des gesuchten Rechners an:
# nslookup www.debian.org Server: 194.25.2.129 Address: 194.25.2.129#53 Non-authoritative answer: Name: www.debian.org Address: 198.186.203.20
Nach dem befragten Server wird weiter unten die IP-Adresse für den gewünschten Server angegeben.
Auf die Datei /etc/resolv.conf wurde ja schon im vorherigen Abschnitt eingegangen. Hier noch ein etwas erweitertes Beispiel:
domain openoffice.de search openoffice.de debiananwenderhandbuch.de debian.org nameserver 194.25.2.129 nameserver 192.168.22.33
Hinzugekommen ist die zweite Zeile. Diese ist nicht zwingend notwendig, erleichtert aber die Arbeit. Mit dieser Zeile werden einfach (wenn Sie nur den Hostnamen angeben) die angegebenen Domains nach dem gewünschten Namen durchsucht, und der Hostname wird automatisch um den Domainnamen ergänzt.
© 1999-2005 Frank Ronneburg - Dieser Inhalt ist unter einem Creative Commons Namensnennung - Nicht-kommerziell - KeineBearbeitung Lizenzvertrag lizenziert (creativecommons.org/licenses/by-nc-nd/2.0/de/).