Subnetting (CIDR und VLSM)

Einführung in Subnetting / IP-Berechnung

=========================================

Anfangs noch ein paar Übungsbeispiele unter: http://www.eex-online.de/informatik.html

Das Dokument zum herunterladen: Einführung in Subnetting

Rechner im Internet werden über IP-Adressen angesprochen, die eindeutig sind.

Eine IP-Adresse (IP) ist eine 32-bit-Zahl und enthält sowohl die Netzkennung als auch die Hostkennung eines Rechners.

In der kürzeren Dezimalschreibweise sieht eine IP zum Beispiel aus wie „192.168.0.1„, jede der 4 durch Punkte getrennten Zahlen repräsentiert eine 8bit-Binärzahl.

Sie wird auch als Oktett bezeichnet und kann Werte zwischen 0 (binär 00000000) und 255

(binär 11111111) annehmen.

Die zur IP gehörende Subnetmaske (ebenfalls 32bit) gibt an, welcher Teil der IP Hostkennung und welcher Netzkennung ist. Sie ermöglicht die Teilung eines Gesamtnetzes in mehrere kleinere Teilnetze.

Am besten ist dies in der Binärdarstellung der Netmask zu sehen :

Die Netzkennung ist (von links nach rechts betrachtet) der Teil der IP, bei dem die Bits der Netmask 1 sind.

Als Beispiel betrachten wir die häufig in privaten LANs genutzte IP 192.168.0.1 mit einer typischen Subnetzmaske von 255.255.255.0.

//Darstellung 1 : Dezimal- und Binärschreibweise von Subnetzmasken

IP(dez)  :        192                    168                  0                       1

SNM(dez) :     255                   255                  255                   0

SNM(bin) :     11111111        11111111       11111111        00000000

|<——– Netzkennung ——————->|      |<– Hostkennung –>|

Wie anhand der Darstellung zu sehen ist, befindet sich der Host im Subnetz 192.168.0. und

ist hat die erste Hostadresse in diesem Netz.

Da eine Subnetzmaske definiert, wie viele Bits zur Adressierung des Hosts, und wie viel zur

Adressierung des Netzes zur Verfügung stehen, legt sie die maximale Anzahl der Hosts und Netze

Fest.

Je mehr Bits für die Hostkennung verwendet werden, desto weniger stehen für die

Netzkennung zur Verfügung. Der gesamte IP4-Adressraum ist zwar relativ gross, aber begrenzt.

 

Auch die CIDR-Darstellung der Netzwerkmaske lässt sich an obiger Darstellung gut illustrieren.

Es handelt sich hierbei um eine Kurzdarstellung der Netzmaske, die die Anzahl der auf 1 gesetzten

Bits in der Subnetzmaske angibt. Ihr wird meist ein Slash („/“) vorangesetzt, so dass man an Stelle

unserer Darstellung

„IP : 192.168.0.1, SNM : 255.255.255.0“

in CIDR-Schreibweise auch „192.168.0.1/24“ schreiben kann. Dies gibt an, das die Subnetzmaske

24 Bits hat, die auf 1 gesetzt sind (siehe Darstellung 1).

 

Früher teilte man die IP-Adressen in Klassen ein, je nach Subnetzmaske. Gebräuchlich waren

die Subnetzmasken 255.0.0.0 („Klasse-A-Netze„), 255.255.0.0 („Klasse-B-Netze„) und

255.255.255.0 („Klasse-C-Netze„). Unsere IP 192.168.0.1/24 wäre also ein Rechner in einem

Klasse-C-Netz.

Man Beachte: Es spricht nichts dagegen, Subnetzmasken wie /21 oder /7 zu benutzen, bei denen

die Trennung von Host- und Netzteil in dezimaler Schreibweise nicht zwischen

den einzelnen Oktetten liegt. Dies war aber damals nicht notwendig und daher nicht vorgesehen. Lediglich /8, /16 und   /24 Netze (also Klasse A,B, und C) waren in Benutzung, man spricht daher von diesem Schema als klassenbasierte IP-Adressierung.

Man teile die das Internets also in Klasse A, B, und C-Netze auf und definierte

Adressbereiche für die einzelnen Netztypen :

klassenbasierte IP-Adressierung

Adressklasse Netzbits Hostbits Adressbereich* Anzahl Netze Anzahl Hosts Subnetmask
A 8 24 0- 126 126 16777216 255.0.0.0
B 16 16 128- 191 16384 65536 255.255.0.0
C 24 8 192- 223 2097152 256 255.255.255.0

 

* erstes Oktett der IP in Dezimalschreibweise

Man Beachte : Es spricht ebenfalls nichts dagegen, dass ein Rechner die Adresse

IP : 10.11.12.12 SNM : 255.255.255.0 besitzt, obwohl das erste Oktett der Definition nach ein Klasse A Netz sein sollte und somit eine SNM von 255.0.0.0 habe sollte. Dies widerspricht lediglich der damaligen Definition, ist aber möglich.

Beim Betrachten von Tabelle 1 ist auffällig, dass einige Adressbereiche nicht aufgeführt sind.

Diese Bereiche sind für besondere Aufgaben reserviert. Siehe dazu Anhang B.

Jeder, der öffentliche IP-Adressen benötigte, bekam ein (oder auch mehrere) Adressbereiche zugeteilt – je nach Bedarf an IP-Adressen ein Class-A, -B oder -C-Netz. Bald wurden die ~ 4 Milliarden IP-Adressen knapp, und es wurden Massnahmen zur Bekämpfung des Mangels eingeführt.

NAT (network address translation, Nutzung einer gemeinsamen öffentlichen IP durch viele Rechner

mit privaten IPs hinter einem Router) und die klassenlose IP-Adressierung das Ergebnis.

Man bezeichnet häufig Subnetze, die keine der SNMs von /8, /16 oder /24 haben, als klassenlose

Subnetze. Durch klassenlose Adressierung lässt sich die Anzahl der maximalen Hosts pro Subnetz

besser dosieren, weniger IP-Verschwendung ist die Folge.

Hinweis:

Eine längerfristige Lösung war die Einführung von IPv6, das die Adresslänge von 32 auf 128 Bit erhöht, und damit natürlich die Anzahl der zur Verfügung stehenden IP-Adressen dramatisch erhöht.

Bis heute ist aber IPv4 die mit Abstand am weitesten Verbreitete Adressierungsmethode, IPv6-Testnetze existieren aber seit geraumer Zeit, erste Produktionsumgebungen mit IPv6 bestehen ebenfalls.

Berechnen von Subnetzeigenschaften – kommentierte Beispiele

============================================================

Beispiel 1:

Gegeben sind eine IP und die dazugehörige Subnetzmaske in Dezimalschreibweise. Berechnen Sie die Netzwerkadresse des zugehörigen Subnetzes, dessen Broadcast-Adresse und die Anzahl  der Hosts, die maximal in diesem Subnetz untergebracht werden können.

Gegeben:    IP 113.8.66.42, Netmask 255.255.255.240

Schritt 1 -Umwandlung der dezimalen Netmask in CIDR-Schreibweise

Die dezimale Darstellung der Netmask ( hier z.B. 255.255.255.240) ist dem Verständnis

der CIDR-Schreibweise eher hinderlich. Also wird die SNM zuerst in binary umgewandelt,

daraus kann man die CIDR einfach ablesen:

dezimal         255             255             255              240

bin             11111111   11111111   11111111   11110000

Anzahl Bits 1 :     8      +    8                  +    8            +    4      =    28

CIDR            /28      –>            Die CIDR ist folglich 28.

 

Schritt 2 –maximale Anzahl Hosts pro Subnetz bestimmen

Mit Hilfe der CIDR kann die maximale Anzahl von Hosts berechnet werden, die in jedem             einzelnen der entstehenden Subnetzte untergebracht werden können :

Eine IP-Adresse hat 32 Bit, eine CIDR von 28 bedeutet, dass 28 Bit davon Netzkennung sind.

Folglich bleiben 4 Bit für die Hostkennung übrig. Wir könnten also theoretisch 2^4 Hosts pro Subnetz unterbringen. Die erste IP des Subnetzes ist jedoch als Netzwerkadresse des Subnetzes selbst reserviert, die letzte IP eines Subnetzes dient den Hosts des Subnetztes als Broadcast-Adresse. Daher müssen diese beiden Adressen von der theoretisch maximalen Anzahl subtrahiert werden.

Es ergibt sich in unserem Fall:

32 – 28 = 4          /* (Anzahl der Bits der IP-Adresse) – (CIDR) = (Anzahl Bits der Hostkennung) */

2^4 = 16             /* 2 hoch (Anzahl Bits der Hostkennung) = theoretische Maximalanzahl der Hosts */

16 – 2 = 14          /* 2 subtrahieren wegen Netzkennung und Broadcast */

Man kann folglich 14 Hosts pro Subnetz adressieren.

Schritt 3- Netzadresse des Gesamtnetzes bestimmen, in dem sich die IP befindet.

Die in Schritt 1 bestimmte CIDR zeigt, dass die von links gesehen ersten 28 Bit der IP-Adresse die Netzkennung sind und die von rechts gesehen ersten 4 Bit die Hostkennunng.

Das Umwandeln der IP in das Binärsystem ergibt folgendes:

IP (dezimal):     113.                    8.          66.           42

IP (binary):     01110001      00001000    01000010     00101010

Um die Netzwerkadresse zu bestimmen, beachten wir nur den Teil der IP, bei dem die SNM auf 1 gesetzt ist :

    SNM (binary):    11111111      11111111    11111111     11110000

Die Netzkennung lautet folglich in binary :

01110001      00001000    01000010     00100000

Beachten Sie, dass die letzten 4 Bits Null sind, da die Subnetzmaske  an diesen Stellen 0 ist, und diese Zahlen folglich nicht zur Netzkennung, sondern zur Hostkennung gehören!

Das Umwandeln ins Dezimalsystem ergibt:

113.         8.           66.          32

Folglich ist die Netzkennung 113.8.66.32.

Wenn man nun prüfen, will ob zwei IP Adresse im gleichen Subnetz sind, so muss man einfach die jeweilige IP Adresse binär mit der Subnetmask binär AND verknüpfen. Wenn beides mal das gleiche raus kommt-> so sind sie im gleichen Netz.

Schritt 4 – Bestimmen der Schrittweite der einzelnen Subnetze

Zuerst ist das erste Oktett der Subnetzmaske  zu bestimmen, dass nicht komplett aus Bits besteht, die auf 1 gesetzt sind. In der Dezimalschreibweise also von links nach rechts das erste Oktett, dass nicht 255 lautet.

In unserem Fall ist es das vierte Oktett, es lautet ‚240‘.

256 – 240 = 16

Die Schrittweite ist also 16.

Schritt 5 – Bestimmen der Start- und End-IP-Adressen der einzelnen Subnetze sowie deren Broadcast

Die Netzkennung des ersten Subnetzes lautet 113.8.66.32 (siehe Schritt 3).

Es wird nun das erste Oktett der IP benötigt, in dem die Hostkennung beginnt (also das von links gesehen erste, in dem die Subnetzmaske nicht 255 lautet). Dies ist in unserem Fall das vierte Oktett.

Nur dieses betrachten wir im Folgenden :

Die Netzkennung des ersten Subnetztes lautet im vierten Oktett 32, da die Schrittweite 16 beträgt (siehe Schritt 4), beginnt das nächste Subnetz bei 48, das darauf folgende bei 64, und so weiter.

Daraus ergeben sich die IP-Adressen in den jeweiligen Subnetzen – sie liegen zwischen den Netzkennungen der SUbnetze. Die Broadcastadresse ist jeweils die letzte IP vor der Netzkennung des nächsten Subnetztes. Es ergibt sich in unserem Fall:

Subnetz 1

Netzkennung:                  113.8.66.32

IP-Bereich:                        113.8.66.33 – 113.8.66.46

Broadcastadresse:          113.8.66.47

Subnetz 2

Netzkennung:                  113.8.66.48

IP-Bereich:                        113.8.66.49 – 113.8.66.62

Broadcastadresse:          113.8.66.63

Subnetz 3

Netzkennung:                  113.8.66.64

IP-Bereich:                        113.8.66.65 – 113.8.66.78

Broadcastadresse:          113.8.66.79

.

und so weiter

Damit sind wir fertig. Unser Host mit der IP 113.8.66.42 liegt im Subnetz 1, die weiteren Subnetze hätten wir nicht berechnen müssen, zur Verdeutlichung ist es hier aber geschehen.

Anhang

=======

Anhang A – Potenzen von 2 in dezimal und binary

————————————————

Das flüssige Rechnen mit Potenzen von 2 im binären Zahlensystem ist für IP- und Subnetzberechnungen sehr hilfreich. Die folgenden Werte sollten bekannt sein.

2^7 2^6 2^5 2^4 2^3 2^2 2^1 2^0
dezimal 128 64 32 16 8 4 2 1
binary 10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001
Addiert 128 192 224 240 248 252 254 255
Addiert 10000000 11000000 11100000 11110000 11111000 11111100 11111110 11111111

Anhang B – für besondere Aufgaben reservierte Adressbereiche

————————————————————-

1. loopback – 127.0.0.1

Das gesammte Netz mit der Kennung 127.0.0.0 ist nicht verfügbar, da 127.0.0.1 als sogenannte Loopback-Adresse definiert ist – jeder Rechner kann sich selbst unter dieser Adresse ansprechen und löst diese meist in den DNS-Namen ‚localhost‘ auf.

2. private IP-Bereiche

Als privat definierte Adressbereiche werden im Internet nicht geroutet und können somit problemlos von jedem in privaten Netzwerken verwendet werden, ohne sich um die Beschaffung einer öffentlichen IP kümmern zu müssen.

Hinweis:

Rechner mit IPs aus diesen Adressbereichen können nur über Router, die NAT ausführen, ans Internet angeschlossen                werden.

Folgende Adressbereiche sind als privat definiert :

10.0.0.0                bis          10.255.255.255      ( Class A )

172.16.0.0           bis          172.31.255.255      ( Class B )

192.168.0.0         bis         192.168.255.255    ( Class C )

3. diverse für Testzwecke reservierte Adressbereiche

Quellen

http://it.rcmd.org/networks/subnetting/subnetting.txt