IP-Adressen

> Linux Netzwerke

> > # Der Aufbau von IP-Adressen

> > ### Das IP-Adressen Format

> > Jeder Rechner im Netz hat eine (Host) oder mehrere (Gateway) eindeutige IP-Adressen. Dabei handelt es sich um die Adressen, die in den IP-Datagrammen angegeben werden. Aus der Aufteilung des IP-Datagramms geht schon hervor, dass diese Adressen 32 Bit breite Zahlen sind. In der Regel werden diese Zahlen in vier Oktetts dargestellt.

> > Die hexadezimale IP-Adresse `954C0C04` wird also in seine vier Oktetts (Bytes) aufgeteilt, die durch Punkte getrennt werden. Dadurch entsteht hexadezimal `95.4C.0C.04` oder die bekanntere, dezimale Form: `149.76.12.4`

> > IP-Adressen werden zentral vergeben, das heißt, es sollten nicht einfach beliebige Kombinationen verwendet werden. Im Prinzip ist es in reinen lokalen Netzen möglich, beliebige Adressen zu benutzen, sobald ein Anschluß ans Internet besteht, müssen aber zentral vergebene Adressen benutzt werden. Jedes Land der Erde unterhält dazu ein NIC (Network Information Center), das für die Adressvergabe zuständig ist.

> > ### Netz- und Hostadressen

> > Die Aufteilung der IP-Adressen in vier Oktette hat noch einen anderen wesentlichen Grund. Das Internet besteht zum großen Teil nicht aus vernetzten Einzelrechnern, sondern aus Computernetzen, die miteinander über das Internet kommunizieren können. Die IP-Adresse ist immer aufgeteilt in eine Netz- und eine Hostadresse. Diese Eigenschaft spielt für das Routing eine wesentliche Rolle, weil immer davon ausgegangen werden kann, dass IP-Adressen mit der gleichen Netzadresse im lokalen Netz sind.

> > Je nachdem, welcher Teil der Gesamtadresse als Netz- und welcher als Hostadresse gilt, entstehen unterschiedliche Obergrenzen für die mögliche Anzahl von Netzen bzw. Hosts pro Netz. Weil ja alle Adressen im Internet einmalig sein müssen, kommt es heute bereits zu Engpässen bei der Adressvergabe. Ein neuer Standard (IP6) ist schon in Arbeit, der dann 64 Bit breite Adressen verwenden soll.

> > Die Frage, welcher Teil der Adresse Netzadresse ist wird durch Adressklassen gelöst. Es existieren fünf Klassen, von denen aber nur drei relevant sind, die anderen beiden dienen der Forschung und Experimentierarbeit. Die Klassen sind:

> > Netz klasse | Netzadressen breite | Hostadressen breite | Max Anzahl Netze | Max Anzahl Hosts/Netz | Startadresse | Endadresse
> > --- | --- | --- | --- | --- | --- | ---
> > A | 1 | 3 | 126 | 16777214 | 1.0.0.0 | 126.0.0.0
> > B | 2 | 2 | 16382 | 65534 | 128.0.0.0 | 191.255.0.0
> > C | 3 | 1 | 2097150 | 254 | 192.0.0.0 | 223.255.255.0

> > Die Adressen von 224.0.0.0 bis 255.255.255.255 sind für zukünftige Verwendungen reserviert, werden aber wohl nie zur Geltung kommen, weil demnächst das IP6 kommen wird.

> > Um Konflikte mit lokalen TCP/IP Netzen und dem Internet zu vermeiden, gibt es für jede Klasse einige Adressen, die nicht im Internet geroutet werden. Sie sind ausschließlich für lokale Netze gedacht und sollten auch immer Verwendung finden, wenn es um die Frage der IP-Adressen geht und kein echter Internetanschluß vorliegt. Diese Adressen sind:

> > Klasse A
> >   10.0.0.0
> > Klasse B
> >   172.16.0.0 bis 172.31.0.0
> > Klasse C
> >   192.168.0.0 bis 192.168.255.0
> > Sicher erkennen Sie hier auch unsere verwendete Netzadresse wieder, hier lag der Grund für die Entscheidung für die Adresse `192.168.200.0`. Daraus geht hervor, dass wir also ein Klasse-C Netzwerk betreiben und so maximal 254 Rechner anschließen könnten.

> > ### Spezielle Adressen

> > Die Adressen, deren Hostnummern alle auf 0 oder alle auf 255 gesetzt sind haben eine Sonderbedeutung. Alle auf Null gesetzt meint das jeweilige Netz selbst, alle auf 255 gesetzt meint alle angeschlossenen Hosts. So bedeutet die Adresse `149.76.255.255` nicht eine bestimmte Adresse im Netz `149.76.0.0` sondern alle Rechner, die an diesem Netz hängen (Broadcast Adresse)

> > Es gibt auch zwei reservierte Netzadressen mit Sonderbedeutung. Das sind die Adressen `0.0.0.0` und `127.0.0.0` Die erste ist die sogenannte default route (voreingestellte Route) und die andere das sogenannte Loopback.

> > Das Netz `127.0.0.0` bedeutet intern im Netz immer das lokale Netz, egal welche reale Adresse es hat. Gewöhnlich steht dann auch noch die Adresse `127.0.0.1` als loopback interface des jeweiligen Hosts zur Verfügung. Jedes Paket, das darauf ausgegeben wird kommt sofort wieder an, als käme es aus einem Netz. Damit kann z.B. Software entwickelt werden, für Netze, auf einem Rechner, der nicht an eins angeschlossen ist.

> > Die Adresse `0.0.0.0` hat eine Bedeutung für das Routing. Jedes Datagramm, das an eine Adresse geschickt wird, die nicht im lokalen Netz liegt, wird an die default route geschickt. Diese voreingestellte Route weist dann zum nächsten Gateway, der schon wissen wird, wohin er das Paket senden soll. Falls er keine Route kennt, die zum entsprechenden Ziel führt, so hat auch er eine default route, an die er das Paket dann schickt...

> > ### Subnetze und die Netmask

> > Ein Teil der Host Adresse kann auch intern als Subnetzadresse gewertet werden um große Netze nochmal zu trennen. So kann also der Host mit der Nummer `12.4` im B--Klasse Netz `149.76` auch uminterpretiert werden, in den Host Nummer `4` im Subnetz `12` des Netzwerks `149.76.` Welche Bits der 32 Bit Adresse als Netz- und welche als Hostadresse gewertet werden wird in der sogenannten Netzmaske festgelegt.

> > Die Netzmaske (Netmask) ist wie die Adresse eine 32 Bit Zahl, die in vier Oktetts aufgeteilt ist. Jedes Bit dieser Maske, das gesetzt ist (1), bestimmt dass das entsprechende Bit in der Adresse ein Teil der Netzadresse ist. Zum Verständnis am Besten mal ein Beispiel:

> > Die B-Klasse Adresse 149.76.0.0 wird normalerweise gewertet als Adresse, deren erste 2 Bytes als Netzadresse gelten, und deren letzte 2 Bytes als Hostadresse. Die Netmask würde also einfach berechnet:

> >                         Netzadresse       Hostadresse
> >       149.76.0.0 --> 10010101.01001100.00000000.00000000
> >       Netmask        11111111.11111111.00000000.00000000
> >                  --> 255.255.0.0

> > Wollen wir jetzt dieses Netz in mehrere Unternetze aufteilen, so können wir z.B. das dritte Byte als Unternetzadresse und das letzte Byte als Hostadresse werten. Für die Netmask käme folgendes Bild heraus:

> >                              Netzadresse        Hostadresse
> >       149.76.0.0 --> 10010101.01001100.00000000.00000000
> >       Netmask        11111111.11111111.11111111.00000000
> >                  --> 255.255.255.0

> > Schwieriger wird es, wenn wir etwa ein C-Klasse Netz in weitere Unternetze aufteilen wollen. Hier muß dann jede Adresse errechnet werden, je nach der Aufteilung. Die Netmask wäre dann entsprechend auch nicht mehr nur 255 sondern würde sich aus anderen Zahlen zusammensetzen. Nochmal ein Beispiel:

> > Unser C-Klasse Netzwerk `192.168.200.0` soll in zwei Unternetze aufgeteilt werden. Um zwei Netze anzusprechen genügt uns ein Bit der Hostadresse für die Subnetzangabe:

> >                                               Subnetzbit
> >                                                    |
> >                                Netzadresse         V
> >       192.168.200.0 --> 11000000.10101000.11001000.00000000
> >       Netmask           11111111.11111111.11111111.10000000
> >                     --> 255.255.255.128

> > Statt der üblichen 255.255.255.0 haben wir jetzt also 255.255.255.128 als Netzmaskierung. Damit weiß IP, dass diese Adresse kein normales C-Klasse Netz ist. Allerdings müssen wir jetzt auch bei der Vergabe der einzelnen Rechneradressen aufpassen, dass die verwendeten Zahlen im jeweiligen Netz liegen:

> >       Subnetz 0

> >          Hostadresse 1  -> 00000001
> >                      2  -> 00000010
> >                      3  -> 00000011

> >       Subnetz 1

> >          Hostadresse 129 -> 10000001
> >                      130 -> 10000010
> >                      131 -> 10000011

[ Kurs Hauptseite ] [ Linux-Kurse ] [ Startseite Linux-Praxis ]

© 1999, 2000, 2001 by F. Kalhammer