Title:

A free Basic UNIX-training with muLinux

Home
deutsch
  
ISBN: 3930673576   ISBN: 3930673576   ISBN: 3930673576   ISBN: 3930673576 
 
  Wir empfehlen:       
 
[Back] [Home] [Forward]       http://rowa.giso.de  

A free Basic UNIX-training with muLinux

Notes: This Text is roughly translated (German to English) by a translating program. Sorry, but I have not time for the translation. Maybe you can do this.

Network Introduction

For what do I actually need a network? This question can occur quite if one only one computer without network card and modem has. Or one is situated with its laptop on the green meadow and the next computer is far. Who thinks now however this section not to study not to need, that has itself erred. We learn the network bases with the help of a computer. The magic word is called loopback (English loop = loop, bake = back). It is vorgegaukelt the computer a network, by referring to itself. That has the following advantages for us:
  • We save (for the time being) the configuration of the network card or the modem.
  • This training is still independent thereby of further hardware.
  • We can concentrate better on the hardware-independent areas of the netzwerk-Theorie.
  • We avoid safetyprecarious measures.
  • We save telephone costs.

The OSI reference model

How can it be however that we can implement the network functions without appropriate hardware? This is possible, there communication in Layer (English for layers) is partitioned. These definitions are determined in the OSI reference model (open system Interconnect). The lower layer is defines the hardware, while the upper layer enables direct communication with the user.

Here an attempt, in order to make this understandable. If we maintained with someone need ourselves we a transfer us medium. This is usually air. Air and the audible acoustic vibrations belong here to the lower layer of the OSI model. Naturally we must converse if possible in a language, which the involved ones understand. Into our landing that is usually German or more or less similarly sounding. The language belongs to the upper layer. Here thus a simple model:

   Language: German
   Transfer: Larynx, air oscillations, ears

Nowadays one converses usually more with the help of a Handys (English for griffig, handy - not for radio telephone!) as with that, which sits at the same desk. We look at ourselves now the model:

   Language: German
   Transfer: Larynx, air oscillations, cable, radio, ears

We modified thus the lower layer. The upper layer remains however independent of it. Whereby however the upper layer presupposes the lower. It took place us however perfectly no matter how the technical implementation of the lower layer. This can take place with copper or fiber-optic cable cables, with similar or digital switching centers. As a final user that does not interest us. Only if there are concerning the price differences.

Naturally we can modify also the language, if we speak several languages.

   Language: English
   Transfer: Larynx, air oscillations, ears

If we are not so powerful the language or we want to make sure whether other all this understood, we must inquire for security.

   Language: German
   Acknowledgement: Did you understand?
   Transfer: Larynx, air oscillations, ears

We imagine a meeting and all want to speak. There must be thus a regulation, who may speak. Usually this regulates the versammlungsleiter.

   Language: German
   Switching: They may now speak.
   Acknowledgement: Did you understand?
   Transfer: Larynx, air oscillations, ears

Surely this model did not develop theoretically. That is not also my target. I think it am evident that it is not simple a generally accepted model for all communications to create. Thus much trouble made itself the ISO (international Standardisation organization), in order to develop the OSI model.

   7 Application layer
   6 Presentation layer
   5 Communication control layer
   4 Transport layer
   3 Switching layer
   2 Link layer
   1 Bituebertragungsschicht

This model enables communication by means of different hard and software. The moreover the hard and software developer need to worry only about the layers important for the product. Everyone must adhere natural to the defined interfaces between the layers.

An interface (English INTERFACE) defines transfers. Us a well-known interface is the current plug socket. As the current is made whether with coal, water or nuclear power is us usually (still) all the same. The current supplier is against it most indifferently whether we a lamp or attaches a computer there. Main thing the design of the plug socket and the parameters (220V, 50 cycles per second alternating current) fit.

There are thus also software interfaces. These enable here communication between the layers. Since each layer needs the functioning layer lying under it in each case, the layers give the higher in each case layer to completion notices and. Always the structure of communication takes place upward from down. With a modem one can even hear this structure by the different sounds. With error detection in the network is the knowledge layer model a prerequisite for the containment of the error. We will become acquainted with the appropriate instruction in addition.

We begin in the model from down.

Bituebertragungsschicht (Physical Layer, layer 1)

Here the physical signal transmission is defined. Is made the signal transmission by Koax, optical waveguide cable etc.. That is called e.g. during the electrical transfer the signal levels, the frequency in addition, the mechanical dimensions of the network plugs. It takes place here no error examination. This layer is implemented e.g. by Ethernet.

Link layer (DATA link Layer, layer 2)

This layer enables the safe transfer. The information is packed in addition into data blocks. One speaks also of packages. Since usually several computers the line must divide, no permanent connection between two computers can exist. Therefore one transmits the data in packages. These packages are provided in this layer with check totals, in order to determine and to correct be able possible errors (layer 4). Then the layer must arrange 4 that the appropriate package is still times transmitted. These packages receive specification to the recipient and sender. Thus an addressing becomes only possible.

Switching layer (network Layer, layer 3)

Often several ways or routes (English route) in the network are possible. This lowers the susceptibility to interference. This layer provides for an optimization of the transmission path between the computers. Here is the log IP (Internet Protocol). Additionally the ARP ( address resolution Protocol) and the RARP ( Reverse Adree resolution Protocol) are here settled. The function of ARP/RARP is the conversion of the IP address (see below) in hardware near Ethernetadresse. Each network card has an Ethernet address unique in the world. The Ehternet address is however unfavorable for the direct addressing, since with a change of the network card with all accessing computers corresponding modifications would be to be made. The moreover so also no logical groupings of the computers would be into networks possible.

Transport layer (feed Layer, layer 4)

The transport layer takes over the controlling of the data transfer between target and transmission computers and provides for the correct transfer of the data. In this layer the logs TCP ( Transmission Control Protocol) and UDP ( User Datagram Protocol) are settled. TCP operates connectingoriented and enables by acknowledgements of the packages a safe transfer of the data. The simpler UDP operates against it without acknowledgements. The sender do not point thus whether everything arrived. The error handling is assumed here by the higher layers.

Communication control layer (session Layer, layer 5)

This layer starts up the actual connection between the communication partners. Also safety aspects leave themselves, e.g. the query after passwords, in this layer to consider. Further it plays the role of an arbitrator, which grants or other station the respective transmitting and receipt right. Here the log can be settled TI-RPC (feed Independent Remote Procedure Call).

Presentation layer (presentation Layer, layer 6)

In this layer it is determined that both communication partners speak the same language (e.g. character set ASCII).

Application layer (Application Layer, layer 7)

This layer contains the application programs, e.g. WWW Browser and email Clients.

The TCP/IP model

So, that was again times much theory. The OSI model is a theoretical model and in practice is never consistently applied. Communication in the Internet is based on TCP/IP. These logs are also the standard logs under Unix. Other operation systems (Window 9x/NT and MacOS) understand these logs also. This model actually uses, like all concrete communication protocols, not the entire OSI model. The layers to leave cannot be assigned also exactly the OSI layers.

Here the more practical model with the appropriate logs.

   Applications  
www, ftp, rlogin, mail, NFS, telnet, NFS, dns, samba...
 
   Feed  
TCP              UDP
 
   Network  
IP
 
ARP              RARP
 
   Physically  
loopback ,   hardware (Koax, glass fiber...), Ethernettyp...
 

As one can see, that is in the lower layer loopback settled. If this is installed, the above layers can take up their work, without which the network hardware (network card, modem) was installed and configured. So we can configure all logs and programs of the upper layers and learn to apply. The network hardware configure we later additionally to loopback .

We begin again down:

That loopback Device

*** TRANSLATION ENDS HERE ***

loopback wird wie ein Gerät (engl. device) angesprochen. Für die oberen Schichten ist es kein Unterschied ob sie loopback, eine Netzwerkkarte ein Modem oder eine ISDN-Karte ansprechen. Um zu testen, ob das loopback-Device bereits aktiv ist, dient der Befehl ifconfig. Dieser Befehl kann nur vom Nutzer root ausgeführt werden. Aber wir sind ja bei muLinux root.

ifconfig dient zur Abfrage der Einstellungen und zur Konfiguration der Netzwerk-Interfaces. Jedes Netzwerk-Gerät kann mindestens ein Netzwerk-Interface beinhalten. Netzwerkkarten können z. B. auch mehrere Interface, sprich IP-Adressen (siehe unten), besitzen.

/# ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Bcast:127.255.255.255  Mask:255.0.0.0
          UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
          RX packets:32 errors:0 droped:0 overruns:0
          TX packets:32 errors:0 droped:0 overruns:0
/# _

Wenn wir diese Ausgabe sehen, ist das loopback-Device aktiv. Die weiteren Angaben schauen wir uns etwas später an. ifconfig (interface configuration) wird im Normalfall während des Systemstarts durch Startup-Skripts (muLinux: /etc/rc.4, SuSE:/etc/rc.conf) ausgeführt. Man kann dieses Kommando auch benutzen, um während des Betriebes Änderungen der Netzwerk-Konfiguration vorzunehmen. Wir fahren jetzt das Interface lo herunter (engl. down):

/# ifconfig lo down

ifconfig ohne Parameter zeigt uns was passiert ist:

/# ifconfig
/# _

Kein Device ist aktiv. Zum Aktivieren von lo geben wir folgenden Befehl ein:

/# ifconfig lo up

Der Test beweist es:

/# ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Bcast:127.255.255.255  Mask:255.0.0.0
          UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
          RX packets:0 errors:0 droped:0 overruns:0
          TX packets:0 errors:0 droped:0 overruns:0
/# _

Was bedeuten die angezeigten Informationen von ifconfig?

  • lo loopback-Device. Netzwerkkarten werden mit eth gekennzeichnet.
    • inet addr: Internet Adresse (siehe unten). Diese Adresse ist für loopback immer 127.0.0.1
    • Bcast: Broadcast Adresse. Broadcast (engl. Rundfunk) ist eine Meldung für alles Rechner im Netz.
    • Mask: Netzwerk-Maske. Hiermit wird der Adressbereich und damit die Anzahl der Rechner eines Netzwerkes definiert.
    • MTU: Maximale Größe eines zu übertragenden Pakets über dieses Interface (engl. Maximum Transfer Unit).
    • Metric: Hat bei den gegenwärtigen Linux-Versionen keine Bedeutung.
    • RX packets: Empfangene (engl. received) Pakete.
    • TX packets: Gesendete (engl. transmitted) Pakete.

Wenn eine Netzwerkkarte konfiguriert wurde, wird zusätzlich in etwa folgendes angezeigt.

eth0      Link encap:Ethernet  HWaddr 00:00:E8:C8:5B:3F
          inet addr: 192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:859 errors:0 dropped:0 overruns:0 frame:0
          TX packets:974 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          Interrupt:3 Base address:0x300

Es handelt sich hier um das eth0-Device. Unix-Leute fangen meist von 0 an zu zählen. Eine mögliche zweite Netzwerkkarte wäre dann eth1. Hier ist auch die Hardware-Adresse der Netzwerkkarte zu sehen: 00:00:E8:C8:5B:3F. Diese Zahlenkombination hat die Netzwerkkarte in meinem Rechner. Weiterhin sind die IP-Adresse dieses Interface zu sehen.

Diese Angaben sind sicherlich noch etwas unverständlich. Sie gehören zu dem IP-Protokoll in der nächsten Schicht und werden weiter unten erklärt.

Hinweis:
Bei älteren muLinux-Versionen ist das loopback-Device nicht standardmäßig aktiv. Es muß mit setup -f net | Dummy network? y aktiviert werden. Bei der Linux-Distribution SuSE erfolgt dies mit yast über Administration des Systems | Konfigurationsdatei bearbeiten | START_LOOPBACK = yes.

ARP / RARP

Ich erwähne hier die Protokolle ARP (Adress Resolution Protocol) und das RARP (Reverse Adree Resolution Protocol) der Vollständigkeit halber. Über diese Protokolle werden die Hardware-Adressen zu den IP-Adressen zugeordnet. Diese Zuordnung in dem eigenen Rechner zeigt ja der Befehl ifconfig. Um diese Zuordnung für im Netzwerk angeschlossene Rechner zu erhalten, dient der Befehl arp -a. Dieser zeigt jetzt aber nichts an, da ja noch kein richtiges Netzwerk haben. So, nun aber zu den wichtigen Protokollen.

Das Internet Protocol (IP)

Das Internet Protokoll leitet die Datenpakete, die es von einem Protokoll der höheren Schichten (TCP und UDP) erhalten hat durch das Netzwerk. Dazu müssen die Rechner eindeutig adressierbar sein. Außerdem müssen die Rechner in logische Gruppen (Netzwerke) geordnet sein. Ansonsten würden alle Rechner miteinander reden und keiner würde etwas verstehen. Sicherheitsaspekte könnten so nicht berücksichtigt werden. Bevor wir uns die Adressierungsart anschauen, noch einige Eigenschaften des Internet Protocols.

Eigenschaften

Verbindungslos
Das IP-Protokoll kann nicht sicherstellen, das alle Datenpakete in der Reihenfolge in der sie von der höheren Schicht übergeben wurden bei der Gegenstelle ankommen. Im ungünstigsten Fall nimmt kein Datenpaket einer Übertragung den gleichen Weg zu seinem Ziel. Die Wege (engl. route) der Datenpakete können unterschiedlich sein.
Nicht Vertrauenswürdig
Die Lieferung der Daten an das Ziel kann nicht garantiert werden. Ein Datenpaket kann sich verspäten, in der falschen Reihenfolge ankommen oder verloren gehen. Es erfolgt keine Überprüfung und keine Information an den Sender oder Empfänger. Dies muß in einer höheren Schicht erfolgen (z.B. mit TCP).
Bestmöglicher Transport
Als bestmöglicher Transport wird dieser Übertragungsmechanismus bezeichnet, weil er von sich aus keine Datenpakete löscht. Er macht nur den Versuch die Datenpakete zu übertragen. Ist das darunterliegende Netzwerk dazu nicht in der Lage (fehlerhafte, unterbrochene oder keine Verbindung) so kommt keine Übertragung zustande.

Die Adressierung der Datenpakete

Jeder Rechner in einen Netzwerk muß also (mindestens) eine eine eindeutige Kennzeichnung besitzen. Diese muß strukturierbar sein und natürlich auch von den Rechnern verstanden werden. Computer sind ja nicht intelligent - manche Nutzer hoffen dies vergeblich. Computer verstehen nur Zahlen. Genaugenommen nur die 0 (keine Spannung) und die 1 (Spannung).
Binärzahlen
Ein Zahlensystem, das nur mit Nullen und Einsen auskommt ist das Binärsystem. Unser tägliches Zahlensystem basiert auf der Zehn. Das liegt sicherlich daran, daß wir zehn Finger zum Abzählen haben. Also bei der zehnten Ziffer müssen wir eine Stelle hinzufügen. Die Zahl Zehn ist aber nur durch 2 und 5 teilbar. Besser ist schon die 12. Diese ist durch 2, 3 und 4 teilbar. Sehr gut ist die 60. Diese ist durch 2, 3, 4, 5, 6 und 10 teilbar. Wir verwenden dieses Zahlensystem bei der Uhrzeit (Sekunden, Minuten). Vielleicht hätte uns Gott lieber mit 60 Fingern erschaffen sollen?

Zurück zu den dummen Computern. Diese haben nur die Ziffern Null und Eins. Diese zählen deshalb folgendermaßen:

0        0
1        1
2       10
3       11
4      100
5      101
6      110
7      111
8     1000
9     1001
10    1010
11    1011
12    1100
13    1101
14    1110
15    1111
16   10000

Bei der letzten Stelle folgen die Ziffern Null und Eins abwechselnd. Bei der nächsten Stelle alle zwei Schritte, dann alle vier Schritte, ...

Leider spielt die 10, die unser normales Zahlensystem bestimmt, hier keine Rolle. Alles bezieht sich hier auf die 2, also die beiden Zustände "keine Spannung" und "Spannung". Diese kleinste Speicher-Einheit aus zwei Zuständen wird Bit genannt. Acht Bit sind übrigens ein Byte.

Dieses Prinzip ist so simpel, daß es sogar Computer verstehen. Nur für uns scheint es unpraktisch zu sein. Gott hätte uns lieber mit 2, 4, 8 oder 16 Fingern erschaffen sollen. Wir hätten dann dieses System besser durchschaut. Es bleibt die große philosophische Frage: Warum hat Gott die Computer-Technik nicht vorhersehen können? Oder ist diese Technik vielleicht gar nicht so wichtig? Wir haben aber Glück gehabt, da wir mit zwei Händen erschaffen wurden. Hätten wir drei Hände, würde unser Zahlensystem auf einer ungeraden Zahl basieren.

Wie kann man diese Zahlenkolonnen aus Nullen und Einsen in unser Zahlensystem umwandeln? Sehr einfach geht das mit einem wissenschaftlichen Taschenrechner. Diese gibt es bei den großen Linux-Distributionen als kcalc. Wir können die Umrechnung aber auch im Kopf machen.

Umrechnungsbeispiel:

1011001

      1 * 20 =  1
     0  * 21 =  0
    0   * 22 =  0
   1    * 23 =  8
  1     * 24 = 16
 0      * 25 =  0
1       * 26 = 64
-----------------
               89

Die IP-Adresse
Die IP-Adresse ist 32 Bit lang und dient zur eindeutigen Identifizierung der Quell - und Zielrechner in jedem Datenpaket. Diese Folge von Einsen und Nullen ist nicht sehr übersichtlich.

   10101010101010101010101010101010

Deshalb unterteilt man dieses Monstrum in vier Teile. Die Trennung erfolgt mit Punkten.

10101010.10101010.10101010.10101010

Zur besseren Darstellung wird die IP-Adresse in der Form von vier Dezimalzahlen dargestellt.

10101010.10101010.10101010.10101010
     170.     170.     170.     170

Mögliche Werte sind jeweils von 0 bis 255.

00000000.00000000.00000000.00000000
       0.       0.       0.       0

11111111.11111111.11111111.11111111
     255.     255.     255.     255

So lassen sich theoretisch über 8 Milliarden (233-1 = 8589934591) Rechner adressieren. Tatsächlich verhindert aber die Reservierung von Bereichen für Sonderzwecke sowie die Aufteilung in die wenig flexiblen Netzklassen die Nutzung vieler IP-Adressen.

Es müssen Rechner in logische Gruppen (Netzwerke) verwaltet werden können. Der erste Teil der IP-Adresse dient daher als Netz-Adresse. Der Rest dient als Host-Adresse. Ein Host (engl. für Hausherr, Gastgeber, Haupt-Computer) ist ein Rechner. Es gibt mehrere Klassen von Netzwerken.

Klasse-A-Netz
Beim Klassen-A-Netz erhält das "linkeste" Bit den Wert 0. Die nächsten sieben Bit kennzeichnen das Netzwerk.
0nnnnnnn.xxxxxxxx.xxxxxxxx.xxxxxxxx

So ergeben sich 127 mögliche Klasse-A-Netze:

00000000.xxxxxxxx.xxxxxxxx.xxxxxxxx
       0
01111111.xxxxxxxx.xxxxxxxx.xxxxxxxx
     127
0, 10 und 127 (loopback) entfallen aber für den Internetverkehr, so daß weltweit nur 125 Klasse-A-Netze verkoppelt werden können. Jedes Netz kann bist zu 16777216 Hosts (Rechner) enthalten. Diese Klasse dürfte für den Privatgebrauch nicht geeignet sein.
Klasse-B-Netz
Das Klasse-B-Netz wird durch die Bits 10 am Anfang gekennzeichnet.
10nnnnnnn.nnnnnnnn.xxxxxxxx.xxxxxxxx

Es ergeben sich 16284 Netze mit jeweils 65.534 Hosts.

10000000.00000000.xxxxxxxx.xxxxxxxx
     128        0
10111111.11111111.xxxxxxxx.xxxxxxxx
     191      255

Auch das ist für den Privatgebrauch überdimensioniert.

Klasse-C-Netz
Das Klasse-C-Netz wird durch die Bits 110 am Anfang gekennzeichnet.
110nnnnnn.nnnnnnnn.nnnnnnnn.xxxxxxxx

Es ergeben sich 2097152 Netze mit jeweils 254 Hosts.

11000000.00000000.00000000.xxxxxxxx
     192        0        0
11011111.11111111.11111111.xxxxxxxx
     223      255      255

Dieses Netz ist durchaus für den Privatgebrauch oder für eine kleine Firma geeignet.

Klasse-D-Netz
Das Klasse-D-Netz wird durch die Bits 1110 am Anfang gekennzeichnet. Dieses Netz hat eine Spezialfunktion und wird für einen Rundspruch an bestimmte Rechnergruppen verwendet, einen sogenannten Multicast.
1110mmmm.gggggggg.gggggggg.gggggggg

Es ergeben sich 268435456 Gruppen.

11100000.gggggggg.gggggggg.gggggggg
     224
11101111.gggggggg.gggggggg.gggggggg
     239

Klasse-E-Netz
Das Klasse-E-Netz wird durch die Bits 11110 am Anfang gekennzeichnet. Es dient für zukünftige Reservierungen.
11110rrr.rrrrrrrr.rrrrrrrr.rrrrrrrr

Es ergeben sich 268435456 Varianten.

11110rrr.rrrrrrrr.rrrrrrrr.rrrrrrrr
     240
11110rrr.rrrrrrrr.rrrrrrrr.rrrrrrrr
     247

Dynamische Adressenzuweisung
Feste IP-Adressen muß man beantragen. Da dies auch ein Kostenfaktor ist, gibt es die Möglichkeit IP-Adressen nur zeitweilig zu vergeben. Zum Beispiel sind niemals alle Nutzer eines Online-Dienstes gleichzeitig eingeloggt. Durch die dynamische Zuordnung von IP-Adressen über einen DHCP-Server (Dynamic Host Configuration Protokoll) benötigt man nur so viel Adressen, wie maximal Rechner online sind. Es ergeben sich auch andere Vorteile in der Verwaltung eines Netzwerkes. Die IP-Adressen können zentral verwaltet werden.
Teilnetze
Das Subnetting erlaubt einer Organisation, den Rechnerteil des ihr zugewiesenen Adreßraumes auf mehrere separate und logische Netzwerke zu unterteilen. Dies ermöglicht die Netzwerkmaske (engl. network mask).

Ein Beispiel einer Netzwerkmaske:

11111111.11111111.11111111.00000000
     255.     255.     255.       0

Überall wo eine Eins steht wird der Netzwerkteil der IP-Adresse maskiert. Wo Nullen sind, wird aus der IP-Adresse die Host-Adresse gefiltert.

nnnnnnnn.nnnnnnnn.nnnnnnnn.hhhhhhhh
     255.     255.     255.       0

Beispielsweise wird dann diese IP-Adresse wie folgt aufgeteilt.

     192.     168.       1.       2
|_________________________||______|
        Netz-Adresse       Host-Adr.

Die Netzwerkadresse
Die Netzwerkadresse hat immer die kleinste mögliche Hosts-Adresse in dem Netzwerk. In dem Beispiel wäre das folgende Zahlenkombination:

     192.     168.       1.       0

Diese Adresse kann keinem Rechner zugeordnet werden.

Die Broadcast-Adresse
Die Broadcast-Adresse dient für Mitteilungen an alle Rechner. Diese Adresse ist die letzte Adresse des Netzwerkes. In unserem Beispiel:

     192.     168.       1.     255

Auch dieses Adresse steht für keinen Computer in diesem Netzwerk zur Verfügung.

IP-Adressen für ein lokales Netzwerk
IP-Adressen mit 192.168 am Anfang stehen nur für lokale Netzwerke zur Verfügung. Im Internet dürfen sie nicht auftauchen. Wer ein lokales Netz plant, sollte diese Adressen verwenden. So z. B.:

Netzwerk:   192.168.  1.  0
Netmask:    255.255.255.  0
Broadcast:  192.168.  1.255
erster PC:  192.168.  1.  1
zweiter PC: 192.168.  1.  2
dritter PC: 192.168.  1.  3
...
letzter PC: 192.168.  1.254

Wer ein zweites Netzwerk aufbauen will, verwende als Netzwerk-Adresse 192.168. 2. 0. Natürlich müssen alle anderen Adressen auch eine 2 im dritten Oktett erhalten. Ausgenommen ist die Netzmaske. Diese ist auch hier 255.255.255. 0.

Über Router können dann die Netzwerke untereinander bzw. an das Internet verbunden werden. Die Router sind oft auch Linux-PCs. Sie steuern welche Pakete in das jeweils andere Netz dürfen.

IP-Adresse für das loopback
Der Befehl ifconfig hat uns ja schon die IP-Adresse für das loopback-Interface gezeigt.

/# ifconfig
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Bcast:127.255.255.255  Mask:255.0.0.0
          UP BROADCAST LOOPBACK RUNNING MTU:3584 Metric:1
          RX packets:32 errors:0 droped:0 overruns:0
          TX packets:32 errors:0 droped:0 overruns:0
/# _

Das ich eines Rechner wird also mit 127.0.0.1 adressiert. An Hand der Netzmaske von 255.0.0.0 sehen wir, daß für jedes ich eines Rechner ein Klasse-A-Netz reserviert wurde. Dieser Adressbereich darf auch nur intern verwendet werden.

IP-Test

Um zu testen ob die Schichten bis hier funktionieren, kann der Befehl ping verwendet werden. ping überprüft die Verbindung zu einem Rechner bzw. Interface, gibt Antwort-Laufzeit eines Päckchens an.

Dieser Befehl ist sehr wichtig bei der Erkennung und Beseitigung von Netzwerkfehlern. Dieser Befehl ist auch in dem DOS-Fenster unter Windows vorhanden. Viele Mausschieber kennen ihn nicht. Wenn das Netzwerk nicht funktioniert - dies kann bei Windows öfter auftreten - krauchen manche schon unter dem Tisch herum, um die Netzwerkkabel zu checken. Ein ping auf den anderen Rechner zeigt hier oft eine intakte Verbindung an. Also erspart man sich schon mal den Blick unter den Tisch. Der Fehler muß dann in den höheren Schichten liegen (ZugangsPaßwort, große Netzlast, ...).

Wie sieht ein ordentlicher ping aus? Als erstes pingen wir die IP-Adresse des loopback-Interfaces an.

/# ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=0.2 ms
64 bytes from 127.0.0.1: icmp_seq=1 ttl=255 time=0.1 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=255 time=0.1 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=255 time=0.1 ms
[Strg] [C]
--- 127.0.0.1 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 0.129/0.173/0.289 ms
/# _

Abbrechen kann man den Befehl mit [Strg] [C]. Wie man sieht wurden Pakete empfangen. Alles ist in Ordnung. Einen anderen Rechner können wir ohne Netzwerkkarte oder Modem natürlich nicht anpingen.

Wir können aber einen Fehler simulieren, indem wir das entsprechende Interface deaktivieren. Wir wissen ja schon wie das geht.

/# ifconfig lo down
/# ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
ping: sendto Network is unreachable
ping: wrote 127.0.0.1 64 chars, ret=-1
ping: sendto Network is unreachable
ping: wrote 127.0.0.1 64 chars, ret=-1
ping: sendto Network is unreachable
ping: wrote 127.0.0.1 64 chars, ret=-1
ping: sendto Network is unreachable
ping: wrote 127.0.0.1 64 chars, ret=-1
[Strg] [C]
--- 127.0.0.1 ping statistik ---
4 packets transmitted, 0 packets recived, 100% packets loss
/# _

Das sieht traurig aus. Das Netzwerk ist unerreichbar (engl. unreachable) und von den gesendeten (engl. transmitted) Paketen wurden 0 empfangen (engl. received). Ein Verlust (engl. loss) von 100 %. Wir bringen das schon in Ordnung.

/# ifconfig lo up
/# ping 127.0.0.1
64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=0.2 ms
 ...

TCP bzw. UDP (Transportschicht)

Die beiden wichtigsten Protokolle die in der Transportschicht ihre Arbeit tun, sind das User Datagramm Protokoll (UDP) und das Transmission Control Protokoll. Beide Protokolle setzen auf dem IP-Protokoll auf.

Das UDP stellt ein verbindungsloses Protokoll dar. Es stellt im Gegensatz zum TCP keine Sicherheitsmechanismen zur Verfügung. Der Verlust von Datenpaketen wird den Anwendungsprogrammen nicht mitgeteilt. Ein Erkennen und Beseitigen von solchen Fehlern wird der Intelligenz der Anwendungen überlassen. Aus diesem Grund arbeiten die meisten UDP-Anwendungen nur in kleineren Netzwerken, da bei solch komplexen Netzen wie dem Internet die Wahrscheinlichkeit eines Datenverlustes entschieden größer ist. UDP wird daher seltener als TCP angewendet.

Das Gegenstück zum UDP stellt das TCP dar. TCP stellt eine duplexfähige virtuelle Verbindung her. D.h., das daß TCP-Protokoll einen verbindungsorientierten Dienst zur Verfügung stellt. Am Beginn jeder TCP-Sitzung wird eine Verbindung zwischen den Rechnern aufgebaut. Während der TCP-Sitzung kommt eine Sicherungstechnik mit dem Namen: "positive acknowledgement with transmission" (positive Bestätigung mit Quittung) zum Einsatz. Damit ist es möglich den Verlust von Datenpaketen zu erkennen, und einen Neuversand zu veranlassen. Aus diesem Grund ist das TCP verbreiteter in seinem Einsatzbereich. Gleichzeitig wird durch den erhöhten Verwaltungsaufwand der Overhead jeder Datei entsprechend größer.

Die auf einen System verfügbaren Internet-Protokolle sind übrigens in der Datei /etc/protocols aufgelistet. Diese Datei gibt es auch unter Windows NT (c:\winnt4\system32\drivers\etc\protocol) Diese Datei bedarf normalerweise keiner Änderung.

Port-Nummern

Wenn Anwendungen wie Web-Server und Web-Browser über das Netzwerk kommunizieren, müssen sie sich entweder TCP oder UDP verwenden. Meist ist das TCP. An IP-Pakete kommen sie gar nicht heran, und das aus gutem Grund. Denn IP-Pakete werden an Netzwerk-Hosts, also Rechner, versandt, nicht an Netzwerk-Anwendungen. Wenn mehrere Anwendungen auf einen Host ablaufen, fehlt deshalb die eindeutige Identifikation, also ob ein Paket an den Web-Server oder an den Email-Server gerichtet ist.

Diese Unterscheidung schaffen UDP und TCP durch die Einführung der sogenannten Ports, (engl. für Hafen, Öffnung), die durch eine 16-Bit-Zahl verkörpert werden. Genau wie IP-Pakete vor dem eigentlichen Nutzdaten einen Kopf tragen, erhalten auch UDP- und TCP-Pakete einen solchen Vorspann. Die wichtigste Information darin: der Port bei den ein Paket beim Empfänger gehen soll, und der Port, von dem es stammt. Trifft ein UDP- oder TCP-Paket ein, kann die Netzwerksoftware an der Portnummer genau erkennen, zu welcher Anwendung es gehört, und die Daten dorthin weiterleiten.

Die Portnummern zwischen 0 und 1024 sind bekannten Diensten wie ftp oder www fest zugeordnet. Wenn man eine WWW-Adresse eingibt wie http://www.linux.org, weiß der der Browser dadurch bereits, daß er sich an den Port 80 des Rechners wenden muß. Mann kann aber auch http://www.linux.org:80 schreiben.

Hier einige Ports.

  Anwendungen  
 ftp-Daten ftp telnet smtp  dns   www
  Transport
     20     21   23    25    53   80
 
TCP              UDP
  Netzwerk  
  Physikalisch  

Die Datei /etc/services listet alle Netzwerkdienste mit deren Port-Nummern auf. Diese Datei gibt es auch unter Windows NT (c:\winnt4\system32\drivers\etc\services).

/# less /etc/services
tcpmux              1/tcp                   # rfc-1078
echo                7/tcp
echo                7/udp
discard             9/tcp   sink null
discard             9/udp   sink null
systat             11/tcp   users
daytime            13/tcp
daytime            13/udp
netstat            15/tcp
qotd               17/tcp   quote
chargen            19/tcp   ttytst source
chargen            19/udp   ttytst source
ftp-data           20/tcp
ftp                21/tcp
telnet             23/tcp
smtp               25/tcp   mail
time               37/tcp   timserver
time               37/udp   timserver
rlp                39/udp   resource        # resource location
name               42/udp   nameserver
whois              43/tcp   nicname         # usually to sri-nic
domain             53/tcp
domain             53/udp
mtp                57/tcp                   # deprecated
bootps             67/udp                   # bootp server
bootpc             68/udp                   # bootp client
tftp               69/udp
rje                77/tcp
finger             79/tcp
www                80/tcp   http            # WorldWideWeb HTTP
www                80/udp                   # HyperText Transfer Protocol
link               87/tcp   ttylink
supdup             95/tcp                   # BSD supdupd(8)
hostnames         101/tcp   hostname        # usually to sri-nic
iso-tsap          102/tcp
x400              103/tcp                   # ISO Mail
x400-snd          104/tcp
csnet-ns          105/tcp
pop-2             109/tcp                   # PostOffice V.2
pop-3             110/tcp                   # PostOffice V.3
sunrpc            111/tcp
sunrpc            111/tcp   portmapper      # RPC 4.0 portmapper UDP
sunrpc            111/udp
sunrpc            111/udp   portmapper      # RPC 4.0 portmapper TCP
auth              113/tcp   authentication
sftp              115/tcp
uucp-path         117/tcp
nntp              119/tcp   usenet          # Network News Transfer
ntp               123/tcp                   # Network Time Protocol
ntp               123/udp                   # Network Time Protocol
netbios-ns        137/tcp   nbns
netbios-ns        137/udp   nbns
netbios-dgm       138/tcp   nbdgm
netbios-dgm       138/udp   nbdgm
netbios-ssn       139/tcp   nbssn
NeWS              144/tcp   news            # Window System
snmp              161/udp
snmp-trap         162/udp
exec              512/tcp                   # BSD rexecd(8)
biff              512/udp   comsat
login             513/tcp                   # BSD rlogind(8)
who               513/udp   whod            # BSD rwhod(8)
shell             514/tcp   cmd             # BSD rshd(8)
syslog            514/udp                   # BSD syslogd(8)
printer           515/tcp   spooler         # BSD lpd(8)
talk              517/udp                   # BSD talkd(8)
ntalk             518/udp                   # SunOS talkd(8)
efs               520/tcp                   # for LucasFilm
route             520/udp   router routed   # 521/udp too
timed             525/udp   timeserver
tempo             526/tcp   newdate
courier           530/tcp   rpc             # experimental
conference        531/tcp   chat
netnews           532/tcp   readnews
netwall           533/udp                   # -for emergency broadcasts
uucp              540/tcp   uucpd           # BSD uucpd(8) UUCP service
new-rwho          550/udp   new-who         # experimental
remotefs          556/tcp   rfs_server rfs  # Brunhoff remote filesystem
rmonitor          560/udp   rmonitord       # experimental
monitor           561/udp                   # experimental
pcserver          600/tcp                   # ECD Integrated PC board srvr
mount             635/udp                   # NFS Mount Service
pcnfs             640/udp                   # PC-NFS DOS Authentication
bwnfs             650/udp                   # BW-NFS DOS Authentication
listen           1025/tcp   listener RFS remote_file_sharing
nterm            1026/tcp   remote_login network_terminal
ingreslock       1524/tcp
tnet             1600/tcp                   # transputer net daemon
nfs              2049/udp                   # NFS File Service
irc              6667/tcp                   # Internet Relay Chat
dos              7000/tcp   msdos

Jedes Port öffnet den Rechner und macht ihn zugänglicher. Oft ist das erwünscht und notwendig. Ein Web-Server muß den Port 80 offen haben ansonsten kann keiner HTML-Dateien von ihm anfordern. Jedes offene Port ist aber auch ein potentielles Sicherheitsloch. Es sollten nur nur benötigte Dienste und deren Ports angeboten werden. Es sollten auch nur die entsprechenden Programme dafür installiert sein.

Hacker können aber auch Programme in das System einschleusen, die zusätzliche Ports öffnen. Ein Beispiel ist Subseven (http://subseven.slak.org). Diese Programm ermöglicht die volle Kontrolle über einen Windows9x-Rechner. Viel Spaß!

Viele Internet-Provider bietet als Service die Frontpage-Extensions an. Mit Hilfe des Programm Frontpage soll man dann angeblich sehr schnell Website erstellen können, die sich aber dafür sehr langsam laden lassen. Mit Hilfe der Frontpage-Extensions werden auf dem Webserver zusätzliche Ports geöffnet. Diese weisen erhebliche Sicherheitslücken auf. Mehr dazu unter dieser Adresse: http://www.insecure.org.

Hacker benutzen Port-Scanner, um offene Ports festzustellen. Wir können das auch.

/# nmap 127.0.01
Scanning ports (host 127.0.0.1) wait ...
localhost [127.0.0.1] 113 (auth) open
/# _

Es ist nur das Port zur Autentifizierung offen. Das System scheint also nicht angreifbar zu sein. Das können wir ändern. Wir starten den Telnet-Server (Port: 23). Damit kann sich jeder in unseren Rechner einloggen. Das geht natürlich nur wenn wir eine richtige Netzwerkverbindung haben.

/# setup -f server
Do you want to change server/daemons setup? (y/n): y
Do you want to start XWindow server at any boot? (y/n): Enter
Do you want start atd daemon running? (y/n): Enter
Do you want start RING server running? (y/n): Enter
Do you want start SERIAL server running? (y/n): Enter
Do you want start DIALIN_SERVER running? (y/n): Enter
Do you want start FAX_SERVER running? (y/n): Enter
Do you want start TELNET_SERVER running? (y/n): y
Do you want start INETD_SERVER running? (y/n): Enter
Do you want start VCM_SERVER running? (y/n): Enter

Nun scannen wir die Ports noch einmal.

/# nmap 127.0.01
Scanning ports (host 127.0.0.1) wait ...
localhost [127.0.0.1] 113 (auth) open
localhost [127.0.0.1] 23 (telnet) open
/# _

Unser Rechner ist nun offen wie ein Scheunentor. Jeder könnte sich bei einer bestehenden Netz-Verbindung einloggen, Festplatten mounten oder formatieren ...

Anwendungsprogramme

Wir gehen später noch auf Telnet und anderen Anwendungen wie Email, WWW, ... ein. Wir kommen damit zur obersten Schicht. Als ein Beispiel von möglichen Anwendungen betrachten wir kurz den Namens-Service.

Der Namens-Service

Da die Handhabung der IP-Adressen sehr umständlich ist, hat sich die Einführung eines zusätzlichen Adressverwaltungssystemes notwendig gemacht. Hierbei handelt es sich um das sogenannte Domain-Name-Konzept. Dabei werden den IP-Adressen Domain-Namen zugeordnet. Ein Name wie http://linux.org läßt sich doch weit einfacher merken als http://192.168.1.1, oder? Zur Verknüpfung zwischen IP-Adresse und Domain-Name werden Domain-Name-Server (DNS) eingesetzt. Die Herstellung dieser Verknüpfung erfolgt meist in mehreren Stufen. So wird die Adresse von XXX@AAA.BBB.de wie folgt ermittelt. Zuerst geht eine Anfrage an den ".de"-DNS. Dieser schickt eine Anfrage an den BBB-Server. Vom BBB-Server bekommt er dann im Normalfall die vollständige IP-Adresse übergeben.

/etc/hosts

Wir können noch nicht auf einen Domain-Name-Server zugreifen. In kleinen Netzen ist dieser auch oft nicht verfügbar. Um trotzdem die Namen auflösen zu können, dient die Datei /etc/hosts. Diese enthält pro Zeile eine IP-Nummer und ein oder mehrere Host-Namen.

/# less /etc/hosts

Wir sehen, daß sie die Nummer 127.0.0.1 unter anderem mit localhost auflöst. Damit können wir lokalen Rechner auch folgendermaßen anpingen:

/# ping localhost

Wenn wir ein Netzwerk einrichten, können wir jeder vergebener IP-Adresse hier mindestens einen Rechner-Namen zuordnen. Allerdings müssen wir dies auf jeden Rechner tun. Eine zentrale Verwaltung gibt es nur mit einem DNS-Server. Unter Windows gibt es übrigens auch hosts-Dateien.

Wir können unserem loopback-Interface auch noch einen anderen Namen geben.

/# vi /etc/hosts

Wir ergänzen die Zeile 127.0.0.1 localhost me

127.0.0.1 localhost me meinpc

Jetzt können wir auch meinpc anpingen.

/# ping meinpc

 
Na, das wa doch nicht sooo kompliziert. Oder?

[Back] [Home] [Forward]      
Robert.Warnke@giso.de (copyleft) Robert Warnke, Berlin (Germany) | http://rowa.giso.de
  
Linux in a Nutshell (Broschiert)
von Jessica Perry Hekman
Siehe auch:
Linux kurz und gut.
von Daniel J. Barrett
Linux Kochbuch. Praktischer Rat für Anwender und Systemadministratoren
von Carla Schroder
Linux -- Installation, Konfiguration, Anwendung (Jubiläumsausgabe mit 2 DVDs: SUSE 10.1 und Knoppix 5.0)
von Michael Kofler
Linux - das distributionsunabhängige Handbuch, inkl. BSD
von Johannes Plötner
 
    
     

Back to the topic site:
StudyPaper.com/Startseite/Computer/Informatik

External Links to this site are permitted without prior consent.
   
  Home  |  deutsch  |  Set bookmark  |  Send a friend a link  |  Copyright ©  |  Impressum