Linux-Praxisbuch/ Mininetz

Aus Wikibooks
Zur Navigation springen Zur Suche springen

Einleitung[Bearbeiten]

Unter 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[Bearbeiten]

In allen drei Rechnern sind Netzkarten vorhanden und die Rechner sind mit dem Router über die richtigen Ethernetkabel verbunden.

Überprüfung der Netzkarten[Bearbeiten]

Die 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[Bearbeiten]

Dies 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[Bearbeiten]

Damit 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[Bearbeiten]

Der 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[Bearbeiten]

Die 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[Bearbeiten]

Jetzt kann man die einzelnen Rechner "pingen" und die Verbindung überprüfen.

Zum Abbrechen des Pings jeweils Strg+C drücken.

Rechner 1[Bearbeiten]

ping 192.168.0.2

und

ping 192.168.0.3

Rechner 2[Bearbeiten]

ping 192.168.0.1

und

 ping 192.168.0.3

Rechner 3[Bearbeiten]

 ping 192.168.0.1

und

 ping 192.168.0.2

Das Pingen funktioniert zur Zufriedenheit.

Netcat Einfache Dateiübertragung[Bearbeiten]

Netcat bietet gegenüber dem Befehl telnet den Vorteil der problemloseren Kommunikation.

Beispiel mit zwei vernetzten Rechnern[Bearbeiten]

Der 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)[Bearbeiten]

netcat -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)[Bearbeiten]

cat 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?[Bearbeiten]

Auf 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[Bearbeiten]

Es 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[Bearbeiten]

Auf 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[Bearbeiten]

Wikipedia hat einen Artikel zum Thema:

Namen statt Nummern[Bearbeiten]

In 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[Bearbeiten]

Auf 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[Bearbeiten]

Um 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.

Links zum Thema[Bearbeiten]