Galileo Computing < openbook >
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung
Galileo Computing - Bücher zur Programmierung und Softwareentwicklung


'Wie werde ich Unix-Guru' als Buch bestellen
A. Willemer
Wie werde ich UNIX-Guru
I  ANWENDUNG
Know-How für Unix/Linux-User: Einführung, Shell, Befehle, Hilfe, Arbeit mit Dateien, Editoren, Reguläre Ausdrücke, nützliche Tools, Hardware.

II  ADMINISTRATION
Tools, Systemstart, Benutzer verwalten, Hardware konfigurieren, Software installieren, Datensicherung, Tuning, Kernel

III  NETZWERK
Client/Server Systeme, TCP/IP, Routing, IPv6, Internet-Dienste, DHCP, Webserver, Firewalls

IV  DAS X-WINDOW SYSTEM
Die grafische Oberfläche von UNIX einrichten und nutzen

V  PROGRAMMIERUNG VON SHELLSKRIPTEN
Automatisieren von Tasks durch Shell-Skripte.

VI  PERL
Interpreter, Syntax, Variablen, Steuerung, Funktionen, UNIX-Aufrufe, GUIs mit Tk

VII  PROGRAMMIERWERKZEUGE
C-Compiler, Analyse-Tools, CVS, yacc, diff

VIII  UNIX-SYSTEMAUFRUFE
UNIX-Befehle in eigenen Programmen nutzen

IX  LITERATUR
Weiterführende Literatur zu UNIX und LINUX

 
Galileo Computing / <openbook> / "Wie werde ich UNIX-Guru ?"
« TCP/IP, der Standard TCP/IP, der Standard Das Prüftool ping »

Unterabschnitte
  • Netzwerkklasse und Netzmaske
  • Freie IP-Nummern
  • Grundeinstellungen des Netzadapters: ifconfig
  • Dauerhaftes Einstellen der IP-Nummer

Die TCP/IP-Nummer

Die TCP/IP- oder Internetnummer ist eine 32-Bit Zahl, die die Netzwerkschnittstelle eines Computers im Netz eindeutig bestimmt. Der erste Teil der Nummer bezeichnet das Netz, in dem der Computer sich befindet, der zweite Teil den Computer selbst. Alle Computer, die direkt miteinander verbunden sind, gehören zum gleichen Netz und haben die gleiche Netzkennung in ihrer Internetnummer. Wie Sie mit einem Computer kommunizieren können, der eine fremde Netzkennung hat, wird beim Thema Routing (siehe ab S. routing) behandelt. Ohne besondere Maßnahmen reagiert der Computer auf den Versuch, auf eine fremde Netzadresse zuzugreifen mit der Fehlermeldung »no route to host«.



Der hintere Teil der Internetnummer ist die Adresse des Computers im Netz. Um genau zu sein, ist es die Kennung des Netzwerkadapters des Computers. Da aber die meisten Computer nur einen Adapter haben, soll der einfacheren Lesbarkeit halber auch weiter von Computern die Rede sein. Jeder Adapter muss eine eigene Nummer haben. Mehrere Rechner mit gleicher Hostkennung führen in größeren Netzen zu schwer auffindbaren Fehlern.

Die Grenze zwischen Netzkennung und Hostkennung liegt normalerweise auf einer Bytegrenze. Darum wird für IP-Nummern eine byteweise Darstellung gewählt. Da Dezimalzahlen am einfachsten zu lesen sind, schreibt man jedes der vier Byte einer IP-Adresse dezimal auf und trennt sie durch einen Punkt. Beispielsweise hat mein Arbeitsplatzrechner in meinem heimatlichen Netzwerk die TCP/IP-Nummer 192.168.109.144. Hexadezimal ergibt dies C0 A8 6D 90. Wieder als ganze Zahl geschrieben lautet die Nummer 3232263568. Mein Macintosh hat die Adresse 192.168.109.25 oder hexadezimal C0 A8 6D 19 und damit 3232263449.

[Verschiedene Darstellungen von IP-Nummern]L|L|L Darstellung & Arbeitsplatz & Macintosh
dezimal & 3232263568 & 3232263449
hexadezimal & C0 A8 6D 90 & C0 A8 6D 19
dotted decimal & 192.168.109.144 & 192.168.109.25

Netzwerkklasse und Netzmaske

Wie schon ausgeführt, kennzeichnet die IP-Nummer den Rechner bzw. dessen Netzadapter und das Netzwerk, in dem sich der Rechner befindet. Im Beispiel meines Netzes ist offensichtlich 192.168.109 bei beiden Rechnern gleich. Und tatsächlich benennen die ersten drei Byte in diesem Fall das Netz und das letzte Byte den Rechner. Man sollte also denken, ich könnte in mein Hausnetz maximal 256 Rechner einbinden, da ein Byte die Werte von 0 bis 255 annehmen kann. Allerdings sind die 0 und die 255 für andere Zwecke reserviert, so dass ich mit 254 Rechnern in meinem Arbeitszimmernetz auskommen muss.

Welcher Teil der IP-Nummer zum Host und welche zum Netzwerk gehört, wird durch die Netzmaske bestimmt. Die Maske ergibt sich zunächst aus der Netzklasse, zu der die IP-Nummer gehört. Die Netzklasse wiederum wird durch die ersten Bits des ersten Bytes der IP-Nummer bestimmt.

Ist das erste Bit 0, gehört die Adresse zu einem Class A Netz. Betrachtet man das erste Byte in binärer Darstellung, schaut sich also die einzelnen Bits an, so entscheidet das erste Bit darüber, ob die Zahl größer oder kleiner als 128 ist. Ist das erste Byte einer Netzwerkadresse kleiner oder gleich 127, gehört sie als zu einem Class A Netz. Class A Netze haben eine Netzmaske von 255.0.0.0.

Warum heißt nun diese Zahl Netzmaske und warum ist sie im ersten Byte 255? Mit der Netzmaske und der UND-Verknüpfung kann man den Netzanteil einer IP-Adresse herausfiltern. UND ist ein logischer Ausdruck auf Binärebene, die genau dann 1 ergibt, wenn beide Operanden 1 sind. Um das an einem Beispiel zu demonstrieren, wird die Class A Netzadresse 10.3.4.7 mit der Netzmaske 255.0.0.0 gefiltert.

Adresse:
dezimal     10       3        4        7
binär       00001010 00000011 00000100 00000111

Netzmaske:
dezimal     255      0        0        0
binär       11111111 00000000 00000000 00000000

Adresse     00001010 00000011 00000100 00000111
Netzmaske   11111111 00000000 00000000 00000000
 UND      -------------------
Ergebnis    00001010 00000000 00000000 00000000
dezimal     10       0        0        0

Durch die Verknüpfung UND von Adresse und Netzmaske wird der Netzanteil der Adresse »herausmaskiert«. Der Netzanteil heißt hier 10.0.0.0. Das erste Byte ist die Netzadresse und der Rest die Adresse des Netzadapters.

Die 192 ist binär 11000000. Alle Werte, die kleiner als 192 sind, beginnen mit der Bitkombination 10 und gehören zu einem Class B Netz. Die Netzmaske im Class B Netz ist 255.255.0.0, also sind die ersten zwei Byte der Anteil der Netzadresse und der Rest ist die Rechneradresse.

Die Nummern 224-255 im ersten Byte sind reserviert und dürfen nicht als Netzwerknummern verwendet werden. Dies sind die IP-Nummern, die mit drei Einsen beginnen. Das erste Byte in einem Class C Netz beginnt mit der Bitkombination 110 und liegt zwischen 192 und 223 (also auch mein Hausnetz). Es hat die Netzmaske 255.255.255.0 und hat damit 3 Byte für die Netzkennung und ein Byte für die verschiedenen Computer.

Bei einem größeren Unternehmen könnte ein Class B Netz mit den Nummern 128-191 schon sinnvoller sein, da hier ca. 16000 Computer im Netz sein können. Richtig viele Computer passen in ein Class A Netz. Allerdings gibt es von diesen nur 128.

[Zahlen in den Klassen]L|R|R|R|R|L & Anzahl Bits & Anzahl & Anzahl Bits & Anzahl der & Kennungen
& für Netze & der Netze & für Hosts & Hosts & des ersten Byte
Class A & 7 & 128 & 24 & 16777216 & 1-127 (0xxxxxx)
Class B & 14 & 16384 & 16 & 65536 & 128-191 (10xxxxxx)
Class C & 21 & 2097152 & 8 & 256 & 192-223 (110xxxxx)

Die Nummer einer Station darf weder alle Bits der Host-ID 1 oder 0 haben. Alle Bits 1 ist die Broadcast-Adresse des Netzes. Ein Paket an diese Adresse wird von allen Rechnern des Netzes gelesen. Sind alle Bits 0, bezeichnet diese Adresse das Teilnetz. Dies wird beispielsweise beim Routing so verwendet.

Wenn also zwei oder mehrere Rechner in einem lokalen Netz direkt miteinander verbunden werden sollen, müssen folgende Dinge gewährleistet sein:

  1. Der Netzwerkteil der IP-Nummern muss gleich sein.
  2. Die Hostnummern der Rechner müssen sich unterscheiden.
  3. Die Hostnummer darf weder 0 noch 255 betragen.

Freie IP-Nummern

Für jede Klasse wurde in RFCRFC ist die Abkürzung für Request For Comment, übersetzt etwa: Bitte um Kommentare. Die RFC stellen so etwas wie die Norm des Internets dar. 1597 ein Bereich von Nummern definiert, der im Internet nicht weiter transportiert wird. Eine solche Nummer sollte für lokale Netze verwendet werden, sofern keine eigenen internetfähigen IP-Nummer reserviert worden sind.Internetfähige IP-Bereiche können von einem Internetprovider für die eigene Organisation reserviert werden. In Deutschland ist dafür das Europäische RIPE in Amsterdam zuständig (http://www.ripe.org), das hierfür aber einen ausführlichen Antrag mit Begründung des Bedarfs von heute bis in drei Jahren verlangt. Anders ausgedrückt heißt das, dass diese Nummern beliebig oft in der Welt verwendet werden können. Da solche Pakete im Internet nicht weitergeleitet werden, macht es gar nichts, wenn noch jemand anderes genau die gleichen Netzwerkadressen für sein Hausnetz verwendet.

[Die freien IP-Nummern]L|L Klasse & Nummernkreis
Class A & 10.0.0.0
Class B & 172.16.0.0 bis 172.31.0.0
Class C & 192.168.0.0 bis 192.168.255.0

Wenn eine kleine Firma für ihr internes TCP/IP-Netz IP-Nummern vergeben will, sollte sie sich unbedingt Adressen aus einem dieser Bereiche aussuchen. Da keine dieser Nummern im Internet vorkommt, gibt es auch keinen Web-, FTP- oder E-Mailserver mit einer solchen Adresse. Damit ist immer eindeutig, ob mit einer Adresse ein Rechner im lokalen Netz oder ein Server im Internet angesprochen wird. Es können auch durch eigene Adressen keine Internetadressen ausgeblendet werden. Ein zweiter Grund betrifft die Sicherheit gegen Angriffe aus dem Internet. Da diese Nummern im Internet nicht geroutet werden, kann ein Angreifer die Rechner des Netzes kaum direkt erreichen. Er kann ja die Adresse des Rechners nicht durch das Internet schleusen, da dieses nach RFC 1597 dort nicht transportiert wird.

Grundeinstellungen des Netzadapters: ifconfig

Mit dem Befehl ifconfig kann die Internet-Adresse jeder Schnittstelle festgelegt werden. Das funktioniert auch im laufenden Betrieb. Für das Umstellen der IP-Nummer ist also unter UNIX kein Reboot erforderlich. Allerdings hängen an der IP-Nummer oft einige andere Konfigurationen. Der Aufruf von ifconfig hat folgende Struktur:

ifconfig Netzadapter IP-Nummer

ifconfig erwartet als ersten Parameter die Bezeichnung des Netzadapterdevices. Dabei wird allerdings der Pfadname /dev weggelassen. Die Namen dieser Gerätedateien unterscheiden sich je nach System.

[Namen für den ersten Netzwerkadapter]L|L System & Interfacename
SCO: & Je nach Hardware 3b0, wdn0 und so weiter
OS/2 ftp PCTCP: & nd0
Linux: & eth0
Solaris: & le0
FreeBSD: & ed0

Das einzige Device, das auf jeder Maschine den gleichen Namen hat, ist die Loopback-Einheit und heißt lo0. Dieses Pseudodevice verweist auf die eigene Maschine.

Soll mein Arbeitsplatzrechner auf die bereits genannten IP-Adresse umgestellt werden, lautet der Befehl unter Linux:

ifconfig eth0 192.168.109.144

Hier wird der ersten Ethernetkarte die Internet-Adresse 192.168.109.144 zugeordnet.

Der Befehl ifconfig eth0 ohne weiteren Parameter zeigt die aktuelle Einstellung des Interfaces an. Beispiel:

gaston:  # ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:00:E8:59:88:0F
          inet addr:192.168.109.144  Bcast:192.168.109.255 
          Mask:255.255.255.0
          inet6 addr: fe80::200:e8ff:fe59:880f/10 Scope:Link
          inet6 addr: fe80::e859:880f/10 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          Interrupt:5 Base address:0xef40 

Sie finden in dieser Meldung viele Details, die Sie nicht unbedingt verstehen müssen. Aber Sie werden sicher schon einiges wieder erkennen. In der ersten Zeile ist unter HWaddr (Hardware Address) die Ethernetadresse zu sehen. Sie sehen, dass die Broadcastadresse der Netzadresse entspricht und anstelle der Hostadresse 255 ist. Die Netzmaske ist erwartungsgemäß 255.255.255.0. Besonders interessant ist das Wörtchen UP. Es bedeutet, dass dieses Netzinterface aktiv ist. Sie können einen Netzadapter mit dem Befehl ifconfig abschalten. Sie müssen zum Abstellen den zusätzlichen Parameter down angeben. Zur Reaktivierung dient der Parameter up. Beispiel:

ifconfig eth0 down

Dies ist vor allem bei temporären Verbindungen von Bedeutung. Aber es kann auch im Servicefall ganz praktisch sein, eine Maschine schnell mal aus dem Netz zu nehmen.

Wenn es Schwierigkeiten mit der Netzanbindung gibt, kann ein Aufruf von ifconfig mit der Netzschnittstelle als Parameter anzeigen, ob die Schnittstelle aktiv ist. Wenn die Netzwerkhardware nicht korrekt erkannt wird, meldet der Befehl einen IOCTL-Fehler (I/O-Control). Das ist eine Fehlermeldung des Hardwaretreibers. Wie schon im Abschnitt über die Gerätedateien (siehe S. device) erwähnt wurde, ruft UNIX die Treiber mit dem Systemaufruf ioctrl() auf, wenn es Informationen über das Gerät braucht.

Dauerhaftes Einstellen der IP-Nummer

Die IP-Nummer wird normalerweise in einer der rc-Dateien festgelegt. Dazu wird üblicherweise der Befehl ifconfig verwendet. Sie können die entsprechende Stelle leicht finden, indem Sie mit dem Befehl grep nach dem Wort »ifconfig« suchen. Allerdings wird die IP-Nummer unterschiedlich konfiguriert. Auf älteren UNIX-Systemen stand die IP-Nummer direkt hinter dem Aufruf von ifconfig und man hat sie dort im rc-Skript einfach geändert, wenn der Rechner auf Dauer eine andere Adresse haben sollte. Finden Sie an dieser Stelle eine IP-Nummer, können Sie sie bedenkenlos ändern. Steht hinter dem ifconfig eine Umgebungsvariable oder finden sich dort Kommandos zum Auslesen einer Datei, sollten Sie die eigentliche Quelle suchen und die IP-Nummer dort ändern.Wenn Sie an dieser Stelle eine IP-Nummer direkt angeben, funktioniert das natürlich auch. Falls aber jemand anders später versucht, die Nummer auf korrekte Art zu ändern, wird er sich wundern, warum nach jedem Reboot die alte IP-Nummer wieder aktiv ist.

Bei Solaris wird die IP-Adresse über den Hostnamen definiert. Für jeden Netzadapter gibt es eine Datei, die den Namen der Maschine oder besser des Adapters enthält. Beispielsweise steht in der Datei /etc/hostname.le0 der Name sol. Damit erhält der Netzwerkadapter le0 den Namen sol. Zur Bestimmung der IP-Nummer wird sol in der Datei /etc/hosts gesucht. Eine Änderung der IP-Nummer würde also in der Datei /etc/hosts erfolgen.

Unter Linux ist die Art der Bestimmung von der Distribution abhängig. SuSE verwendete dazu bis zur Version 8.0 seine Universalkonfigurationsdatei /etc/rc.config. Im Skript /etc/init.d/network finden Sie den ifconfig, der die Umgebungsvariable IFCONFIG benutzt, die in rc.config definiert ist.

Ab der Version 8.0 verwendet SuSE das Skript /sbin/ifup, um die Netzadapter zu initialisieren. Es wird vom rc-Skript /etc/init.d/network gestartet. Die bisher in der Datei rc.config gesammelten Konfigurationen werden nun im Verzeichnis /etc/sysconfig in mehrere Dateien und Unterverzeichnisse verteilt. Darin findet sich das Verzeichnis network und darin wiederum finden Sie mehrere Dateien, die die Konfiguration der verschiedenen Netzadapter bestimmen. Alle haben den Präfix ifcfg-. Die Datei für den Ethernetadapter heißt ifcfg-eth0 und hat beispielsweise folgenden Inhalt:

BOOTPROTO=none
IPADDR=192.168.109.143
NETMASK=255.255.255.0
BROADCAST=192.168.109.255
NETWORK=192.168.0.0
STARTMODE=onboot

Die hier gesetzten Umgebungsvariablen werden in /sbin/ifup verwendet, um den Ethernetadapter zu initialisieren.

Gewisse Ähnlichkeiten zu der Konfiguration unter der Linuxdistribution von Red Hat sind unverkennbar. Ebenso wie dort sind im Verzeichnis /etc/sysconfig die Konfigurationsdateien zu finden. Bei Red Hat heißt das Unterverzeichnis network-scripts, in dem Sie schließlich die Datei namens ifcfg-eth0 finden, die einen vergleichbaren Inhalt wie bei SuSE hat.

FreeBSD verwendet die Datei rc.config um eine Umgebungsvariable mit den Parametern des ifconfig zu setzen, die beim Booten in der Datei rc.network als Parameter für den Aufruf von ifconfig verwendet wird.

Auf einer unbekannten Maschine ist der Startpunkt der Suche nach der Stelle, wo die IP-Nummer festgelegt wird, der Ort, wo in den rc-Dateien der Befehl ifconfig abgesetzt wird. Dort müssen Sie ermitteln, woher ifconfig seine Informationen bekommt.

Die etwas einfachere Variante dürfte die Verwendung des jeweiligen Administrationstools sein, das auf allen Plattformen eine Möglichkeit zur Einstellung der IP-Nummern anbietet. Eine kurze Übersicht über diese Programme finden Sie ab Seite admintools. Die Tools haben den Vorteil, dass sie eine systemkonforme Einstellung der IP-Nummer gewährleisten.



« TCP/IP, der Standard | TCP/IP, der Standard | Das Prüftool ping »
 
 Zum Katalog
Zum Katalog
Wie werde ich UNIX-Guru?
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 UNIX/Linux

PHP 4-Workshop

Einstieg in Python

Perl fürs Web

MySQL 4

GNOME 2.0
 Empfehlung

Einstieg in XML
 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
Info

 MyGalileo
Der Service für registrierte Leser:
Zu MyGalileo
Info



Copyright © Galileo Press GmbH 2003
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.
[Galileo Computing]

Galileo Press GmbH, Gartenstraße 24, 53229 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, info@galileo-press.de