IP-Adressen IPv4
Eine IPv4 Adresse besteht aus 32Bit. Ein Bit bezeichnet ein Zeichen aus dem Binärsystem (Dualsystem), was wiederum aus nur 2 Zeichen besteht. Nämlich aus der Zahl 1 und aus der Zahl 0. Also nur ein Ja oder Nein.
Eine IP-Adresse wird von der Computeransicht mit 32 Stellen aus Nullen und Einsen dargestellt. Für uns Menschen wird eine IP-Adresse jedoch in 4 Zahlengruppen zu je 8Bit dargestellt. Die jeweilige Zahlengruppe nennt man Oktett.
(11000000101010001011001000011100) (32 Stellen)
Aufteilung der binären Zahl in 4 Oktette
11000000 10101000 10110010 00011100
Rechnet man die jeweiligen binären Zahlen in das Dezimalsystem um, erhält man die IP-Adressen wie wir sie kennen: z.B. 192.168.178.28
Die größte 8 Bit Zahl in einem Oktett ist 255. Eine 256 würde bereits 9 Bit betragen und kommt in einer IP-Adresse nicht vor, da diese nur auf 4x8 Bit begrenzt ist.
255 = 11111111
256 = 100000000 (kommt in einer IP-Adresse nicht vor)
Umrechnung eines Oktett
Binär-System in das Dezimal-System
Da das Binärsystem nur aus 2 Zahlen (0,1) besteht, kann man es sich auch so vorstellen, dass dieses System wie ein Lichtschalter funktioniert. Das Licht ist bei einer 0 aus und bei einer 1 an.
Zur besseren Verständlichkeit besteht im Beispiel 1 jedes Bit des Oktett (8 Bit) nur aus 1'sen.
Um nun die Binäre Zahl zu erhalten, addiert man einfach alle Zahlen in der Zeile "Wert" zusammen, die zu einem 1'er Verhältnis in Zeile "Bit" stehen.
Beispiel 1
(11111111)
Dezimalwert: 128 + 64 + 32 +16 + 8 + 4 + 2 + 1 = 255
Beispiel 2
(10101000)
Dezimalwert: 128 + 32 + 8 = 168
Beispiel 3
(10110010)
Dezimalwert: 128 + 32 + 16 + 2 = 178
Dezimal-System in das Binär-System.
Dazu ist ein wenig Kopfrechnen angesagt. Wir gehen das folgende Beispiel Schritt für Schritt durch.
Nehmen wir eine Zahl 178 die wir bereits verwendet haben, um den Rechenweg wieder etwas unter Kontrolle zu haben, denn die Lösung steht ja schon oben in Beispiel 3.
Wir fangen mit der linken Spalte an und fragen uns wie oft 128 in die Zahl 178 passt.
Richtig! 1x
Wir schreiben in die Zeile Bit über die Zahl 128 eine 1.
Der Rest von 128 zu 178 ist 50.
Diese Zahl brauchen wir als nächstes.
Wir fragen uns nun, wie oft passt die Zahl 64 in den Rest 50. Ergebnis: 0;
Wir schreiben in die Zeile Bit über die Zahl 64 eine 0.
Da wir immer noch einen Rest von 50 offen haben, fragen wir uns in der dritten Spalte ob die 32 in den Rest 50 passt.
Seit der Erfindung von Mathematik ist es so, deshalb schreiben wir über die 32 eine 1.
50 - 32 = Rest 18.
So geht das bis hinten durch! Wir machen weiter.
Passt der Wert 16 in den Rest 18? Ja!
Dann schreiben über die Zahl 16 eine 1.
18 - 16 = Rest 2.
Jetzt haben wir einen Rest von 2.
Passt der Wert 8 in den Rest 2? Nein!
Dann schreiben wir über die 8 eine 0.
Passt der Wert 4 in den Rest 2? Nein!
Dann schreiben wir über die 4 eine 0.
Passt der Wert 2 in den Rest 2? Ja!
Dann schreiben wir über die 2 eine 1.
Da das Ergebnis wunderbar aufgegangen ist und keinen Rest mehr haben,
werden wir in der letzten Spalte wo der Wert 1 steht eine 0 setzen.
Dezimalwert: 178 ist als Binäre Zahl: 10110010.
Die Struktur einer IPv4-Adresse
Ein IP-Adresse kann man wie mit eine Telefonnummer vergleichen. Bei einer Telefonnummer ist der vordere Bereich die Vorwahlnummer und der hintere Bereich eine Teilnehmernummer.
Bei einer IP-Adresse stellt der vordere Bereich die Netzkennung und der hintere Bereich die Hostkennung dar.
Zu Anbeginn der Zeit als die IP-Adressen in die Welt gerufen wurden, hatte man sich entschieden diese in 3 Klassenbereiche (A,B,C) aufzuteilen. Die Aufteilung einer IP-Adresse kommt daher, weil es Netzwerke gibt in denen sehr viele Computer eingebunden werden.
Es gibt wiederum Netzwerke in denen wenig Computer Platz finden werden, und auch Netzwerke in denen relativ wenig Computer passen.
Bei jeder Klasse erweitert sich dann die Netzkennung um 8Bit, währenddessen sich die Hostkennung um 8Bit verkleinert, so dass es immer noch 32Bit sind.
Die Netzkennung ist der Bereich in der sich die Host befinden und untereinander Daten austauschen können, deshalb muss auch die Netzkennung in einem Netzwerk immer gleich sein.
Die Hostkennung in einem Netzwerk ist jeden einzelnen Host einmalig zugeordnet und darf nicht zwei Mal vorkommen.
Netzkennung und Hostkennung je nach Klassenbereich
Klasse A
126 Netzwerke mit 16.777.214 Computer.
Die Größe der Netzkennung 8 Bit (1 Oktett). Die Hostkennung 24 Bit (3 Oktetten).
Das erste Bit von links im ersten Oktett beginnt mit einer 0 und hat eine Netzkennung von 1-126.
Klasse B
16.384 Netzwerke mit 65.534 Computer.
Die Größe der Netzwerkkennung 16 Bit (2 Oktetten). Die Hostkennung 16 Bit (2 Oktetten).
Die ersten beiden Bit von link im ersten Oktett beginnt mit einer 10 und hat eine Netzkennung von 128 - 191.
Klasse C
2.097.152 Netzwerke mit 254 Computer.
Die Größe der Netzwerkkennung 24 Bit (3 Oktetten). Die Hostkennung 8 Bit (1 Oktett).
Die ersten drei Bit von links im ersten Oktett beginnt mit einer 10 und hat eine Netzkennung von 192 - 223.
Besondere IP-Adressen
Weitere Adressenbereiche die NUR für besondere Zwecke verwendet werden.
Loopbackadresse
Die IP-Adresse 127.0.0.1 dient ausschließlich nur für Testzwecke. Mit dieser IP kann man in der Eingabeaufforderung mit dem Befehl "ping 127.0.0.1" seine Netzwerkkarte auf Funktion überprüfen. Diese wird keinen Computer zugeordnet.
Private IP-Adressen
In all den IPv4 Adressen wurden Adressenbereiche für Private IP Adressen reserviert, der im Internet nicht geroutet werden kann. Teilt man in einen Netzwerk einen dieser Adressbereiche zu, kann man ohne besondere Vorgehensweisen aus dem Internet nicht darauf zugreifen, weil die Router im Internet diesen Adressbereich nicht kennen. Des Weiteren können die gleichen privaten Adressen in anderen privaten Netzen verwendet werden.
z.B.: 192.168.0.1 (Meistens auf dem eigene Router voreingestellt)
APIPA (Automatic Private OP Adressing)
Dann gibt es noch einen Adressenbereich 169.254.0.0 in der Klasse B (Hostkennung der letzten beiden Oktette). Steht kein DHCP-Server zur Verfügung der automatisch die IP-Adressen vergeben würde, können die Computer die auf den automatischen Adressenbezug einer IP-Adresse eingestellt sind, selbst eine IP-Adresse vergeben. z.B.: 169.254.31.27
Wichtige Richtlinien
- (Die Zahl 0 und 127 sind reserviert und dienen NUR für Testzwecke. Diese dürfen nicht verwendet werden.
127.0.0.1: Mit dieser IP kann man in der Eingabeaufforderung mit dem Befehl "ping 127.0.0.1" seine Netzwerkkarte auf Funktion überprüfen - Die Hostkennung darf nicht NUR aus 0 (Binär: 00000000) oder NUR aus 255 (Binär: 11111111) bestehen.
Die Zahl 255 wird ausschließlich für die Broadcast (Rundruf) verwendet. Alle Rechner im Netzwerk empfangen dieselbe Datensendungen und bearbeiten diese.
Die Zahl 0 wird ausschließlich für Router verwendet. - Die Hostkennung darf NUR einmalig im Netzwerk vorhanden sein.
Die Subnetzmaske
Da auch zu jeder IP-Adresse eine weitere 32 Bit Zahlenkombination (Subnetmaske) gehört, kann man in Verbindung mit der Subnetmaske die Netzkennung und die Hostkennung ermitteln.
Eine Subnetzmaske
- Besteht in der Binären-Darstellung aus Einsen gefolgt von Nullen.
- Besteht in der Dezimal-Darstellung aus der Zahl 255 gefolgt von Nullen.
- Die Darstellung von 255.0.255.0 oder 255.255.0.255 gibt es nicht.
Anhand einer Subnetmaske lässt sich bei einer IP-Adresse schnell ermitteln, aus wievielen Bit's die Netzwerkkennung und die Hostkennung besteht.
Eine IP-Adresse ist einer Subnetmaske zugeordnet und stellt ein Klasse C Netzwerk dar.
In allen Feldern (Oktett) wo die 1 übereinander stehen, stellt die Netzkennung dar.
In dem Oktett wo keine 1 übereinander stehen ist die Hostkennung.
Beispiel
255.255.0.0 (Dezimal)
11111111.11111111.00000000.00000000 (Binär)
Berechnung: Anzahl der Netze 2(Anzahl der 1'er)
Berechnung: Anzahl der Hosts 2(Anzahl der 0'er)
Anzahl der Netze 216 = 65536 -2 (Reserviert f. Netzadresse und Broadcastadresse) = 65534 verfügbare Adressen.
Anzahl der Hosts 216= 65536 -2 = 65534 Hosts kommen zum Einsatz.
IP-Adressen, Subnetzmaske vs. Netzmasken
Besteht ein Oktett (8 Bits) nur aus Einsen (11111111), ergibt das die Dezimalzahl 255.
Eine Subnetzmaske der Klasse C würde wie folgt aussehen: 255.255.255.0, da 3 Oktette je 8 Bit einnehmen. Zusammen ist dies dann eine 24 Bit Netzmaske mit einer Hostkennung von 8 Bit.
Im Grundprinzip teilte man in der Regel die Netzkennung immer jeweils um 8 Bit ~ 1 Oktett.
Wird die Netzkennung größer, wird im Gegenzug die Hostkennung kleiner.
Die Klassen
Klasse A
Netzkennung: 8 Bit
Hostkennung: 24 Bit
Kennzeichnung des ersten Bit: 0
Netzwerke: 126
Host: 16.777.214
Klasse B
Netzkennung: 16 Bit
Hostkennung: 16 Bit
Kennzeichnung des ersten Bit: 10
Netzwerke: 16.384
Host: 65.534
Klasse C
Netzkennung: 24 Bit
Hostkennung: 8 Bit
Kennzeichnung des ersten Bit: 110
Netzwerke: 2.097.152
Host: 254
Betrachtet man nun die Adressenbereiche der jeweiligen Klassen etwas genauer, wird man feststellen, dass einige Adressen ausgeschlossen sind. Z.B. 192.168.12.0 kann mit einer Subnetzmaske von 255.255.0.0 nicht verwendet werden, da die IP-Adresse zum Klasse C Netz gehört und die Subnetzmaske zu dem Klasse B Netz zählt.
Um aber eine möglichst große Anzahl der IPv4-Adressen zu nutzen, hat man 1993 ein Verfahren durch das "Classless Inter-Domain Routing" (CIDR) eingeführt, um noch mehr 32 Bit Subnetzmasken zu den damaligen Standard-Subnetzmasken (255.0.0.0, 255.255.0.0, 255.255.255.0) zu erzeugen. Somit kann der IP-Adressenbereich effektiver ausgenutzt werden.
Zur Notation werden sogenannte "Suffixe" angewandt, die die Bitanzahl angibt wieviel Bits in der Netzadressierung verwendet werden. Dies hat unter anderem den Vorteil, dass sich die Dezimal-Schreibform 192.168.12.0 / 255.255.255.0 durch die Notation 192.168.12.0 /24 verkürzt und dasselbe zum Ausdruck bringt.
Dadurch entfällt die feste Zuordnung einer IP-Adresse zur Netzklasse und durch eine Standard-Subnetzmaske. Es existiert nur noch eine Netzmaske die eine IP-Adresse in die Netzkennung und Hostkennung unterteilt. Was früher in 8 Bit Schritten verschoben wurde, wird seit 1993 in 1 Bit-Schritten verschoben.
Beispiel 1
Ermittlung der Netzkennung und Hostkennung. Netzwerk-IP: 192.168.207.8 /18
Die Trennung der Netzkennung und Hostkennung erfolgt im 3. Oktett nach dem 2. Bit.
Die Subnetzmasken-Trennung ebenfalls im 3. Oktett nach dem 2. Bit.
Beispiel 2
Ermittlung der Netzkennung und Hostkennung. Netzwerk-IP: 10.135.129.3 /9
Die Trennung der Netzkennung und Hostkennung erfolgt im 2. Oktett nach dem 1. Bit.
Die Subnetzmasken-Trennung ebenfalls im 2. Oktett nach dem 1. Bit.
Kleine Helferlein
Subnetzmaske anpassen
Durch die Verschiebungen der einzelnen Bits ändert sich die Netzkennung und die Hostkennung. Rückt man um 1 Bit nach rechts, erhöht sich die Netzkennung, die Hostkennung verringert sich.
Rückt man um 1 Bit nach links, verringert sich die Netzkennung, die Hostkennung erhöht sich.
Durch dieses Verfahren trifft man die Entscheidungen, wie am Ende ein oder mehrere Subnetzmasken in einem Netzwerk aussehen soll. Eine Subnetzmaske muss so angepasst werden, dass sich diese an die Anzahl der Hosts anlehnt. Kein Administrator würde eine Klasse B Netz wählen, wenn nur 300 Hosts zur Verfügung stünden.
Vorkenntnisse!
Es ist verankert, dass in einem Klasse C Netz 28 = 256 Adressen zur Verfügung stehen. Abzüglich der niedrigsten Adresse für die Netzadresse und abzüglich der höchsten Adresse für die Broadcastadresse.
Bleiben in einem Klasse C Netz noch 254 verwendbare Adressen für die Hosts.
Ist z.B. gewünscht, dass ein Netzwerk in 5 Teilen aufgeteilt werden soll, dann ist dies nicht möglich. Subnetze können nur mit einer 2'er Potenz gebildet werden: 1,2,4,8,16,32,64…..
Dazu aber mehr in dem nachfolgenden Abschnitt.
Wieviel Hosts passen in ein Netzwerk?
In diesem Abschnitt möchte ich zeigen, wie man eine Netzmaske so anpassen kann, dass nur eine bestimmte Anzahl von Host-Adressen darin Platz finden.
Wir wollen im ersten Beispiel errechnen, wieviel Hosts in ein Netzwerk passen, was mit dem Suffix /24 (Net-ID) gekennzeichnet ist?
Jedem der sich schon mit dem Thema auskennt, weiß eigentlich jetzt schon an der Stelle das Ergebnis. Für die anderen jedoch ist dies die beste Möglichkeit das Grundprinzip zu verstehen.
Beispiel 1
Subnetz: 255.255.255.0 /24
Binär: 11111111.11111111.11111111.00000000
32 Bit (Anzahl der Bit in der Subnetmaske) abzüglich
24 Bit = 8 (Entspricht auch die Anzahl der Nullen)
Wir verwenden hier immer eine Potenz von 2 (Anzahl der freien Bits) = 28
28 = 256 - 2 (Abzüglich der 0 u. 255, die für die Hosts in einem Netz nicht verwendet werden dürfen)
Ergebnis: 254 Adressen für die Hosts
Ergebnis Adressenbereich
Subnetz
Netz-IP: 192.168.1.0 /24
IP f. Host:192.168.1.1 - 192.168.1.254
Broadcast: 192.168.1.255
Beispiel 2
Subnetz: 255.255.252.0 /22
Binär: 11111111.11111111.11111100.00000000
32 Bit (Anzahl der Bit in der Subnetmaske) abzüglich
22 Bit = 10 (Entspricht auch die Anzahl der Nullen)
Wir verwenden hier eine Potenz von 2 (Anzahl der freien Bits) = 210
210 = 1024 - 2 (Abzüglich der 0 u. 255, die für die Hosts in einem Netz nicht verwendet werden dürfen)
Ergebnis: 1022 Adressen für die Hosts
Ergebnis Adressenbereich
Netz-IP: 192.168.1.0 /22
IP f. Host:192.168.0.1 - 192.168.3.254
Broadcast: 192.168.3.255
Aufteilung in Subnetze (Netzkennung erweitern)
Subnetz: 255.255.255.0 /24
Binär: 11111111.11111111.11111111.00000000
In diesem Beispiel wollen wir das oben genannte Netz in 4 Subnetze aufteilen. Um dies umzusetzen müssen Bits verschoben werden, um die Anzahl der Hosts aufzuteilen.
Dazu ist eine kleine Hilfestellung von nöten, um zu wissen wieviel Bits man verschiebt.
Wir wissen, dass ein Oktett aus 8 Bit bzw. 8 Stellen besteht und diese mit der Potenz von 2 errechnet wird.
Gedankenhilfe!
Potenz 2(Anzahl der Stellen v. links im Oktett) Der linke Teil ist der Netzanteil und wird vergrößert.
21 = 2 Subnetze ~ 1 Stelle
22 = 4 Subnetze ~ 2 Stellen
23 = 8 Subnetze ~ 3 Stellen
24 = 16 Subnetze ~ 4 Stellen
25 = 32 Subnetze ~ 5 Stellen
26 = 64 Subnetze ~ 6 Stellen
usw...
Möchte man nun das oben genannte Netz in 4 Subnetze aufteilen, dann klauen wir 2 Bits vom nächsten 4. Oktett. (22 = 4 Subnetze ~ 2 Stellen)
Somit erhöht sich die CIDR um 2 weitere Stellen (/24 + 2 Bit = /26).
Subnetmaske vorher
255.255.255.0 /24 Binär: 11111111.11111111.11111111.00000000
Subnetmaske nachher
255.255.255.192 /26 Binär: 11111111.11111111.11111111.11000000
in dem 64 Adressen pro Netz zur Verfügung stehen.
Ergebnis Adressenbereich
- Subnetz
Netz-IP: 192.168.1.0 /26
IP für Host: 192.168.1.1 - 192.168.1.63
Broadcast: 192.168.1.63 - Subnetz
Netz-IP: 192.168.1.64 /26
IP für Host: 192.168.1.65 - 192.168.1.126
Broadcast: 192.168.1.127 - Subnetz
Netz-IP: 192.168.1.128 /26
IP für Host: 192.168.1.129 - 192.168.1.190
Broadcast: 192.168.1.191 - Subnetz
Netz-IP: 192.168.1.192 /26
IP für Host: 192.168.1.193 - 192.168.1.254
Broadcast: 192.168.1.255
Aufteilung in Subnetze (Hostkennung erweitern)
Beispiel
Subnetz: 255.255.255.0 /24
Binär: 11111111.11111111.11111111.00000000
In diesem Beispiel wollen wir die Subnetmaske so anpassen, dass 510 Hosts darin Platz haben. Um dies umzusetzen müssen wieder Bits verschoben werden.
Wir wissen, dass in einer Netzmaske /24 CIDR 256 Adressen möglich sind. Und genau hier setzen wir an.
Um mehr Hosts in ein Netzwerk zu packen, müssen wir die Netzkennung verkleinern bzw. den Hostanteil vergrößern.
Aber wieviel Stellen (Nullen) benötigen wir im hinteren Bereich, um den Hostanteil so zu vergrößern, dass 510 Hosts in die Subnetmaske passen?
Gedankenhilfe!
Potenz 2(Anzahl der Stellen v. rechts im Oktett) Der rechte Teil ist der Hostanteil und wird vergrößert.
21 = 2 Adressen ~ 1 Stelle
22 = 4 Adressen ~ 2 Stellen
23 = 8 Adressen ~ 3 Stellen
24 = 16 Adressen ~ 4 Stellen
25 = 32 Adressen ~ 5 Stellen
26 = 64 Adressen ~ 6 Stellen
27 = 128 Adressen ~ 7 Stellen
28 = 256 Adressen ~ 8 Stellen
29 = 512 Adressen ~ 9 Stellen
210 = 1024 Adressen ~ 10 Stellen
usw...
Also fangen wir an zu rechnen.
510 Hosts + 2 Adressen (0 u. 255) = 512 Adressen.
In dem 4. Oktett mit 8 Bit passen 256 Adressen. Nehmen wir ein weiteres Bit vom 3. Oktett, also ein 9. Bit, dann haben wir die Aufgabe bereits gelöst.
Mit 9 Bit erhält man 512 Adressen für den Hostanteil.
Somit verringert sich die CIDR um 1 Stellen (/24 1 1 Bit = /23).
Subnetmaske vorher
255.255.255.0 /24 Binär: 11111111.11111111.11111111.00000000
Subnetmaske nachher
255.255.254.0 /23 Binär: 11111111.11111111.11111110.00000000
Aufteilung in 2 Netze, da in jedem Netz nur 256 Adressen möglich sind.
Ergebnis Adressenbereich
- Subnetz
Netz-IP: 192.168.0.0 /23
IP für Host: 192.168.0.1 - 192.168.0.254
Broadcast: 192.168.0.255 - Subnetz
Netz-IP: 192.168.1.0 /23
IP für Host: 192.168.1.1 - 192.168.1.254
Broadcast: 192.168.1.255
Soll ein Netzwerk auf 700 Hosts erweitert werden, dann muss der Hostanteil um 10 Bit erweitert werden.
Die Notierung lautet dann /22 und man hat 1024 Adressen zur Verfügung.
Subnetmaske
255.255.254.0 /22 Binär: 11111111.11111111.11111100.00000000
Aufteilung in 4 Netze, da in jedem Netz nur 256 Adressen möglich sind.