Linux im LAN

Aus LinuxUser 02/2003

Linux im LAN

Pinguin im Netz

Ob man einmal einen Rechner in ein Netzwerk einbindet oder dies wie bei einem Laptop – mal zu Hause, mal im Büro – öfter tut; die dahinter steckenden Mysterien bleiben dieselben.

Wer hat nicht schon einmal neidisch auf die Profis geschaut, die ihren Linux-Laptop abwechselnd in die Netzwerksteckdose der Firma, zu Hause oder auf der Konferenz stöpseln und sofort wieder das Internet benutzen, als wäre nichts passiert, während man selbst nicht einmal die zwei, drei heimischen Rechner vernünftig vernetzt bekommt? Zum Glück hat das alles mit Hexerei recht wenig zu tun, wenn man verstanden hat, was dabei eigentlich abläuft.

Wer einen Rechner in ein lokales Netzwerk einklinken will, muss dank der tollen Einrichtungshilfen moderner Linux-Distributionen oft nicht einmal mehr Hand anlegen. Selbst wenn es nicht auf Anhieb klappt, helfen ein paar Klicks durch die entsprechenden Menüs, und der Laptop arbeitet im neuen Netz. Mit einer vollautomatischen Netzwerkkonfiguration beispielsweise über DHCP [1] bezieht Ihr Rechner wirklich alle Einstellungen selbsttätig.

Doch auch, wenn die Automatik einmal versagt, muss guter Rat nicht teuer sein. Deshalb sehen wir uns im Folgenden an, was die grafischen Tools hinter den Kulissen alles anstellen, damit die Verbindung in ein LAN und weiter ins Internet funktioniert. Denn das kann man alles auch “per Hand” erledigen.

Hardware

Auf einer ganz handgreiflichen Ebene benötigt der Computer für den Zugang zu einem Netzwerk eine Netzwerkkarte mit entsprechendem Kabel (mehr Informationen zur drahtlosen Vernetzung finden Sie in [2]). Dieses Netzwerkgerät kann fest in den Rechner integriert sein, auf einer Erweiterungskarte oder – wie wohl bei den meisten modernen Laptops üblich – direkt auf der Hauptplatine sitzen. Denkbar ist aber auch eine PCMCIA-Karte oder ein externes USB-Gerät.

Damit Linux mit der Karte kommunizieren kann, benötigt es einen passenden Treiber. Im Zeitalter von “Plug&Pray” wird dieser hoffentlich automatisch geladen. Ob das funktioniert hat, prüfen Sie mit einem der wichtigsten Befehle aus der Netzwerkkonfiguration: ifconfig. Ohne Parameter aufgerufen, zeigt dieses Kommando die aktuell konfigurierten Netzwerkschnittstellen an (Listing 1). Wenn Sie nicht als root arbeiten, liegt ifconfig meist nicht in Ihrem Pfad. Starten Sie es dann mit einer expliziten Pfadangabe: /sbin/ifconfig.

Listing 1

<I>ifconfig<I> zeigt eine fertig konfigurierte Netzwerkkarte

mas@swan:~$ /sbin/ifconfig
eth0      Link encap:Ethernet  HWaddr 00:00:C0:77:D8:F5
          inet addr:172.16.45.12  Bcast:172.16.45.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2565 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10723 errors:21 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:596219 (582.2 Kb)  TX bytes:3753306 (3.5 Mb)
          Interrupt:9 Base address:0x2000
[…]
        @KE:

Jedes Linux-System listet mindestens eine Schnittstelle, das lokale “Loopback”-Device lo. Für uns LAN-Bastler interessant sind jedoch nur diejenigen Interfaces, die mit den magischen Buchstaben eth für “Ethernet” beginnen. Die Ausgabe in Listing 1 zeigt die wichtigsten Eckdaten einer jeden Netzwerkverbindung:

  • Die Hardware-Adresse (HWaddr) identifiziert die Netzwerkkarte auf der Ebene der so genannten Sicherungsschicht, d. h. auf der reinen Hardware-Seite. Diese sechs, mit Doppelpunkten getrennten Bytes heißen auch MAC-Adresse und sind weltweit eindeutig, zumindest so lange, wie keine Hacker in die Nähe kommen. Sorgfältig verwaltete Netzwerke beziehen die MAC-Adresse in die Konfiguration mit ein – das ist der Grund, warum Sie einen Rechner in der Firma nicht ohne weiteres durch Ihren Laptop ersetzen sollten.
  • Die IP-Adresse (inet addr) kennzeichnet Ihren Rechner im Netzwerk. Diese Adresse verwenden die Programme auf Ihrem Computer. Doch obwohl es der Name suggeriert, muss die IP-Adresse nicht notwendigerweise aus dem Internet erreichbar sein: Die im Beispiel gezeigte Adresse 172.16.45.12 stammt aus dem standardisierten Pool privater IP-Adressen für private Netzwerke.
  • Die Broadcast-Adresse (Bcast) und die Netmask (“Netzwerkmaske”, Mask) beschreiben das Netzwerk etwas genauer, in dem sich der Computer befindet. Dabei wird, vereinfacht gesagt, ein Teil des riesigen Bereichs aller IP-Adressen abgetrennt und als unmittelbare Nachbarschaft deklariert. Früher konnte man diese Parameter aus der IP-Adresse erraten, heute geht das leider nicht mehr. Aber zum Glück sind diese Parameter für ein Einzelplatzsystem wie einen Laptop nun auch wieder nicht sooo wichtig. Wenn Sie die Parameter herausfinden können, stellen Sie sie bitte richtig ein, wenn nicht, führt das selten zur Katastrophe.

Auf diese Angaben folgt ein dicker Stapel Statistik rund um das Interface. Interessant ist zum Beispiel die Zählung der empfangenen (RX, “received”) und gesendeten (TX, “transmitted”) Pakete. Vorsicht Falle: Im Beispiel traten nicht 10723 errors auf, sondern lediglich errors:21. Ganz am Ende zeigt das Linux-ifconfig zur Information noch den benutzten Interrupt und andere Hardware-Daten zur Netzwerkkarte an. Wenn die Karte zwar erkannt und scheinbar sauber konfiguriert wird, aber trotzdem nicht funktioniert, prüfen Sie diese Zahlen als erste!

Zeigt ifconfig überhaupt kein eth0 an, gibt es zwei Möglichkeiten. Die unwahrscheinlichere, aber erfreulichere Alternative: Ihre Distribution hat die Netzwerkkarte noch nicht angetastet, und sie wartet einfach nur darauf, dass Sie sie zum Leben erwecken.

Wie weckt man eine schlafende Netzwerkkarte? Küssen hilft nicht, benutzen Sie stattdessen ifconfig:

mas@swan:~$ su
Password: [Geheimes_root-Passwort]
root@swan:~mas# /sbin/ifconfig eth0 up 172.16.45.12 netmask 255.255.255.0

Wenn der Kernel die Netzwerkkarte kennt, ist das alles. Haben Sie es mit der anderen Möglichkeit zu tun, hagelt es Fehlermeldungen wie diese:

eth0: unknown interface: No such device
SIOCSIFADDR: No such device

Hier fehlt das Kernel-Modul mit dem Treiber für die Netzwerkkarte, oder es wurde nicht richtig geladen. Möglicherweise fehlen ja genauere Angaben zur Hardware. Für diesen Fall empfehle ich Ihnen wahlweise Google oder eine der Newsgruppen http://comp.os.linux.hardware oder http://comp.os.linux.networking.

Ab ins Netz!

Mit den bisher besprochenen Angaben sollte ein Linux-Computer Pakete mit seinen Nachbarn austauschen können. Kennen Sie die IP-Adresse eines Rechners aus dem gleichen LAN? Dann stellen Sie Ihr System wie in Listing 2 auf die Probe!

Listing 2

Kommt Antwort aus dem Netz?

mas@swan:~$ ping 172.16.45.1
PING 172.16.45.1 (172.16.45.1) from 172.16.45.12 : 56(84) bytes of data.
64 bytes from 172.16.45.1: icmp_seq=0 ttl=62 time=210 usec
[…]

Der Befehl ping schickt Testpakete an den angegebenen Rechner. Erreichen ihn diese, schickt er seinerseits “Pong”-Pakete zurück. Damit eignet sich das Kommando hervorragend zur Diagnostik. Brechen Sie es mit [Strg-C] ab, wenn es langweilig wird.

Was Linux jetzt noch nicht beherrscht, ist der Blick über den Tellerrand, nämlich die Kommunikation mit anderen Netzwerken. Außer natürlich, ein automagisches Tool Ihrer Distribution hat seine Finger im Spiel und tut Dinge hinter Ihrem Rücken …

Pakete innerhalb des eigenen LANs (genauer gesagt: im Einzugsbereich der konfigurierten Netzwerkschnittstellen) kann Linux direkt versenden. Dabei sind natürlich noch einige Raffinessen im Spiel, doch um die müssen Sie sich kaum jemals selbst kümmern. Pakete an fremde Netze “lässt” Linux verschicken. Anstatt sie selber zuzustellen, leitet es sie an einen anderen Rechner weiter, der sich darum kümmern soll. Dieser andere Rechner heißt Gateway oder auch Defaultrouter. In Ihrer Firma hat er einen WAN-Zugangsknoten, in Ihrer Wohnung übernimmt der Server mit der ISDN-Karte oder dem Modem diese Rolle.

Welche Daten wohin verschickt werden, steht in einer so genannten Routing-Tabelle. Der Befehl route (bzw. /sbin/route, wenn Sie nicht als root arbeiten) zeigt diese Tabelle an. Wenn Sie tatsächlich per Hand konfigurieren, ergänzen Sie bitte wie in Listing 3 die Option -n, die eine potenziell zeitraubende Übersetzung der gezeigten IP-Adressen in symbolische Namen verhindert.

Listing 3

Die Route

mas@swan:~$ /sbin/route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
172.16.45.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         172.16.45.1     0.0.0.0         UG    0      0        0 eth0

Jede Zeile enthält einen Routen-Eintrag. Zur schnellen Orientierung reicht dabei ein Blick auf die erste und die letzte Spalte. Die erste mit der Destination (dem Ziel) zeigt, welche Datenpakete betroffen sind. (Profis merken sofort, dass man dafür auch die dritte Spalte mit berücksichtigt. Wir anderen tun meistens intuitiv das richtige.) In Listing 3 zeigt die erste Zeile also, was mit Paketen an IP-Adressen, die mit 172.16.45 beginnen, passieren soll. Die letzte Spalte gibt an, über welches Iface – “Interface” – diese Pakete versandt werden, hier das von vorhin bekannte eth0.

Die zweite Zeile sagt analog: Pakete an IP-Adressen, die mit 127 beginnen, werden an das Interface lo geschickt. Dabei handelt es sich um das besagte “Loopback”-Gerät, über das ein Computer mit sich selbst sprechen kann.

Die dritte Zeile schließlich ist der Joker. Alle Empfängeradressen, die bis hierhin noch nicht abgedeckt sind, werden nach den Regeln dieser Zeile bearbeitet. Und hier taucht ein Gateway auf, ein Defaultrouter: Wenn die Empfängeradresse eines Pakets nicht mit 172.16.45 und auch nicht mit 127 beginnt, übergibt Linux das Paket an den Rechner 172.16.45.1. Der soll sich darum kümmern.

Praktisch, nicht? Ihr Computer kennt gerade mal zwei Netzwerke, von denen eines auch noch so eine Art Tagebuch für Selbstgespräche darstellt. Und trotzdem kann er jetzt mit der ganzen Welt kommunizieren.

Gerade auf Laptops werden Sie allerdings früher oder später Ihre liebe Not mit der Defaultroute haben: Mal im Betrieb ans Firmennetz angeschlossen, mal daheim ans Hausnetz, unterwegs soll das Notebook per Handy und im Hotel per Modem kommunizieren, und bei all dem darf es nicht durcheinander kommen!

Viele Distributionen geraten bei solch freizügigem Verkehr tatsächlich ins Schwitzen. Das häufigste Symptom des Fremdgehens zeigt sich in Form einer defekten Defaultroute. Die Netzwerkverbindung an sich wird zwar noch korrekt aufgebaut, die Defaultroute fehlt aber oder zeigt ins Nirwana. Ein Beispiel zeigt Listing 4.

Listing 4

Ein wenig verwirrt

mas@swan:~$ /sbin/route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
195.71.150.164  0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
172.16.45.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
127.0.0.0       0.0.0.0         255.0.0.0       U     0      0        0 lo
0.0.0.0         172.16.45.1     0.0.0.0         UG    0      0        0 eth0

Dieser Computer verfügt über eine (völlig korrekt konfigurierte) Anbindung an ein LAN (eth0). Dort ist er gerade nicht angeschlossen, sondern es besteht per Handy eine Wählverbindung ins Netz (ppp0). Allerdings ist die Defaultroute für das LAN noch gesetzt. Linux versucht nun, alle Pakete ins Internet über die Netzwerkkarte zu verschicken, nicht über das Handy. Das funktioniert natürlich nicht.

Doch Abhilfe naht wieder in Gestalt des route-Befehls: Dieser kann die Routing-Tabelle nämlich gezielt verändern (Listing 5). Zuerst löscht root mit route del (wie “delete”, löschen) die Defaultroute und fügt die neue anschließend mit route add hinzu. Die gilt für das -net (Netzwerk, also nicht nur für eine einzelne Adresse) default (d. h. für alle nicht näher beschriebenen IP-Adressen) und zeigt zum gw (“Gateway”) 195.71.150.164. Diese IP-Adresse des Routers klaut man sich übrigens am besten aus der zuvor angezeigten route-Tabelle (Listing 4).

Listing 5

Eine neue Defaultroute

root@swan:~mas# /sbin/route del default
root@swan:~mas# /sbin/route add -net default gw 195.71.150.164

Wie war doch gleich Ihr Name?

Bislang war von Computern und Netzen immer nur in Form von IP-Adressen die Rede. Für den alltäglichen Gebrauch ist das völlig ungeeignet. Wer will schon 136.199.85.14 schreiben, wenn www.zpid.de ebenso zum Ziel führt?

Diese Namensauflösung übernimmt ein Service namens DNS, “Domain Name Service [3]. Genauer gesagt ist es der so genannte Resolver, der symbolische Namen in IP-Adressen übersetzt und auf Wunsch auch umgekehrt. Im Gegensatz zu zahlreichen anderen Unix-Diensten handelt es sich beim Resolver übrigens ausnahmsweise nicht um einen Dämon, sondern um einen Bestandteil der Programmbibliotheken jedes Unix-Systems.

Der Resolver kennt die ungezählten Rechnernamen im Internet freilich nicht selbst, sondern er fragt einen DNS-Server im Netz. Wenn Sie also symbolische Hostnamen verwenden möchten (und das sollten Sie!), müssen Sie Linux mitteilen, wo sich solch ein DNS-Server befindet. Gemeinerweise benötigen Sie für jede Zugangsvariante – Firma, Handy, Wohnung etc. – einen anderen DNS-Server.

Die momentan relevante Konfigurationsdatei für den Resolver heißt /etc/resolv.conf, und der einzige wirklich wichtige Eintrag darin nameserver. Die anderen Zeilen lässt man vorsichtig unangetastet oder wirft sie kühn hinaus. So eine resolv.conf sieht dann beispielsweise so aus:

nameserver 172.16.45.1

Kurz und schmerzlos. Woher kennt man den Nameserver? In einem echten LAN fragt man den Netzwerkadministrator. Bei Ihnen daheim sind Sie selbst der Admin und tragen einfach Ihre Server-IP ein. Bei Wählverbindungen wird es kompliziert, doch zum Glück erledigt auch hier die Magie der Distribution alles Nötige. Sie fragt nämlich den Einwahl-Server nach dem momentan zuständigen DNS-Server und aktualisiert Ihre /etc/resolv.conf mit den neuen Daten. Verrückte Idee? Kommt ja schließlich auch von Microsoft.

Namensauflösung für Profis

Profis und alle Käufer moderner Distributionen sollten wissen, dass manchmal noch etwas mehr zur Resolver-Konfiguration gehört als nur das bisher beschriebene.

Erstens verwenden manche Distributionen einen so genannten Caching Nameserver. Das heißt: Ein echter DNS-Server läuft auf jedem Computer, sogar auf einem Laptop. Er dient der lokalen Software als Ansprechpartner und leitet die Anfragen von dort ins Internet weiter. In solch einem Szenario sollte man /etc/resolv.conf tunlichst in Frieden lassen – diese Datei verweist dann ja nur auf den eigenen Computer. Stattdessen könnte man ggf. die Konfiguration des lokalen DNS-Servers überarbeiten. In der Praxis ist das oft unnötig, weil diese Caches nicht vom DNS-Server des Internet-Providers abhängig sind.

Zweitens haben Paketfilter (im Volksmund Firewalls genannt) Einzug auf allen großen Distributionen gehalten. Diese müssen selbstverständlich informiert und aktualisiert werden, sobald sich die Adresse des Nameservers ändert. Glücklicherweise geschieht das meist vollautomatisch.

Web und Mail

Bei einem Wechsel von einem LAN ins andere ändern sich möglicherweise ein paar Dinge, die für die Anwendersoftware relevant sind. Das ist selten ein Problem, doch sollten wir zumindest zwei Punkte kurz ansprechen: Web-Proxies und E-Mail.

Proxies speichern eine Kopie übertragener Web-Seiten. Wenn ein anderer Computer die gleiche Seite anfordert, wird sie nicht aus dem Internet geholt, sondern vom lokalen Zwischenspeicher gelesen. Das spart Zeit und Geld. Mit der Verbreitung dynamischer WWW-Seiten kommen Proxies zusehends aus der Mode. Wenn Sie einen Proxy verwenden, müssen Sie die entsprechende Konfiguration vermutlich aktualisieren, sobald Sie Ihren Internet-Zugang wechseln.

Beim Versand von E-Mail ist die direkte Zustellung an den Mail-Server des Empfängers heutzutage eher die Ausnahme. Aus Sicherheitsgründen verbieten viele professionelle Mail-Anbieter diese Variante sogar völlig. Das bedeutet, dass sowohl Ihr Mail-Programm (z. B. kmail oder Mozilla) als auch Ihr lokaler Mail-Server (z. B. sendmail, qmail oder postfix) einen Mittelsmann benötigen, der E-Mail-Aufträge annimmt und weiterleitet. Dieser Mittelsmann funktioniert praktisch wie ein Briefkasten: Ihr Computer wirft ausgehende E-Mails dort ein. Später kommt jemand vorbei und kümmert sich um die Zustellung oder Weiterleitung an den Empfänger. Diesen Mittelsmann oder Briefkasten nennt man Smarthost.

Wer die Aufgabe des Smarthosts übernimmt, hängt von Ihrer persönlichen Situation und Ihren Vorlieben ab. Prinzipiell kann sowohl Ihr E-Mail-Provider als auch Ihr Internet-Provider Smarthost spielen. Ich persönlich ziehe ersteres vor. Wenn Sie Mail jedoch über Ihren Internet-Provider ausliefern, ist der Wechsel von einem Netzwerk zu einem anderen und damit von einem Provider zu einem anderen auch mit einem Wechsel des Smarthosts verbunden. Aktualisieren Sie daher ggf. die Mail-Konfiguration!

Ausblick

Diese knappe Rundreise führte an den wichtigsten Schrauben vorbei, an denen Sie bei der Umkonfiguration eines Computers von (k)einem Netzwerk zu einem anderen drehen müssen. Für einen tiefergreifenden Einstieg empfehle ich die Manpages vor allem zu den Befehlen ifconfig und route. Diese beiden grundlegenden Tools stellen ganz essenzielle Funktionalitäten rund um Netzwerke bereit. Auf Einzelplatzsystemen ist Herumspielen erlaubt! Ein Reboot bringt fast alle Probleme wieder ins Lot. Und wenn Sie gerade experimentieren, sollten Sie einen Ausflug in die verborgenen Tiefen von /proc/net und /proc/sys/net nicht versäumen.

Wer mehr Wert auf Funktionalität und Magie legt, dem sei DHCP wärmstens ans Herz gelegt. Fast alle Schwierigkeiten und Herausforderungen aus diesem Artikel lassen sich mit der vollautomatischen Netzwerkkonfiguration umgehen. Das funktioniert nicht immer, aber doch erstaunlich gut. Nützlich ist das Wissen um diese Vorgänge auf jeden Fall …

Glossar

LAN

Der Begriff “Local Area Network” bezeichnet ein Netzwerk aus unmittelbar benachbarten Computern, die meist über einfache Kabel (aber zum Beispiel auch drahtlos über WaveLAN [2]) miteinander verbunden sind. Wichtigster Unterschied zu anderen Netzen ist wohl, dass hierbei noch keine bezahlte Fernleitung, z. B. über Modem, ISDN oder DSL, im Spiel ist. Das Gegenteil von LAN wird als WAN oder “Wide Area Network” bezeichnet.

PCMCIA

Die “Personal Computer Memory Card International Association” hat unter anderem den nach ihr benannten PC-Card-Standard herausgegeben. Dieser ermöglicht einheitliche Hardware-Erweiterungen für Laptops und ähnliche Geräte. Im Informatik-Jargon nennt man PC-Cards meistens PCMCIA-Karten: Damit ist sofort klar, wovon man redet, während “PC-Card” alles mögliche heißen könnte. CardBus ist ein neuerer Nachfolger des PCMCIA-Standards, der für schnelle Datenübertragungen gedacht ist.

USB

Der “Universal Serial Bus” ist eine bequeme Variante, externe Hardware an einen Computer anzuschließen. Selbst primitive USB-Geräte wie eine Maus oder eine Tastatur benötigen viel eingebaute Intelligenz. Dafür lassen sie sich meist vollautomatisch konfigurieren. Der USB-Standard schreibt sogar vor, dass für die Treiberinstallation keine Benutzerinteraktion erfolgen darf! Das funktioniert unter Linux nicht immer, aber anderswo auch nicht …

Infos

[1] Miriam Busch: “Eine IP-Adresse, bitte!”, LinuxUser 03/2002, S. 32 ff.

[2] Titelthema LinuxUser 10/2002, S. 23 ff.

[3] Frederik Bijlsma: “Wer kennt die Namen?”, LinuxUser 05/2002, S. 78 f.

Der Autor

Marc André Selig arbeitet je zur Hälfte in einem Krankenhaus und an einer Universität. Konsequenterweise hält er die Fehlersuche in Computernetzwerken halb für psychotisches Erleben und halb für eine Denksportaufgabe.

LinuxUser 02/2003 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben