Linux-Praxisbuch/ Mininetz
Einleitung
BearbeitenUnter Linux gibt es eine Vielzahl von Netzwerkmöglichkeiten, die den Anfänger in der Regel überfordern. Anhand eines einfachen praktischen Beispiels sollen daher die wichtigsten Punkte einer Netzwerkinstallation unter Linux aufgezeigt werden.
Beispiel
Bearbeiten- 1 Linux Debianrechner mit Realtek-Netzkarte und Knoppix Linux
- 1 Linux Rechner mit Realtek-Netzkarte und Suse Linux
- 1 Mobilrechner mit WLAN und Realtek-LAN-Chip, Windows XP und Knoppix 4 im Parallelbetrieb
- 1 SMC Router + DSL fürs Internet
Hardwarevoraussetzungen
BearbeitenIn allen drei Rechnern sind Netzkarten vorhanden und die Rechner sind mit dem Router über die richtigen Ethernetkabel verbunden.
Überprüfung der Netzkarten
BearbeitenDie Netzkarten können wie folgt überprüft werden:
Sie prüfen auf dem Debianrechner, ob die Ethernetkarte erkannt wurde. Die Netzkarte wird auf dem alten Rechner in diesem Beispiel nicht automatisch erkannt.
Einige Schritte auf dem Beispielrechner mit einer 8139-Realtek-Netzwerkkarte:
Prüfen, ob die Realtekkarte am PCI-Bus angeschlossen ist
BearbeitenDies kann man mit dem Programm kinfocenter unter KDE machen,
oder man überprüft das Ganze manuell. Dazu loggt man als Root ein:
su
und Eingabe des Rootpasswortes.
Dann gibt man auf der Konsole lspci ein und überprüft die PCI-Steckplätze.
lspci
Antwort hier unter anderem
00:0b.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)
Das bedeutet, dass die Netzwerkkarte richtig angeschlossen ist.
Dann schaut man nach, ob die Karte in den ioports auftaucht.
cat /proc/ioports
Ausgabe unter anderem
e400-e4ff : 8139too
Also wird korrekterweise ein Speicherbereich im RAM für die Realtekkarte reserviert.
Dann schaut man nach, ob die Karte in den interrupts auftaucht.
cat /proc/interrupts
Ausgabe unter anderem:
11: 5530 XT-PIC eth0
Das heißt: Am interrupt 11 hängt die Ethernetkarte eth0
Dann schaut man nach, ob ein Treiber geladen wurde:
cat /proc/modules
Das ist in diesem Beispiel leider nicht der Fall, da bei der Ausgabe kein Modul aufgeführt wird, das den Namen 8139too hat, welches für diese Karte nötig ist.
Also muß der Treiber nachträglich geladen werden. Man sucht den Treiber durch das Kommando
modprobe -l | grep drivers/net
Man schaut hier nach ob es einen Treiber für 8139 gibt Es wird unter anderem 8139too.o aufgelistet.
Man bindet diesen Treiber ein
modprobe 8139too
Und überprüft das Ganze wieder mit
cat /proc/modules
Ausgabe unter anderem:
8139too 23040 0 - Live 0xc8fd6000
Jetzt ist der Treiber geladen.
Mit ifconfig kann man Überprüfen ob die Netzkarten schon eine Netzadresse bekommen haben.
ifconfig
IP Adresse
BearbeitenDamit sich die Rechner verständigen können, ist die Vergabe einer IP-Adresse erforderlich. Diese Adressen sind so etwas wie die Hausnummern Ihrer drei Rechner. Sie müssen eindeutig sein, sonst funktioniert die Verbindung nicht.
Von einem Router, der als DHCP Server fungiert, kann man die IP-Adresse auch automatisch beziehen. In der gewünschten Dreierbeziehung wird die IP-Adresse manuell gewählt.
IP-Adressen bestehen aus vier Blöcken mit jeweils drei Ziffern zwischen 0 und 254. Für den Heimnetzbereich sollte man Werte zwischen 192.168.0.1 und 192.168.0.254 wählen. Diese sind für private Netzwerke vorbehalten und werden im Internet nicht genutzt.
Geben Sie also Ihrem ersten Rechner beispielsweise die Adresse 192.168.0.1 und als Subnetzmaske den Wert 255.255.255.0. Dem zweiten Rechner geben Sie die nachfolgenden Adresse 192.168.0.2 und die gleiche Subnetzmaske wie dem ersten.
Der Befehl dazu lautet jeweils
ifconfig eth0 192.168.0.1 netmask 255.255.255.0 up
bzw.
ifconfig eth0 192.168.0.2 netmask 255.255.255.0 up
Netzwerkarte am Mobilrechner finden
BearbeitenDer Mobilrechner hat ein WLAN-Funk-Modul und einen normalen Netzstecker.
Die WLAN Karte läuft in diesem Beispiel zwar unter Windows, unter Linux startet sie allerdings nicht sofort.
Deswegen starten Sie die normale Netzkarte per Hand. Sie läuft hier unter eth2.
ifconfig eth2 192.168.0.3 netmask 255.255.255.0 up
Netcardconfig
BearbeitenDie Netzwerkkarte auf dem Suse Rechner wird mit dem Yast-2-Programm erfolgreich in Gang gesetzt. Alternative Möglichkeit über die Kommandozeile als root:
ifup eth0
Auf dem Knoppixrechner nutzen Sie dazu das Programm netcardconfig.
kdesu -- rxvt -bg black -fg green -cr red -ls -e /usr/sbin/netcardconfig
Dabei sendet einem der Router eine DHCP-Broadcast-Adresse zu.
Ping
BearbeitenJetzt kann man die einzelnen Rechner "pingen" und die Verbindung überprüfen.
Zum Abbrechen des Pings jeweils Strg+C drücken.
Rechner 1
Bearbeitenping 192.168.0.2
und
ping 192.168.0.3
Rechner 2
Bearbeitenping 192.168.0.1
und
ping 192.168.0.3
Rechner 3
Bearbeitenping 192.168.0.1
und
ping 192.168.0.2
Das Pingen funktioniert zur Zufriedenheit.
Netcat Einfache Dateiübertragung
BearbeitenNetcat bietet gegenüber dem Befehl telnet den Vorteil der problemloseren Kommunikation.
Beispiel mit zwei vernetzten Rechnern
BearbeitenDer Empfänger muss immer vor dem Sender zum Empfang eingerichtet werden. Rechner Eins mit netcat auf Empfang stellen und die Ausgabe in eine Datei umleiten:
netcat -vv -l -p 1234 > empf
Den zweiten Rechner auf Sendung schalten und eine Datei an Rechner Eins schicken:
cat test.txt | netcat -vv rechner1 1234 -w 10
1234 ist dabei die Portadresse. Natürlich muß die Datei test.txt auf Rechner Zwei überhaupt vorhanden sein.
Erklärung der Parameter für Rechner Eins (Empfänger)
Bearbeitennetcat -vv -l -p 1234 > empf
- -vv gibt Übertragungsmeldungen aus.
- -l stellt netcat auf listen (hören)
- -p 1111 ist eine beliebige (offene) Portadresse
- > empf leitet die Netcatausgabe in die Datei empf um.
Erklärung der Parameter für Rechner Zwei (Sender)
Bearbeitencat test.txt | netcat -vv rechner1 1234 -w 10
- cat test Zeigt die Datei test an
- | leitet die Ausgabe anstatt an den Monitor (der Standardausgabe) an das nachfolgende Programm um
- necat startet netcat
- -vv aktiviert für netcat die Übertragungsmeldungen
- rechner1 ist die Netzadresse des ersten Rechners.
- Kann auf dem entsprechenden Rechner durch Aufrufen von ifconfig ausgegeben werden
- 1234 ist der Port, über den alles geschickt wird. Er muß mit dem Empfangsport übereinstimmen
- -w 10 beendet netcat 10 sek nach Dateiende.
Angekommen?
BearbeitenAuf dem ersten Rechner überprüfen, ob die Datei angekommen ist
ls -la empf
Das ist hoffentlich tatsächlich der Fall. Schauen Sie sich die Datei an:
cat empf
Sie müßte mit test.txt auf Rechner Zwei übereinstimmen.
Einen ganzen Verzeichnisbaum übertragen
BearbeitenEs können ganze Verzeichnisbäume mit netcat übertragen werden. Wie das geht, zeigt folgende Internetseite:
Erforderlich sind:
- netcat,
- (gnu)tar
- bash
Die Dateien werden komprimiert und zusammen mit ihren Attributen (Zugriffsrechte/Änderungsdatum) übertragen. Hierzu lässt man auf dem empfangenden Host einen netcat auf Port 51330 lauschen und leitet seine Ausgabe in eine tar Datei um:
$ alias receive='nc -vlp 51330 | tar xzvp' $ receive
listening on [any] 51330 ...
Auf der sendenden Seite ruft man eine Shellfunktion auf, welche die übergebenen Dateien/Verzeichnisse zusammentart und an den Port 51330 des empfangenden Rechners sendet:
$ send() {j=$*; tar cpz ${j/%${!#}/}|nc -w 1 ${!#} 51330;} $ send dir* namedesrechners.de
Erklärung der Bashparameter:
- ${!#} gibt den letzten Parameter (den Hostnamen) zurück,
- Im Beispiel namedesrechners.de
- ${j/%${!#}/} die übrigen (Liste der Dateien oder Verzeichnisse).
NFS Server starten
BearbeitenAuf dem Suserechner können Sie nfs am besten mit Yast in Gang setzen.
Die NFS-Freigaben werden unter Linux serverseitig meist in der Datei /etc/exports festgelegt. Der Client kann eine Freigabe manuell mounten oder ggf. mit einem Eintrag in der /etc/fstab automatisieren.
Links zu nfs
BearbeitenNamen statt Nummern
BearbeitenIn der Datei /etc/hosts können Sie ihren Rechnern Namen statt der Nummern vergeben. Die Datei muß auf allen Rechnern den gleichen Adressen die gleichen Namen zuweisen.
Schauen Sie sich diese Datei mit cat an
cat /etc/hosts
Editieren Sie die Datei mit dem Editor joe oder einem anderen Editor und vergeben Sie ihre Namen. Schreiben Sie die Namen in die letzten Zeilen von hosts. Das müssen Sie auf jedem der 3 Rechner so machen.
joe /etc/hosts
Beispiel
192.168.0.1 alt.site alt 192.168.0.2 suse.site suse 192.168.0.3 laptop.site laptop
Versuchen Sie jetzt einmal mit den Namen zu pingen.
ping alt.site ping suse.site ping laptop.site
Fernbedienung erlauben
BearbeitenAuf vielen Linuxrechnern mit KDE findet sich das Programm krdc
- Verbindung zu Fremdrechner
- Start mit
krdc -caption "%c" %i %m
und
- Arbeitsfläche freigeben
- Start mit
krfb -caption "%c" %i %m
Versuchen Sie mit diesen beiden Programmen, die Fernsteuerung eines Rechners über einen zweiten Rechner in Gang zu bringen. Eventuell müssen Sie die Übertragungsgeschwindigkeit herabsetzen.
Crossover Kabel
BearbeitenUm zwei Rechner ohne Router mit einem Ethernet Kabel zu verbinden, braucht man ein sogenanntes Crossover-Kabel. Dieses gedrehte Kabel wird in die Stecker ( RJ45 ) der Netzkarte der beiden Rechner gesteckt. Der Rest funktioniert ähnlich wie für die drei Rechner beschrieben.