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 klasseNetzadressen breiteHostadressen breiteMax Anzahl NetzeMax Anzahl Hosts/NetzStartadresseEndadresse
A13126167772141.0.0.0126.0.0.0
B221638265534128.0.0.0191.255.0.0
C312097150254192.0.0.0223.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