Das Protokollpaar TCP/IP hat sich in den vergangenen
Jahren, auch unterstützt durch das schnelle
Wachstum das Internets, 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,
daß 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.
... 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, 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 ...
Tokenring - ebenfalls zur Vernetzung über relativ kurze Strecken.
Interface: tr0,
tr1, tr2 ...
PPP - „Point-to-Point Protocol“ (Punkt-zu-Punkt-Protokoll), zur
Verwndung über serielle Verbindungen, wie zum Beispiel Modemstrecken, ISDN usw.
Interface: ppp0, ppp1, ppp2 ...
Dummy - für System, die ansonsten keine Netzwerkverbindungen haben.
Interface: dummy, dummy0, dummy1 ...
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/modules oder
/etc/conf.modules ein. Für eine NE2000-kompatible Karte wäre dies beispielsweise
die Zeile alias eth0 ne (in der Datei /etc/conf.modules).
Um nun der Karte eine IP-Adresse zuzuweisen, dient das Kommando ifconfig.
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 Ethernetkarte
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
|
Die 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, daß 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, erstellen Sie diese Datei und
passen sie Ihren Bedürfnissen an.
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 diese Informationen,
welcher Rechner oder welches Netzwerk über welchen Weg
zu erreichen ist, in der sogenannten
„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, daß 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, daß 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
sogenanntes „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, daß das Netz 193.174.1.0 (Class C) über
das Gateway 192.109.42.17 zu erreichen ist,
setzt aber auch voraus, daß 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
sogenannte
„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 nochmal 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 sogenannte 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, daß 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, 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, welches 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 (Hostname)
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,
daß Ihr Rechner den Namen linux bekommt, wurde jeder dieser Namen
dadurch einmalig gemacht, daß man ihn einer bestimmten
Domain zuordnet.
Innerhalb einer Domain (eine Gruppe von Computern, ein 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 und mit einem
Telefonverzeichnis vergleichbar. Sie können nach einem Computernamen suchen und erhalten
dessen IP-Adresse.
Vor der Einführung von DNS mußte 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 (Client) 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 diese der Reihenfolge
nach durchsucht.
Ein üblicher Eintrag in der Datei /etc/nsswitch wäre:
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, daß wenn nur ein Rechnername ohne
Angabe der Domain angegeben wird, die lokale Domain
an den Rechnernamen (Hostname) angehängt wird. Die
folgenden Zeilen beschreiben die (IP-technisch
gesehen möglichst gut erreichbaren) Nameserver. Sie
sollten hier in jedem Fall IP-Nummer 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 selber 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.