IP-Adressen Berechung und Subnetting: Unterschied zwischen den Versionen

Aus Ergun's Wiki
Zur Navigation springen Zur Suche springen
 
(8 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 57: Zeile 57:
 
| style="width: 10px;" | .
 
| style="width: 10px;" | .
 
|-
 
|-
| . || <font color= cyan>111111</font><font color= red>00</font> || .  
+
| . || <font color=darkcyan>111111</font><font color= red>00</font> || .  
 
|-
 
|-
 
| . || <small>3. Oktett</small> || .  
 
| . || <small>3. Oktett</small> || .  
Zeile 71: Zeile 71:
 
  | style="width: 70px;" | 0
 
  | style="width: 70px;" | 0
 
  |-
 
  |-
  | . || <font color= cyan>11111111</font> || . || <font color= red>00000000</font>
+
  | . || <font color=darkcyan>11111111</font> || . || <font color= red>00000000</font>
 
  |-
 
  |-
 
  | . || <small>3. Oktett</small> || . || <small>4. Oktett</small>
 
  | . || <small>3. Oktett</small> || . || <small>4. Oktett</small>
Zeile 96: Zeile 96:
  
 
=== Ermittlung der Anzahl der Teilnetze ===
 
=== Ermittlung der Anzahl der Teilnetze ===
Die <font color= cyan>sechs Einsen</font> stehen für die Teilnetze.
+
Die <font color=darkcyan>sechs Einsen</font> im 3. Oktett der Subnetzmaske stehen für die Teilnetze.
 
{| style="text-align: center;" class="wikitable"
 
{| style="text-align: center;" class="wikitable"
 
|-
 
|-
Zeile 103: Zeile 103:
 
| style="width: 10px;" | .
 
| style="width: 10px;" | .
 
|-
 
|-
| . || <font color= cyan>111111</font><font color= red>00</font> || .  
+
| . || <font color= darkcyan>111111</font><font color= red>00</font> || .  
 
|-
 
|-
 
| . || <small>3. Oktett</small> || .  
 
| . || <small>3. Oktett</small> || .  
Zeile 388: Zeile 388:
  
 
=== Betrachtung auf Bitebene ===
 
=== Betrachtung auf Bitebene ===
Die Subnetzmaskenbetrachtung kann auch auf Bitebene erfolgen.</br>
+
Die Subnetzmaskenbetrachtung kann auch auf Bitebene erfolgen.<br>
Gegeben sei hier:</br>
+
Gegeben sei hier:<br>
 
NetzID: 192.168.0.0/24
 
NetzID: 192.168.0.0/24
  
Zeile 434: Zeile 434:
 
{| style="text-align: center;" class="wikitable"
 
{| style="text-align: center;" class="wikitable"
 
|-
 
|-
| style="width: 70px;" | <code>192</code>
+
| style="width: 70px;" | 192
 +
| style="width: 10px;" | .
 +
| style="width: 70px;" | 168
 +
| style="width: 10px;" | .
 +
| style="width: 70px;" | 0
 +
| style="width: 10px;" | .
 +
| style="width: 70px;" | <code><font color=red>00</font></code><code>000000</code>
 +
| style="width: 150px;" | NetzID 1. Subnetz<br>(.0)
 +
|-
 +
| style="width: 70px;" | 192
 +
| style="width: 10px;" | .
 +
| style="width: 70px;" | 168
 +
| style="width: 10px;" | .
 +
| style="width: 70px;" | 0
 +
| style="width: 10px;" | .
 +
| style="width: 70px;" | <code><font color=red>00</font></code><code>111111</code>
 +
| style="width: 150px;" | Broadcast 1. Subnetz<br>(.63)
 +
|-
 +
| style="width: 70px;" | 192
 +
| style="width: 10px;" | .
 +
| style="width: 70px;" | 168
 +
| style="width: 10px;" | .
 +
| style="width: 70px;" | 0
 +
| style="width: 10px;" | .
 +
| style="width: 70px;" | <code><font color=red>01</font></code><code>000000</code>
 +
| style="width: 150px;" | NetzID 2. Subnetz<br>(.64)
 +
|-
 +
| style="width: 70px;" | 192
 +
| style="width: 10px;" | .
 +
| style="width: 70px;" | 168
 +
| style="width: 10px;" | .
 +
| style="width: 70px;" | 0
 +
| style="width: 10px;" | .
 +
| style="width: 70px;" | <code><font color=red>01</font></code><code>111111</code>
 +
| style="width: 150px;" | Broadcast 2. Subnetz<br>(.127)
 +
|-
 +
| style="width: 70px;" | 192
 +
| style="width: 10px;" | .
 +
| style="width: 70px;" | 168
 +
| style="width: 10px;" | .
 +
| style="width: 70px;" | 0
 +
| style="width: 10px;" | .
 +
| style="width: 70px;" | <code><font color=red>10</font></code><code>000000</code>
 +
| style="width: 150px;" | NetzID 3. Subnetz<br>(.128)
 +
|-
 +
| style="width: 70px;" | 192
 +
| style="width: 10px;" | .
 +
| style="width: 70px;" | 168
 +
| style="width: 10px;" | .
 +
| style="width: 70px;" | 0
 +
| style="width: 10px;" | .
 +
| style="width: 70px;" | <code><font color=red>10</font></code><code>111111</code>
 +
| style="width: 150px;" | Broadcast 3. Subnetz<br>(.191)
 +
|-
 +
| style="width: 70px;" | 192
 
| style="width: 10px;" | .
 
| style="width: 10px;" | .
| style="width: 70px;" | <code>168</code>
+
| style="width: 70px;" | 168
 
| style="width: 10px;" | .
 
| style="width: 10px;" | .
| style="width: 70px;" | <code>0</code>
+
| style="width: 70px;" | 0
 
| style="width: 10px;" | .
 
| style="width: 10px;" | .
| style="width: 70px;" | <code><font color=red>00</font>000000</code>
+
| style="width: 70px;" | <code><font color=red>11</font></code><code>000000</code>
| style="width: 150px;" | NetzID 1. Subnetz (.)
+
| style="width: 150px;" | NetzID 4. Subnetz<br>(.192)
 
|-
 
|-
| style="width: 70px;" | <code>192</code>
+
| style="width: 70px;" | 192
 
| style="width: 10px;" | .
 
| style="width: 10px;" | .
| style="width: 70px;" | <code>168</code>
+
| style="width: 70px;" | 168
 
| style="width: 10px;" | .
 
| style="width: 10px;" | .
| style="width: 70px;" | <code>0</code>
+
| style="width: 70px;" | 0
 
| style="width: 10px;" | .
 
| style="width: 10px;" | .
| style="width: 70px;" | <code><font color=red>00</font>000000</code>
+
| style="width: 70px;" | <code><font color=red>11</font></code><code>111111</code>
| style="width: 150px;" | NetzID 1. Subnetz (.)
+
| style="width: 150px;" | Broadcast 4. Subnetz<br>(.255)
 
|-
 
|-
 
| <small>1. Oktett<br>dezimal</small> || . || <small>2. Oktett<br>dezimal</small> || . || <small>3. Oktett<br>dezimal</small> || . || <small>4. Oktett<br>binär</small> ||  
 
| <small>1. Oktett<br>dezimal</small> || . || <small>2. Oktett<br>dezimal</small> || . || <small>3. Oktett<br>dezimal</small> || . || <small>4. Oktett<br>binär</small> ||  
 
|}
 
|}
 +
Am obigem Beispiel sieht man, dass zur Bildung der NetzID der Bereich für die Hosts (die letzten 6 Bit) jeweils auf "0" gesetzt werden, während zur Bildung der Broadcastadresse die Bits auf "1" gesetzt werden.<br>
 +
Die ersten 2 Bits (im 4. Oktett) geben in Kombination mit der Subnetzmaske die Subnetze an (00,01,10,11)
  
 
== Hilfstabelle für das Subnetting ==
 
== Hilfstabelle für das Subnetting ==

Aktuelle Version vom 21. November 2016, 17:56 Uhr


Beschreibung

Um für IPv4 Adressen die Subnetzmaskke, die NetzID oder die Broadcast-IP herauszubekommen, gibt es im Internet viele Anbieter, welche die Rechnungen übernehmen. Genannt seien z.B.

  • Heise Netzwerk-Rechner[1]

Teilnetz, NetzID und Broadcast ermitteln

Ermitteln, in welchem Teilnetz eine IP Adresse liegt und welche NetzID und Broadcast-Adresse dieser Bereich hat.

Beispieldaten

Zur Demonstration der Berechnung wird hier primär folgende Beispiel IP-Adresse herangezogen:

153 . 123 . 221 . 235 /22
1. Oktett . 2. Oktett . 3. Oktett . 4. Oktett CIDR

Alternative IP Adressen werden in den Beispielen zur Verdeutlichung herangezogen und sind als "Beispiel B" gekennzeichnet.

Subnetzmaske ermitteln

Aus der CIDR Notationsschreibweise "/22" folgt die Subnetzmaske:

255 . 255 . 252 . 0 Dezimal
11111111 . 11111111 . 11111100 . 00000000 Binär
1. Oktett . 2. Oktett . 3. Oktett . 4. Oktett

Ermittlung der Schrittweite

Die Schrittweite wird auch "Increment" oder "Sprungweite" genannt.

Variante A

Um die Schrittweite zu ermitteln, identifiziert man das Oktett in der Subnetzmaske (binär), in dem das erste auftreten der "0" erfolgt.
In unserem "Beispiel A" ist dies das dritte Oktett.

. 252 .
. 11111100 .
. 3. Oktett .

Die Anzahl der Nullen im Oktett (hier 2) gibt uns die Schrittweite an:

2(Anzahl der Nullen im SN-Oktett)
↓↓
22 = 4

Im nachfolgenden "Beispiel B" ist es das 4. Oktett.

. 255 . 0
. 11111111 . 00000000
. 3. Oktett . 4. Oktett
2(Anzahl der Nullen im SN-Oktett)
↓↓
28 = 256

Variante B

Ableitend aus Variante A ergibt sich, dass man ebenfalls den Wert des betreffenden Oktettes von 256 abziehen kann, also:

Für "Beispiel A" wird die dezimale Zahl des Oktetts genommen,in dem die erste "Null" auftritt (hier Oktett 3):

256 - (Dezimale Zahl im SN-Oktett)
↓↓
256 - 252 = 4

Für "Beispiel B" tritt die erste "Null" im 4. Oktett auf. Der dezimale Wert des Oktetts ist 0, also lautet die Rechnung:

256 - 0 = 256

Ermittlung des Hostanteils

Weiterhin stehen die 10 Nullen für den Hostanteil

2(Anzahl aller Nullen)
↓↓
210 = 1.024 (-2)

Der einfache Weg ist, die CIDR einfach von 32 abzuziehen und das Ergebnis als Exponent zu benutzen, also

2(32 - CIDR)
↓↓
232 - 22 (=10) = 1024 (-2)

Hier werden immer 2 abgezogen, um die IP-Adressanzahl zu ermitteln, die Hosts zugeteilt zu bekommen, da zwei von diesen Adressen für Broadcast und NetzID reserviert werden.

Ermittlung der Anzahl der Teilnetze

Die sechs Einsen im 3. Oktett der Subnetzmaske stehen für die Teilnetze.

. 252 .
. 11111100 .
. 3. Oktett .
2(Anzahl der Einsen im SN-Oktett)
↓↓
26 = 64

Ermittlung der NetzID

Variante A

Um die zur IP-Adresse zugehörige NetzID zu ermitteln, identifiziert man das Oktett in der Subnetzmaske (binär), in dem der Wechsel von 1 auf 0 erfolgt.
In unserem Fall ist es das dritte Oktett. Nun ermitteln wir im selben Oktett der IP-Adresse den dezimalen Wert. Im vorliegenden Fall also die „221“.

Diese Zahl teilt man durch die Schrittweite und erhält:

IP-Adressteil im Oktett / Schrittweite
↓↓
221 / 4 = 55,25

Wir nehmen vom Ergebnis nur den ganzzahligen Anteil und multiplizieren diesen mit der Schrittweite

Schrittweite * Ganzzahliger Anteil
↓↓
4 * 55 = 220

Also lautet unsere NetzID für das Teilnetz in dem sich unsere IP-Adresse befindet:

153 . 123 . 220 . 0
1. Oktett . 2. Oktett . 3. Oktett . 4. Oktett

Zudem kann man nun den nächst höheren Wert der Zahl 55,25 nehmen (also 56), womit man auch die Teilnetznummer hat.

Variante B

Eine andere Möglichkeit, die NetzID herauszufinden, ist die UND-Verknüpfungsvariante.

Hier werden die IP und die Subnetzmaske bitweise folgenderweise verknüpft:

IP-Bit SN-Bit NetzID Bit
0 0 0
0 1 0
1 0 0
1 1 1

Sehen wir uns dies an dem gegebenen Beispiel an:

153 . 123 . 223 . 235 IP (Dezimal)
10011001 . 01111011 . 11011101 . 11101011 IP (Binär)
11111111 . 11111111 . 11111100 . 00000000 Subnetzmaske (Binär)
10011001 . 01111011 . 11011100 . 00000000 UND Verknüpft
(=NetzID (Binär))
153 . 123 . 220 . 0 NetzID (Dezimal))
1. Oktett . 2. Oktett . 3. Oktett . 4. Oktett

Hierbei ist zu beachten, dass sich der Teil der IP-Adresse, der durch die Subnetzmaske mit "1" maskiert wurde, nicht geändert wurde. Der Teil, der mit "0" Maskiert ist, wurde konsequent auch auf "0" gesetzt.

Ermittlung der Broadcast-Adresse

Da die Broadcast-Adresse die letzte verfügbare Adresse im Teilnetz sein muss, ermittelt man zunächst die nächste NetzID, in dem auf die 220 die Schrittweite 4 addiert In unseren Fall wäre dies also die 153.123.224.0. Wenn wir von dieser Adresse wieder „ein Bit“ abziehen, erhalten wir die Broadcast-Adresse:

153 . 123 . 223 . 255
1. Oktett . 2. Oktett . 3. Oktett . 4. Oktett

Ergebnis

An nachfolgender Tabelle können wir nun unser Ergebnis nachvollziehen:

Teilnetz NetzID Host von - Host bis Broadcastadresse
1 153.123.0.0 153.123.0.1 - 153.123.3.254 153.123.3.255
2 153.123.4.0 153.123.4.1 - 153.123.7.254 153.123.7.255
...
56 153.123.220.0 153.123.220.1 - 153.123.223.254 153.123.223.255
...
64 153.123.252.0 153.123.252.1 - 153.123.255.254 153.123.255.255

Somit haben wir alle benötigten Daten zusammen:

IP 153.123.221.235
Subnetzmaske 255.255.252.0
NetzID 153.123.220.0
Broadcast 153.123.223.254

Abwandlungen der Rechnung

Finden einer Subnetzmaske

NetzID und gew. Anzahl Hosts pro Subnetz bekannt

Gegeben ist:

  • NetzID: 120.48.7.96
  • Anzahl der verwendbaren Subnetze: 5
  • Anzahl Hosts pro Subnetz: 10

Gesucht wird:

  • Subnetzmaske

Überlegung:
Wie wir wissen, ist die Anzahl an möglichen Hosts in der Anzahl der "Nullen" in der Subnetzmaske abgebildet.
Vorgehen:
Wir suchen also eine Potenz, die mindestens 10 (+2, wegen Broadcast und NetzID) ergibt.

  • 22 = 4 (-2) = 2 ← Zu klein!
  • 23 = 8 (-2) = 6 ← immer noch zu klein!
  • 24 = 16 (-2) = 14 ← Das ist die Potenz (X4), und damit gleichzeitig die Anzahl der "Nullen" (4), die wir benötigen!

Wir wissen weiterhin, dass die "Nullen" von hinten aufgefüllt werden, also sieht die Binärzahl folgenderweise aus:

11111111 . 11111111 . 11111111 . 11110000 Dezimal
255 . 255 . 255 . 240 Binär
1. Oktett . 2. Oktett . 3. Oktett . 4. Oktett

In der CIDR Schreibweise ausgedrückt: /28
Anzumerken ist, das mit dieser Subnetzmaske in Wirklichkeit nicht nur 10 sondern 14 Hosts IP-Adressen beziehen können. Auch sind es nicht nur 5 Teilnetze die wir bilden können, sondern 16. Da jedoch 5 < 16 ist, kommen wir der Anforderung nach. Wenn wir mit der Subnetzmaske tatsächlich so nah an 5 Teilnetze herankommen möchten, wie möglich, dann würde die Subnetzmaske so aussehen:

11111111 . 11111111 . 11111111 . 11100000 Dezimal
255 . 255 . 255 . 224 Binär
1. Oktett . 2. Oktett . 3. Oktett . 4. Oktett

Nun können wir nur noch 23 = 8 Teilnetze haben, allerdings hat sich nun unser verfügbarer Hostanteil vergrößert (25 = 32).

Teilnetz vergrößern / verkleinern

Manchmal steht man vor der Aufgabe, ein vorhandenes Netz zu vergrößern, bzw. zu verkleinern

Eingangsdaten

Gegeben ist die NetzID:

153 . 123 . 0 . 0 /22
1. Oktett . 2. Oktett . 3. Oktett . 4. Oktett CIDR

Gefragt ist nun, wie wir die Subnetzmaske ändern müssen, um 18 Teilnetze zu bekommen und wie sich dies auf die Hostanzahl auswirkt.

Subnetzmaske ermitteln

Zuerst ermitteln wir aus der CIDR Notationsschreibweise "/22" die Subnetzmaske:

255 . 255 . 252 . 0 Dezimal
11111111 . 11111111 . 11111100 . 00000000 Binär
1. Oktett . 2. Oktett . 3. Oktett . 4. Oktett

Dies zeigt an, dass wir insgesamt 64 (2(Anzahl der Einsen im SN-Oktett)) Teilnetze mit jeweils 1.024 (2(Anzahl aller Nullen)) Hostadressen haben.

Subnetzmaske anpassen

Wie wir aus der vorausgegangenen Betrachtung schon gesehen haben, stehen die 6 Einsen für 26 = 64 Teilnetze.

Dies würde bedeuten, dass wenn nur noch 5 Einsen beteiligt wären, hätten wir 32 Teilnetze und bei 4 Einsen würden nur noch 16 Teilnetze zur Verfügung stehen.
Letzteres wäre jedoch zu wenig, da wir ja 18 Teilnetze haben wollen. So bleibt uns keine andere Wahl, als auf 32 Teilnetze auszuweichen. Dann würde die Subnetzmaske nun so aussehen:

255 . 255 . 248 . 0 Dezimal
11111111 . 11111111 . 11111000 . 00000000 Binär
1. Oktett . 2. Oktett . 3. Oktett . 4. Oktett

Die Schrittweite berechnet sich wie oben genannt und entspricht nun dem Wert 8.
Der Hostanteil ist nun auf 2.048 gestiegen.

Weitere Beispiele

Betrachten wir die oft benutze Kombination 192.168.0.0/24.
Diese wird man in vielen privaten Haushalten vorfinden.

192 . 168 . 0 . 0 NetzID (Dezimal)
255 . 255 . 255 . 0 Subnetzmaske (Dezimal)
11000000 . 10101000 . 00000000 . 00000000 NetzID (Binär)
11111111 . 11111111 . 11111111 . 00000000 Subnetzmaske (Binär)
1. Oktett . 2. Oktett . 3. Oktett . 4. Oktett

Anhand der binären Subnetzmaske sehen wir den Übergang von "1" auf "0" im 4. Oktett. Da es hier keine Einsen gibt, bedeutet das für die Teilnetze 20 = 1. Die Hostanzahl ist 28 = 256 (-2) und die Broadcastadresse ist 192.168.0.255.

Will man dieses Netz nun in 2 Teilnetze aufteilen, muss die Subnetzmaske geändert werden.

11111111 . 11111111 . 11111111 . 10000000 Subnetzmaske (Binär)
255 . 255 . 255 . 128 Subnetzmaske (Dezimal)
1. Oktett . 2. Oktett . 3. Oktett . 4. Oktett

Im vierten Oktett steht nun eine 1, was bedeutet, das die Teilnetze 21 = 2 sind.
Die Hostanzahl ist nun 27 = 128 (-2). Damit Ergibt sich, dass es nun auch 2 NetzID's und 2 Broadcastadressen gibt:
NetzID 1: 192.168.0.0
Broadcast 1: 192.168.0.127
NetzID 2: 192.168.0.128
Broadcast 2: 192.168.0.255

Betrachtung auf Bitebene

Die Subnetzmaskenbetrachtung kann auch auf Bitebene erfolgen.
Gegeben sei hier:
NetzID: 192.168.0.0/24

Dieses Netz soll in 4 Teilnetze aufgeteilt werden.

Hierzu wandeln wir zuerst die Subnetzmaske vom CIDR Format ins binäre Format:

11111111 . 11111111 . 11111111 . 00000000 Subnetzmaske (Binär)
255 . 255 . 255 . 0 Subnetzmaske (Dezimal)
1. Oktett . 2. Oktett . 3. Oktett . 4. Oktett

Wie aus den vorangegangenen Kapiteln ersichtlich, haben wir 1 Subnetz (20 = 1) und 256 (28 = 256) - 2 Hosts, die wir mit dieser Subnetzmaske adressieren können.

Damit wir das Netz in 4 (22 = 4) Teile auftrennen können müssen wir die Subnetze von 1 auf 4 erweitern.

11111111 . 11111111 . 11111111 . 11000000 Subnetzmaske (Binär)
255 . 255 . 255 . 192 Subnetzmaske (Dezimal)
1. Oktett . 2. Oktett . 3. Oktett . 4. Oktett

Nun Betrachten wir die IP Adressen der einzelnen Subnetze

192 . 168 . 0 . 00000000 NetzID 1. Subnetz
(.0)
192 . 168 . 0 . 00111111 Broadcast 1. Subnetz
(.63)
192 . 168 . 0 . 01000000 NetzID 2. Subnetz
(.64)
192 . 168 . 0 . 01111111 Broadcast 2. Subnetz
(.127)
192 . 168 . 0 . 10000000 NetzID 3. Subnetz
(.128)
192 . 168 . 0 . 10111111 Broadcast 3. Subnetz
(.191)
192 . 168 . 0 . 11000000 NetzID 4. Subnetz
(.192)
192 . 168 . 0 . 11111111 Broadcast 4. Subnetz
(.255)
1. Oktett
dezimal
. 2. Oktett
dezimal
. 3. Oktett
dezimal
. 4. Oktett
binär

Am obigem Beispiel sieht man, dass zur Bildung der NetzID der Bereich für die Hosts (die letzten 6 Bit) jeweils auf "0" gesetzt werden, während zur Bildung der Broadcastadresse die Bits auf "1" gesetzt werden.
Die ersten 2 Bits (im 4. Oktett) geben in Kombination mit der Subnetzmaske die Subnetze an (00,01,10,11)

Hilfstabelle für das Subnetting

Hier eine kleine Liste, mit der man sich das Subnetting deutlich erleichtern kann.

Zur Verwendung dieser Tabelle:

Wir haben die IP-Adresse 192.168.3.4 /25
Die Subnetzmaske wäre dann:
Lokalisation CDIR /25 in Zeile 4. Oktett --> Dezimal 128
Subnetzmaske: 255.255.255.128

/1 /2 /3 /4 /5 /6 /7 /8 1. Oktett CDIR
/9 /10 /11 /12 /13 /14 /15 /16 2. Oktett
/17 /18 /19 /20 /21 /22 /23 /24 3. Oktett
/25 /26 /27 /28 /29 /30 /31 /32 4. Oktett
128 192 224 240 248 252 254 255 Dezimal
128 64 32 16 8 4 2 1 Anzahl der IP Adressen

(IPeff = Anzahl - 2,Schrittweite)

2 4 8 16 32 64 128* 256* Anzahl der Subnetze

* = hier können keine Host-IP Adressen mehr vergeben werden, WENN es sich um das letzte Oktett handelt

Eine vereinfachte Tabelle:

Überschrift
128 64 32 16 8 4 2 1
| | | | | | | |
Netzanteil 2 4 8 16 32 64 128 256
| | | | | | | |
Hostanteil 256 128 64 32 16 8 4 2

Einzelnachweise, Weblinks und Anmerkungen