Navigationsleiste  |    Direktzugriff   |    Kurs  |     Home  

Linux-Kurs: Netzwerk


Linux ist im Netzwerk geboren und fühlt sich dort auch am Wohlsten (Tux in der Antarktis).
Ich möchte hier mal ganz kurz beschreiben wie ein Netzwerk funktioniert, und wie du es per Hand einrichtest. Und genau hier kommt schon das erste Problem: Mittlerweile haben die meisten Distributionen eine gute Hardwareerkennung und haben deine Karte wohl schon eingerichtet. Für den Kurs bei Elzet80 habe ich die Treiber herausgeworfen. Das brauchst du zuhause nicht zu machen, aber ich denke es nicht schädlich zu sehen wie du eine Karte von Hand einrichtest.
Zuerst erkläre ich aber mal ein bißchen wie das Ganze so funktioniert, aber nur Ethernet (das haben eh die meisten).

Eine ganz kleine Einführung

Wirklich nur ganz klein, sonst wäre es ein eigener Kurs.
Ich nehme mir hier mal eine typische Situation und beschreibe (grob) was dann technisch passiert.
Aus technischer Sicht ist nicht alles hier genau genug beschrieben, aber das würde den Rahmen locker sprengen.

ping

Wenn du an der Konsole folgendes eingibst:
[tux]$ ping 192.168.15.66

dann soll dein Rechner versuchen, den Rechner mit der IP-Adresse 192.168.15.66 im lokalen Netz anzupingen.

Was ist denn eine IP-Adresse ?? Und ein ping ?
Also, jeder Rechner in einem Netz (auch im Internet) braucht eine eigene Adresse, du hast ja auch eine eindeutige Adresse deiner Wohnung, oder? In Netzen die mit dem Protokoll TCP/IP (dazu gleich mehr) betrieben werden, ist es eben die IP-Adresse.
Mit einem ping kannst du feststellen ob ein Rechner erreichbar ist.

Im Detail sieht das Ganze dann so aus:
Übrigens, ein ping unter Linux läßt sich mit "Strg+c" abbrechen ...

WWW

Dann kommen wir mal zum nächsten Beispiel:
Du bist mit dem Internet verbunden und gibst in deinem Webbrowser www.tuxhausen.de ein.

Im Detail sieht das Ganze nun etwas anders aus:
Die IP-Adresse von "www.tuxhausen.de" ist übrigens 217.160.16.47 und mit dieser könntest du auch surfen (wenn es kein virtueller Server wär). Aber wer will sich bei so einem schönen Namen eine häßliche Nummer merken ;-))


Einrichtung einer Netzwerkkarte

Hier erst mal eine Warnung: Ich stelle hier zwar dar wie man ein Netzwerkkarte ins Netzwerk manuell einbindet. Aber es ist besser die Tools des Distributors zu benutzen, da diese die ganze Konfiguration auch prüfen können !

Module laden

Zuerst mußt du deine Karte hardwaremäßig in Betrieb nehmen. Dazu kannst du den Treiber fest in den Kernel einbinden (dazu mußt du aber einen neuen Kernel kompilieren) oder ein Modul laden.
Da alle Distributionen sowieso hunderte von Modulen zu dem Kernel kompiliert haben, ist es einfacher und ausreichend ein Modul zu laden.

Dazu mußt du erstmal wissen was für eine Karte du hast. Dabei ist es nicht wichtig ob die Karte von "TuxTech" (oder sonstwem Billiganbieter) stammt, sondern nur welcher Chip auf der Karte ist. Bei den billigen ist es im Moment meist ein RealTek-Chip, bei Boards mit integrierter Netzwerkkarte meist ein VIA, Intel oder Marvell-Chip. Wer eine Qualitätskarte von 3Com oder Intel hat, hat eh kein Problem mit dem Treiber. Also, vor dem Einbau der Karte gucken was auf dem großen Chip steht.
Ich gehe mal davon aus, dass du hast eine TuxTech-100 PCI-Karte mit einem RealTek 8139 Chip hast.

Dann laden wir nun endlich (als root) das Modul:
[root]# modprobe rtl8139

Jetzt sollte kein Fehler auftreten, andernfalls ist der Treiber wohl doch falsch. Bei uralten ISA-Karten muß evtl. noch die IO-Adresse und der IRQ angeben werden.

Angeben einer IP-Adresse

Jetzt geben wir der Karte eine IP-Adresse, aber wir können ihr natürlich nicht irgendeine geben. Warum nicht ?
Gibst du deiner Karte die Adresse 217.160.16.47, wirst du Probleme haben diese Seite zu sehen. Denn diese IP-Adresse gehört zu "www.tuxhausen.de". Gut, wir brauchen also eine IP-Adresse, dann müssen wir eine beantragen....
Wenn dein Rechner FEST (also ohne Einwahl oder Provider ) im Internet hängen würde, stimmt das schon. Aber das machst du normalerweile zuhause (und in kleinen Firmen) eh nicht. Und genau für diesen Zweck gibt es die privaten IP-Adressen, diese werden nicht im Internet verwendet und dein Provider leitet sie nicht weiter. Und das sind die privaten Adressen:

10.0.0.0 - 10.255.255.255      Klasse A Netz
172.16.0.0 - 172.31.255.255      Klasse B Netz
192.168.0.0 - 192.168.255.255      Klasse C Netz

Am einfachsten ist es eine Adresse aus dem Klasse C Netz zu nehmen, nehmen wir 192.168.1.1.
Das sagst du deiner Netzwerkkarte:
[root]# ifconfig eth0 192.168.1.1

"eth0" ist der Name der ersten Netzwerkkarte unter Linux, danach steigt einfach die Nummer, also eth1, eth2...
Schauen wir uns mal das Ergebnis an:
[root]# ifconfig -i eth0

Hier steht nun deine IP-Adresse (inet addr:192.168.1.1) und auch die MAC-Adresse deiner Netzwerkkarte (HWaddr 00:50:da:35:00:70).

Dein Rechner hat nun eine IP-Adresse, wenn du noch weitere Rechner hast, solltest du diesen nun auch IP-Adressen verpassen. Aber niemals zweimal dieselbe Adresse, das gibt nur Ärger im Netz.

Netzwerk-Routing

Jetzt haben zwar alle Rechner ihre IP-Adressen, nur wissen sie noch nicht das sie alle im selben Netz sind.
Also geben wir ihnen ein Netz, das wäre für unser Klasse C Netzwerk das Netz 192.168.1.0 mit der Netzwerkmaske 255.255.255.0.
Warum ? Das hier zu erklären geht wirklich zu weit, das brauchst du nur wenn dein Netzwerk zu langsam wird. Dann mußt du das Netz in Unternetze (Subnets) teilen und diese dann routen.
Dann sagen wir das mal unserem Linux-Rechner:
[root]# route add -net 192.168.1.0 netmask 255.255.255.0

Diese Zeile ist bei allen Rechner im Netz gleich !!! Keine Nummer ändern !!!
Den Erfolg deiner Aktion kannst du auch mit route überprüfen:
[root]# route -n

Jetzt kannst du schon mal den ersten Test machen, und zwar vom Rechner mit der IP 192.168.1.1 den Rechner 192.168.1.2 anpingen:
[tux]$ ping 192.168.1.2

Das sollte nun gehen, ansonsten nochmal alle Einstellungen genau nachschauen.

DNS

Das hat ja schon schön funktioniert, aber wäre es nicht schöner den Rechner auch mit einem richtigen Namen anzusprechen?
Jetzt kommt wieder das schon weiter oben erwähnte DNS zum Tragen, aber einen eigenen DNS-Rechner zu betreiben wäre im privaten Netz wohl etwas übertrieben.
Du braucht unter Linux nur eine Datei zu editieren und diese auf alle Rechner kopieren, und zwar die Datei /etc/hosts.
Aber erst mal zum Namen. Ein Name im Netzwerk besteht aus dem Rechnernamen und dem Domainnamen: bei "www.tuxhausen.de" ist "www" der Rechnername und "tuxhausen.de" die Domain (Ok, eigentlich ist "tuxhausen" die Domain und "de" die Top-Level-Domain). Der Domainname braucht also kein "de" oder so. Also nennen wir unsere Domain einfach "pinguin", die Rechner selber sollten ja schon Namen haben (nehmen wir mal fisch und eis).
Dann öffnen wir die Datei /etc/hosts mit einem beliebigen Editor (ja, auch mit vi ;-)) und editieren diese wie folgt:

#/etc/hosts
  127.0.0.1       localhost                   #Loopback-Interface (stehen lassen)   
  192.168.1.1     fisch.pinguin     fisch     #IP-Adresse von fisch.pinguin
  192.168.1.2     eis.pinguin       eis       #IP-Adresse von eis.pinguin
   

Da wir ja zu faul sind jedesmal den kompletten Namen (Name+Domainname) anzugeben, machen wir uns die Sache einfach.
Durch den Eintrag "search pinguin" in der Datei /etc/resolv.conf werden unvollständige Namen (eis) um die Domain erweitert (zu eis.pinguin):

#/etc/resolv.conf
  search pinguin                   #Unvollständige Namen gehören zu .pinguin   
  

Wer einen echten Nameserver für Verfügung stehen hat, trägt hier einfach nameserver 192.168.1.111 ein, dabei hat der Nameserver natürlich die Adresse 192.168.1.111.

So, diese Dateien müssen jetzt auf jeden Rechner im Netzwerk kopiert werden !!! Und wenn du an einer Datei etwas änderst, mußt du es auch an allen anderen machen.

OK, testen wir unser Netzwerk:
[tux]$ ping eis

Sollte nun an jedem Rechner gehen, toll nicht !!
Damit steht dein Netzwerk !!

Gateway

Du siehst zwar jetzt alle deine Rechner, aber ins Internet kommt nur der Rechner mit der ISDN-Karte (oder Modem, oder ...). Dir fehlt der Gateway, dieser übernimmt alle Anfrage die nicht im lokalen Netz beantwortet werden können.
Fein raus ist jetzt derjenige der einen eigenen Router im Netzwerk hat, der die Verbindung ins Internet herstellt. Mit Router meine ich einen Hardware-Router von Firmen wie Cisco, Funkwerk BinTec, Fritz!, NetGear ...

Wenn du so einen Router hast, mußt du diesem auch eine IP-Adresse in deinem Netz verpassen (wie das geht steht im Handbuch). Deinen Linux-Rechner mußt du nun noch mitteilen welche Adresse der Router (hier 192.168.1.200) hat:
[root]# route add default gw 192.168.1.200

Alle die nur einen Linux-Rechner mit ISDN-Karte (oder so) haben, müssen aus diesem einen Gateway basteln. Leider ist das nicht so ganz einfach, du mußt IP-Forward aktivieren und die IP-Adressen aus deinem Netz maskieren. Dazu mußt du dir aber eine Firewall bauen ...
Ein Beispiel findet du auch in tuxhausen, aber guck erstmal in das Handbuch deiner Distri. Fast alle bieten dafür recht einfache Möglichkeiten an.


So, das wars. Ich beende hier die Konfiguration und gebe dir noch einige Tipps mit auf den Weg:

Einige nützlich Netzwerk-Tools

Hier gebe ich mal einen kleinen Überblick welche Tools im Netzwerk sinnvoll sind und jeweils ein Beispiel wie du sie benutzt.

ping Erreichbarkeit des Rechnern überprüfen
[tux]$ ping eis.pinguin
route Zeigt die Netzwerk-Routing-Tabelle an
[root]# route -n
arp Zeigt die letzten MAC-Adressen an
[root]# arp -a
tcpdump Liest ALLE Packete im Netzwerk mit
[root]# tcpdump -i eth0
Wireshark Liest ALLE Packete im Netzwerk mit, graphische Oberfläche  

Bash-Scripte    Inhalt    Abschlußprüfung



Erstellt: 2001-08-29 Autor: Markus Ungermann (markus@tuxhausen.de)
Letztes Update: 2007-10-16      URL: http://www.tuxhausen.de/kurs_net.html