Aufmacher Artikel

Netzwerk in der Shell

01.03.2002

Ohne GUI das Netz einrichten

Die meisten Distributionen bieten grafische oder zumindest menügesteuerte Netzwerk-Konfigurations-Tools. Wenn es mal ohne gehen muss, helfen Kenntnisse der Befehle ifconfig und route.

Netzwerkkonfiguration besteht im Wesentlichen aus nur zwei Schritten: Die Netzwerkkarte muss eingerichtet werden, und Routing-Informationen müssen eingetragen werden. Wie dies mit den Kommandozeilen-Tools ifconfig und route schnell erledigt wird, zeigen wir Ihnen in diesem Artikel.

Ein Device ohne /dev-Eintrag

Beim Einrichten verschiedener Geräte begegnen Ihnen immer wieder die sogenannten Gerätedateien im Verzeichnis /dev/: So werden beispielsweise die erste IDE-Festplatte als /dev/hda und die PS/2-Maus als /dev/psaux angesprochen. Für Netzwerkkarten, unter Linux eth0, eth1 etc. genannt, werden Sie aber vergeblich nach entsprechenden Devices suchen: Die Einrichtung dieser Geräte erfolgt (nach dem Laden des notwendigen Moduls) über den Befehl ifconfig (InterFace Configuration).

Dass das richtige Modul für die Netzwerkkarte geladen bzw. entsprechender Support direkt in den Kernel eingebunden wurde, setzen wir voraus; die Netzwerkmodule finden Sie in /lib/modules/2.4.x/kernel/drivers/net/ oder bei älteren 2.2er Kerneln in /lib/modules/2.2.x/net/. Wenn Ihre Karte bei der Distributionsinstallation richtig erkannt wurde, sollte das Modul automatisch geladen werden.

Ein möglicher Grund, das Netzwerk von Hand einzurichten, ist die Reparatur eines defekten Linux-Systems: Wenn Sie von einer Rettungsdiskette oder -CD ein Mini-Linux booten, bietet dieses in der Regel keine Mechanismen zur menügeführten Netzwerkkonfiguration. Wir gehen im Folgenden davon aus, dass im lokalen Netz private IP-Adressen der Form 192.168.1.@L: * verwendet werden; das Gateway (mit Anbindung ans Internet) sei 192.168.1.1, und der Rechner, der manuell konfiguriert wird, soll die IP 192.168.1.5 erhalten. Dazu sind nach der Anmeldung als root auf einem Rettungs-Linux-System nur die folgenden drei Befehle notwendig:

modprobe 8139too
ifconfig eth0 192.168.1.5 up
route add default gw 192.168.1.1

Damit steht die Verbindung, und falls das Gateway mit dem Internet verbunden ist, können Sie das auch direkt ausprobieren, indem Sie etwa die IP-Adresse des LinuxUser-Web-Servers "anpingen" (Kasten 1). Der ping-Parameter "-c5" sorgt dafür, dass ping nach fünf übertragenen Paketen beendet wird.

Kasten 1: Erfolgreicher Ping-Versuch

[root@dual /]# ping -c5 213.69.168.121
PING 213.69.168.121 (213.69.168.121) from 192.168.1.5 : 56(84) bytes of data.
64 bytes from 213.69.168.121: icmp_seq=0 ttl=248 time=73.245 msec
64 bytes from 213.69.168.121: icmp_seq=1 ttl=248 time=72.837 msec
64 bytes from 213.69.168.121: icmp_seq=2 ttl=248 time=72.454 msec
64 bytes from 213.69.168.121: icmp_seq=3 ttl=248 time=72.658 msec
64 bytes from 213.69.168.121: icmp_seq=4 ttl=248 time=72.821 msec
— 213.69.168.121 ping statistics —
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max/mdev = 72.454/72.803/73.245/0.260 ms
[root@dual /]# _

Was bedeuten nun die drei Befehle, die hier verwendet wurden?

  • Der erste Befehl, modprobe 8139too, lädt den Kerneltreiber für die Netzwerkkarte, in diesem Fall eine Realtek-Karte mit RTL-8139-Chip. Bei älteren Kernel-Versionen (2.x) heißt der Treiber übrigens rtl8139. Wenn Sie nicht wissen, welche Karte in Ihrem Rechner eingebaut ist, diese aber eine PCI-Karte ist, können Sie die Information mit lspci oder (falls dieser Befehl nicht vorhanden ist) mit cat /proc/pci erhalten. In vielen Fällen wird das Laden des Moduls aber nicht nötig sein. Ob das Laden funktioniert hat bzw. die Karte vielleicht bereits beim Booten eingebunden wurde, können Sie leicht über den Befehl ifconfig eth0 herausfinden: Erscheint darauf nur die Fehlermeldung "eth0: error fetching interface information: Device not found", wurde noch nicht der richtige Treiber geladen.
  • Mit dem zweiten Befehl wird der Karte eine IP-Adresse zugeordnet; der zusätzliche Parameter up aktiviert die Karte. Nach diesem Befehl können Sie per ping bereits andere Rechner im lokalen Netz erreichen.
  • Der dritte Befehl schließlich richtet Gateway und Default-Route ein: So weiß der Kernel, über welchen Rechner eine Verbindung nach "draußen" besteht. Dass hierbei die Karte eth0 verwendet werden soll, findet der Kernel automatisch heraus. Sollte es einmal nicht klappen, da mehrere Netzwerkkarten eth0, eth1 etc. installiert sind, können Sie den Namen auch explizit angeben und statt des obigen Befehls route add default gw 192.168.1.1 eth0 schreiben.

Je nach Konfiguration Ihres Systems sind die Kommandos ifconfig, route und auch modprobe nur bei voller Pfadangabe erreichbar - das ist dann der Fall, wenn das Verzeichnis /sbin/ nicht im Pfad liegt. Geben Sie dann jeweils

/sbin/modprobe …
/sbin/ifconfig …
/sbin/route …

mit vollem Pfad ein, oder setzen Sie vor Beginn der Arbeit

export PATH=$PATH:/sbin

um das Verzeichnis /sbin in den Pfad aufzunehmen.

Permanenter

Wer diese Befehle nicht bei jedem Start eingeben will, aber Schreibzugriff auf das System hat, kann sich ein kleines Script anlegen, das die obigen Befehle ausführt. Dazu legt man einfach eine Datei /etc/rc.net an, trägt die drei Befehle (sicherheitshalber mit vollen Pfaden zu den Befehlen) ein und macht die Datei mit

chmod a+x /etc/rc.net

ausführbar. Diese kann nun nach jedem Systemstart wahlweise manuell von root aufgerufen werden, oder sie wird in das Start-Script /etc/rc.local eingebaut, das von den meisten Distributionen beim Start ausgeführt wird.

Zur Kontrolle

Auch zum Überprüfen der Netzwerk-Einstellungen können ifconfig und route verwendet werden; dazu sind keine Root-Rechte erforderlich. In Kasten 2 sehen Sie Beispiel-Ausgaben der beiden Tools. Wichtig bei der ifconfig-Ausgabe ist vor allem die zweite Zeile mit dem Eintrag "inet addr:192.168.1.4" - darüber können Sie jederzeit Ihre IP-Adresse erfragen. route zeigt alle gesetzten Routen - sowohl für lokale wie auch sonstige Verbindungen (etwa über ISDN oder DSL) - am "default"-Eintrag können Sie ablesen, über welche Schnittstelle Sie ins Internet verbunden sind.

Netzwerkkonfiguration auf der Konsole ist problemlos, in vielen Fällen schneller als der Weg über Konfigurations-Tools, und beim Start von einer Notfall-Diskette der vielleicht einzige Weg ins lokale Netz.

Kasten 2: Daten überprüfen

[esser@dual konsole]$ /sbin/ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:30:84:0C:06:FB
          inet addr:192.168.1.4  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:60722 errors:0 dropped:0 overruns:0 frame:0
          TX packets:62806 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:36609674 (34.9 Mb)  TX bytes:6211137 (5.9 Mb)
          Interrupt:9 Base address:0x8000
[esser@dual konsole]$ /sbin/route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
217.5.98.8      @L: *               255.255.255.255 UH    0      0        0 ppp0
172.16.208.0    @L: *               255.255.255.0   U     0      0        0 vmnet1
192.168.1.0     @L: *               255.255.255.0   U     0      0        0 eth0
127.0.0.0       @L: *               255.0.0.0       U     0      0        0 lo
default         217.5.98.8      0.0.0.0         UG    0      0        0 ppp0
Tip a friend    Druckansicht beenden Bookmark and Share
Kommentare