Subnetting: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(106 dazwischenliegende Versionen von 4 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
=EXKURS: Subnetting=
+
=Warum das Ganze?=
==Dezimalverfahren zur Herleitung von Netznummern, Broadcast und Anzahl der Hosts==
+
*Subnetting wird dafür genutzt, um große aber auch kleinere physische Netzwerke in logische Teilnetze zu unterteilen.
===CIDR Masken 8, 16 oder 24===
+
*Von außen hin aber, wird das Netz nur als ein großes wahrgenommen.
;Zur Berechnung der Netznummer bei A – Klasse ähnlichen Netzen nimmt man das erste Oktett und füllt den Rest mit 0 auf.  
+
*Durch die rasche Entwicklung des Internets, und dem somit verbundenen Mangel an IP-Adressen, wurde nach einer passenden Lösung gesucht.  
*Zum Errechnen des Broadcasts füllt man stattdessen mit 255 auf.
+
*Diese Lösung offenbarte sich unter anderem als Subnetting.
*Die maximale Anzahl an Hosts beträgt 16 777 214 .
 
;Zur Berechnung der Netznummer bei B – Klasse ähnlichen Netzen nimmt man das erste und das zweite Oktett und füllt den Rest mit 0 auf.
 
*Zum Errechnen des Broadcasts füllt man stattdessen mit 255 auf.
 
*Die maximale Anzahl an Hosts beträgt 65 534 .
 
;Zur Berechnung der Netznummer bei C – Klasse ähnlichen Netzen nimmt man das erste, zweite und dritte Oktett und füllt den Rest mit 0 auf.  
 
*Zum Errechnen des Broadcasts füllt man stattdessen mit 255 auf.
 
*Die maximale Anzahl an Hosts beträgt 254 .
 
  
===Komplexes Subnetting===
+
=Gründe für Subnetting=
*Notieren der IP-Adresse
+
*Trennen von Netzwerken unterschiedlicher Topologie
*Notieren der Netzmaske
+
*Trennen von Netzwerken nach Standorten, Gebäuden und Etagen
*Untersuchen der Netzmaske; ein Oktett muss einen Wert ungleich 0 oder 255 haben. Dieses wird als 'Interessantes Oktett'  i bezeichnet.
+
*Trennen von Netzwerken nach Abteilungen und Bereichen
*Der Wert des Interessanten Oktetts wird von 256 subtrahiert. Man erhält den Wert k.
+
*Trennen von sensitiven Bereichen vom Hauptnetz
<math>k = 256 - i</math>
+
*Trennen des Netzwerks in logische Arbeitsgruppen
;Folgendes bezeht sich auf die IP-Adresse:
+
*Trennen des Netzwerks zur Reduzierung des Verkehrsaufkommens
*Alle Oktette links des Interessanten Oktetts können übernommen werden.
+
=Vorteil von Subnetting=
*Die Stelle des Interessanten Oktetts wird vorläufig noch freigelassen.
+
*Flexibilität bei der Adressierung für den Administrator.
*Alle Oktette rechts des Interessanten Oktetts werden mit 0 aufgefüllt.
+
*Broadcast-Unterteilung.
*Der Wert, der an der IP-Adresse des interessanten Oktetts stand  w wird durch k dividiert. Vom Ergebnis wird nur der ganzzahlige Wert betrachtet; dieser wird als m bezeichnet.
+
*Höhere Sicherheit des LANs.
<math>m= % k</math>
+
*Ungenutzte IP-Adressen können vermietet oder verkauft werden.
*Die Netzwerknummer wird durch Multiplikation von m und k berechnet und wird an die freigelassene Stelle geschrieben.
+
=Aufteilen von Netzwerken=
<math>i_n=m*k</math>
+
{|class="wikitable" style="text-align:center;
*Für den Broadcast werden wieder alle Oktette links des Interessanten Oktetts übernommen; an die Stelle des Interessanten Oktetts wird die Differenz des Produktes aus m+1  und  k  und dem Wert 1 geschrieben. Alle verbleibenden Oktette werden mit 255 aufgefüllt.
+
!colspan="32"| Netze
<math>i_b=((m+1)*k)–1</math>
+
|-
* Um die Anzahl der Hosts h zu errechnen nimmt man für jede Stelle rechts des Interessanten Oktetts den Wert r. Man potenziert nun 256 mit r  und  multipliziert diesen mit k; vom Ergebnis wird der Wert 2 abgezogen.
+
|colspan="32" style="width:100%;" |172.17.0.0/16
<math>h =(k * 256r)-2</math>
+
|-
 +
|colspan="16" style="width:50%;" |172.17.0.0/17
 +
|colspan="16" style="width:50%;" |172.17.128.0/17
 +
|-
 +
|colspan="8" style="width:25%;" |172.17.0.0/18
 +
|colspan="8" style="width:25%;" |172.17.64.0/18
 +
|colspan="8" style="width:25%;" |172.17.128.0/18
 +
|colspan="8" style="width:25%;" |172.17.192.0/18
 +
|-
 +
|colspan="4" style="width:12.5%;" |172.17.0.0/19
 +
|colspan="4" style="width:12.5%;" |172.17.32.0/19
 +
|colspan="4" style="width:12.5%;" |172.17.64.0/19
 +
|colspan="4" style="width:12.5%;" |172.17.96.0/19
 +
|colspan="4" style="width:12.5%;" |172.17.128.0/19
 +
|colspan="4" style="width:12.5%;" |172.17.160.0/19
 +
|colspan="4" style="width:12.5%;" |172.17.192.0/19
 +
|colspan="4" style="width:12.5%;" |172.17.224.0/19
 +
|}
  
=Binäre Berechnung=
 
  
Beispiel:
+
=Zusammenspiel=
IP: 172.16.4.2
+
{| class="wikitable"
NM: 255.255.248.0
+
|-
 +
! scope="col"| Oktett
 +
! scope="col"| Bit gesetzt
 +
! scope="col"| Netzgrösse
 +
! scope="col"| Netzanzahl
 +
|-
 +
|0
 +
|0
 +
|256
 +
|1
 +
|-
 +
|128
 +
|1
 +
|128
 +
|2
 +
|-
 +
|192
 +
|2
 +
|64
 +
|4
 +
|-
 +
|224
 +
|3
 +
|32
 +
|8
 +
|-
 +
|240
 +
|4
 +
|16
 +
|16
 +
|-
 +
|248
 +
|5
 +
|8
 +
|32
 +
|-
 +
|252
 +
|6
 +
|4
 +
|64
 +
|-
 +
|254
 +
|7
 +
|2
 +
|128
 +
|}
  
  
Die Netznummer erhält man, indem man die IP-Adresse mit der Netzmaske bitweise verundet:
+
= Berechnung des Netzes aus einer IPv4-Adresse mit CIDR-Notation =
  
E1
+
* Oft werden nur diese 2 Informationen bei Aufgaben gegeben
0
+
* z.B. soll für die IP '''158.233.43.194/21''' das passende Netz, die Maske und die Broadcast-Adresse gefunden werden
1
 
0
 
1
 
E1
 
0
 
0
 
1
 
1
 
A
 
0
 
0
 
0
 
1
 
  
 +
== Indizierung ==
  
IP: 10101100.00010000.00000100.00000010
+
* Man zählt die Oktette bei <math display="inline">0</math> beginnend
NM:    & 11111111.11111111.11111000.00000000
 
  
NN: 10101100.00010000.00000000.00000000
+
{{#drawio:subnet-oktett-indices}}
dezimal: 172.16.0.0 ist die Netznummer
 
  
Den Broadcast erhält man, indem man das Einerkomplement der Subnetzmaske mit der Netznummer addiert:
+
== Interessantes Oktett ==
  
NM: 11111111.11111111.11111000.00000000
+
* Das interessante Oktett ist die einzige zu berechnende Zahl
EK: 00000000.00000000.00000111.11111111
+
* Alles davor bleibt wie es war
 +
* Alles danach ist <math display="inline">0</math>
 +
* Das interessante Oktett berechnet sich durch die Division der CIDR Zahl durch <math display="inline">8</math>:
  
NN: 10101100.00010000.00000000.00000000
+
<math display="inline">\text{CIDR} \div 8 = \text{int. Oktettt}\ R\ \text{Rest}</math>
EK:      + 00000000.00000000.00000111.11111111
 
  
 +
* In diesem Beispiel wäre es:
  
BC: 10101100.00010000.00000111.11111111
+
<math display="inline">21 \div 8 = \underline{2}\ R\ 5</math>
dezimal: 172.16.7.255 ist Broadcast
 
  
 +
* Also ist das interessante Oktett die <math display="inline">43</math>
  
Die Anzahl der Hosts des Subnetzes erhält man, indem man das Einerkomplement aus der Subnetzmaske bildet und vom dem erhaltenen Wert 1 subtrahiert.
+
== Gruppengröße ==
  
NM: 11111111.11111111.11111000.00000000
+
* Der Rest aus der letzten Gleichung ist auch wichtig, da man dadurch die Intervalle zwischen den Netzen berechnen kann
EK: 00000000.00000000.00000111.11111111
 
 
210+29+28+27+26+25+24+23+22+21+20-1 = 2046 Hosts
 
  
 +
<math display="inline">2^{8 - \text{Rest}} = \text{Gruppengröße}</math>
  
 +
* Hier also:
  
NN: 172.16.0.0
+
<math display="inline">2^{8 - 5} = 2^3 = \underline{8}</math>
BC: 172.16.7.255
 
              Hostadressen: 172.16.0.1 – 172.16.7.254
 
  
EXKURS: Supernetting
+
== Netzbeginn ==
  
 +
* Um jetzt das Netz zu berechnen müssen wir nur noch die Ergebnisse in die folgende Gleichung einsetzen:
  
Unter Superneting versteht die Zusammenfassung von Netzen.  
+
<math display="inline">\lfloor \text{Wert d. int. Oktetts}  \text{ div }  \text{Gruppengröße} \rfloor \times \text{Gruppengröße} = \text{Netzbeginn}</math>
Vorteile sind kürzere Routingeinträge, kürzere Accesslisten, klarere Strukturen.  
 
  
Beispiel:
+
In <math display="inline">\lfloor ... \rfloor</math> stehende Zahlen werden ganzzahlig dividiert
 +
* Eingesetzt:
  
193.158.232.0/24 193.158.233.0/24 193.158.234.0/24 193.158.235.0/24
+
<math display="inline">\lfloor 43 \div 8 \rfloor \times 8 = \lfloor 5 \rfloor \times 8 = 5 \times 8 = \underline{40}</math>
  
193.158.232.0/23                     193.158.234.0/23
+
* Wie schon erwähnt bleibt alles vor dem interessanten Oktett gleich…
 +
* …und alles danach wird gleich <math display="inline">0</math> gesetzt
 +
* Daraus ergibt sich das folgende Netz: '''158.233.40.0/21'''
  
193.158.232.0/22
+
== Broadcast ==
 
  
 +
* Die Broadcast-IP lässt sich auch wieder durch das interessante Oktett berechnen:
  
 +
<math display="inline">\text{Netzbeginn} + \text{Gruppengröße} - 1 = \text{Broadcast}</math>
  
Beim Zusammenfügen von Netzen gelten folgende Regeln (alle müssen eingehalten werden):
+
* Mit unseren Zahlen also:
  
1. Man legt zwei Netze zusammen in dem man an der Netzwerkmaske das am weitesten
+
<math display="inline">40 + 8 - 1 = \underline{47}</math>
rechts stehende gesetzte Bit von 1 in 0 umwandelt.
 
  
2. Das Netz mit der niedrigsten Netznummer muss die neue Netznummer stellen.
+
* Alles dahinter wird dann auf <math display="inline">255</math> gesetzt
 +
* Hier wäre die Broadcast-IP also: '''158.233.47.255'''
  
3. Das Netz mit dem höchsten Broadcast muss den neuen Broadcast stellen.
+
= Verfügbare IPs Berechnen=
 +
*Zunächst muss festgestellt werden wie viele Bits für den Hostanteil verwendet werden können
  
4. Die Netze müssen kontinuierlich (fortlaufend) sein.  Es dürfen keine Lücken vorhanden sein. Sie müssen also nebeneinander liegen.
+
<math display="inline">32- \text{CIRDR} = \text{Verfügbare Bit Anzahl}</math>
  
Schlussfolgerung:
+
*Mithilfe der Bits können nun die verfügbaren IPs errechnet werden. Mit Abzug des Netzbeginns und des Broadcasts.
  
Man kann Netze zusammenfassen wenn der Wert w (interessantes Oktett der Netznummer)
+
<math display="inline">2^ \text{verfügbare Bit Anzahl} - 2 = \text{verfügbare IPs}</math>
des niedrigsten Netzes durch die Anzahl der zusammenzulegenden Netze ohne Rest teilbar ist.
 
  
w = interessantes Oktett des niedrigsten Netzes
+
= Netzmaske berechnen =
  
n  = Anzahl der zusammenzulegenden Netze
+
* Man kann die Netzmaske auch aus dem interessanten Oktett und der Gruppengröße berechnen
 +
* Dazu zieht man von 256 die Gruppengröße ab und setzt es anstelle des interessanten Oktetts ein:
  
 +
<math display="inline">256 - \text{Gruppengröße} = \text{Maske}</math>
  
Bedingung: w mod n = 0
+
* Hier also:
 +
 
 +
<math display="inline">256 - 8 = \underline{248}</math>
 +
 
 +
* Somit ist die Netzmaske: '''255.255.248.0'''
 +
 
 +
= Zusammenfassung der Schritte =
 +
 
 +
# <math display="inline">\text{CIDR} \div 8 = \text{int. Oktettt}\ R\ \text{Rest}</math>
 +
# <math display="inline">2^{8 - \text{Rest}} = \text{Gruppengröße}</math>
 +
# <math display="inline">\lfloor \text{Wert d. int. Oktetts} \div \text{Gruppengröße} \rfloor \times \text{Gruppengröße} = \text{Netzbeginn}</math>
 +
# <math display="inline">\text{Netzbeginn} + \text{Gruppengröße} - 1 = \text{Broadcast}</math>
 +
 
 +
= IPv6 =
 +
 
 +
* Der Rechenweg für IPv6 Netze ändert sich ein wenig
 +
* Man beginnt das Zählen wieder bei der 0. Stelle
 +
* als Bespiel wird nun die IPv6 Adresse 2001:db8:5ad3::12d1/42 benutzt
 +
 
 +
== interessante Stelle ==
 +
* Bei IPv6 muss man lediglich eine interessante Stelle bestimmen
 +
* Alles davor bleibt wie es war, alles danach ist <math display="inline">0</math>
 +
* Dazu rechnet man:
 +
 
 +
<math display="inline">\lfloor \text{CIDR} \div 4 \rfloor = \text{int. Stelle}</math>
 +
 
 +
* In unserem Beispiel wäre es also:
 +
 
 +
<math display="inline">\lfloor 42 \div 4 \rfloor = 11</math>
 +
 
 +
* D.h. wir lassen alles vor der 10. Stelle (in unserem Fall '''d''') wie es war und alles danach ist <math display="inline">0</math>: 2001:db8:5a'''d'''0::
 +
 
 +
== Gruppengröße ==
 +
 
 +
* Die Gruppengröße kann nun entweder <math display="inline">2</math>, <math display="inline">4</math>, <math display="inline">8</math> oder <math display="inline">16</math> sein, da jede Stelle max. 16 Ziffern repräsentieren kann
 +
* Dazu rechnet man:
 +
 
 +
<math display="inline">2 ^ {4 - (\text{CIDR}\;\text{mod}\;4)} = \text{Gruppengröße}</math>
 +
 
 +
* In unserem Beispiel wäre es also:
 +
 
 +
<math display="inline">2 ^ {4 - (42\;\text{mod}\;4)} = 2 ^ {4 - 2} = 4</math>
 +
 
 +
== Netzbeginn ==
 +
 
 +
* Die Berechnung hier ist genauso wie bei IPv4:
 +
 
 +
<math display="inline">\lfloor \text{Wert d. int. Stelle} \div \text{Gruppengröße} \rfloor \times \text{Gruppengröße} = \text{Netzbeginn}</math>
 +
 
 +
* jedoch muss die hexadezimale Ziffer vorher in die Dezimalschreibweise umgewandelt werden
 +
* In unserem Beispiel wäre es also:
 +
 
 +
<math display="inline">\lfloor \text{d} \div 4 \rfloor \times 4 = \lfloor \text{13} \div 4 \rfloor \times 4 = \lfloor 3.25 \rfloor \times 4 = 3 \times 4 = 12 = \underline{\text{c}}</math>
 +
 
 +
; Nicht vergessen die Zahl wieder in hexadezimal zu schreiben!
 +
 
 +
* Daraus ergibt sich das Netz: '''2001:0db8:5ac0::/42'''
 +
 
 +
== Netzende ==
 +
 
 +
* Der Broadcast existiert nicht mehr bei IPv6
 +
* Dennoch lässt sich das Ende eines Netzes immernoch auf diesselbe Art und Weise berechnen:
 +
 
 +
<math display="inline">\text{Netzbeginn} + \text{Gruppengröße} - 1 = \text{Netzende}</math>
 +
 
 +
* In unserem Beispiel wäre es also:
 +
 
 +
<math display="inline">\text{c} + 4 - 1 = 12 + 4 - 1 = 15 = \underline{\text{f}}</math>
 +
 
 +
* Jedoch füllt man die restlichen Stellen mit '''f''' auf
 +
* Hier wäre die Broadcast-IP also: '''2001:0db8:5af''f:ffff:ffff:ffff:ffff:ffff'''''
 +
 
 +
== Zusammenfassung der Schritte ==
 +
 
 +
# <math display="inline">\lfloor \text{CIDR} \div 4 \rfloor = \text{int. Stelle}</math>
 +
# <math display="inline">2 ^ {4 - \text{CIDR}\;\text{mod}\;4} = \text{Gruppengröße}</math>
 +
# <math display="inline">\lfloor \text{Wert d. int. Stelle} \div \text{Gruppengröße} \rfloor \times \text{Gruppengröße} = \text{Netzbeginn}</math>
 +
# <math display="inline">\text{Netzbeginn} + \text{Gruppengröße} - 1 = \text{Netzende}</math>

Aktuelle Version vom 15. Juli 2024, 07:51 Uhr

Warum das Ganze?

  • Subnetting wird dafür genutzt, um große aber auch kleinere physische Netzwerke in logische Teilnetze zu unterteilen.
  • Von außen hin aber, wird das Netz nur als ein großes wahrgenommen.
  • Durch die rasche Entwicklung des Internets, und dem somit verbundenen Mangel an IP-Adressen, wurde nach einer passenden Lösung gesucht.
  • Diese Lösung offenbarte sich unter anderem als Subnetting.

Gründe für Subnetting

  • Trennen von Netzwerken unterschiedlicher Topologie
  • Trennen von Netzwerken nach Standorten, Gebäuden und Etagen
  • Trennen von Netzwerken nach Abteilungen und Bereichen
  • Trennen von sensitiven Bereichen vom Hauptnetz
  • Trennen des Netzwerks in logische Arbeitsgruppen
  • Trennen des Netzwerks zur Reduzierung des Verkehrsaufkommens

Vorteil von Subnetting

  • Flexibilität bei der Adressierung für den Administrator.
  • Broadcast-Unterteilung.
  • Höhere Sicherheit des LANs.
  • Ungenutzte IP-Adressen können vermietet oder verkauft werden.

Aufteilen von Netzwerken

Netze
172.17.0.0/16
172.17.0.0/17 172.17.128.0/17
172.17.0.0/18 172.17.64.0/18 172.17.128.0/18 172.17.192.0/18
172.17.0.0/19 172.17.32.0/19 172.17.64.0/19 172.17.96.0/19 172.17.128.0/19 172.17.160.0/19 172.17.192.0/19 172.17.224.0/19


Zusammenspiel

Oktett Bit gesetzt Netzgrösse Netzanzahl
0 0 256 1
128 1 128 2
192 2 64 4
224 3 32 8
240 4 16 16
248 5 8 32
252 6 4 64
254 7 2 128


Berechnung des Netzes aus einer IPv4-Adresse mit CIDR-Notation

  • Oft werden nur diese 2 Informationen bei Aufgaben gegeben
  • z.B. soll für die IP 158.233.43.194/21 das passende Netz, die Maske und die Broadcast-Adresse gefunden werden

Indizierung

  • Man zählt die Oktette bei beginnend

Interessantes Oktett

  • Das interessante Oktett ist die einzige zu berechnende Zahl
  • Alles davor bleibt wie es war
  • Alles danach ist
  • Das interessante Oktett berechnet sich durch die Division der CIDR Zahl durch :

  • In diesem Beispiel wäre es:

  • Also ist das interessante Oktett die

Gruppengröße

  • Der Rest aus der letzten Gleichung ist auch wichtig, da man dadurch die Intervalle zwischen den Netzen berechnen kann

  • Hier also:

Netzbeginn

  • Um jetzt das Netz zu berechnen müssen wir nur noch die Ergebnisse in die folgende Gleichung einsetzen:

In stehende Zahlen werden ganzzahlig dividiert

  • Eingesetzt:

  • Wie schon erwähnt bleibt alles vor dem interessanten Oktett gleich…
  • …und alles danach wird gleich gesetzt
  • Daraus ergibt sich das folgende Netz: 158.233.40.0/21

Broadcast

  • Die Broadcast-IP lässt sich auch wieder durch das interessante Oktett berechnen:

  • Mit unseren Zahlen also:

  • Alles dahinter wird dann auf gesetzt
  • Hier wäre die Broadcast-IP also: 158.233.47.255

Verfügbare IPs Berechnen

  • Zunächst muss festgestellt werden wie viele Bits für den Hostanteil verwendet werden können

  • Mithilfe der Bits können nun die verfügbaren IPs errechnet werden. Mit Abzug des Netzbeginns und des Broadcasts.

Netzmaske berechnen

  • Man kann die Netzmaske auch aus dem interessanten Oktett und der Gruppengröße berechnen
  • Dazu zieht man von 256 die Gruppengröße ab und setzt es anstelle des interessanten Oktetts ein:

  • Hier also:

  • Somit ist die Netzmaske: 255.255.248.0

Zusammenfassung der Schritte

IPv6

  • Der Rechenweg für IPv6 Netze ändert sich ein wenig
  • Man beginnt das Zählen wieder bei der 0. Stelle
  • als Bespiel wird nun die IPv6 Adresse 2001:db8:5ad3::12d1/42 benutzt

interessante Stelle

  • Bei IPv6 muss man lediglich eine interessante Stelle bestimmen
  • Alles davor bleibt wie es war, alles danach ist
  • Dazu rechnet man:

  • In unserem Beispiel wäre es also:

  • D.h. wir lassen alles vor der 10. Stelle (in unserem Fall d) wie es war und alles danach ist : 2001:db8:5ad0::

Gruppengröße

  • Die Gruppengröße kann nun entweder , , oder sein, da jede Stelle max. 16 Ziffern repräsentieren kann
  • Dazu rechnet man:

  • In unserem Beispiel wäre es also:

Netzbeginn

  • Die Berechnung hier ist genauso wie bei IPv4:

  • jedoch muss die hexadezimale Ziffer vorher in die Dezimalschreibweise umgewandelt werden
  • In unserem Beispiel wäre es also:

Nicht vergessen die Zahl wieder in hexadezimal zu schreiben!
  • Daraus ergibt sich das Netz: 2001:0db8:5ac0::/42

Netzende

  • Der Broadcast existiert nicht mehr bei IPv6
  • Dennoch lässt sich das Ende eines Netzes immernoch auf diesselbe Art und Weise berechnen:

  • In unserem Beispiel wäre es also:

  • Jedoch füllt man die restlichen Stellen mit f auf
  • Hier wäre die Broadcast-IP also: 2001:0db8:5aff:ffff:ffff:ffff:ffff:ffff

Zusammenfassung der Schritte