Das Problem: Du bekommst eine Adresse und ein Präfix, zum Beispiel 192.168.10.77/26, und musst wissen, in welchem Netzwerk sie liegt, wo dieses Netzwerk endet und welche Adressen du vergeben kannst. Ein Subnetz-Rechner sagt es dir. Das Problem ist nur, dass der Rechner auch einen Tippfehler bereitwillig bestätigt und du es nicht merkst. Wenn du es einmal von Hand gelernt hast, entdeckst du den Fehler in etwa zehn Sekunden.
Ich benutze für jede Präfixlänge dieselbe Methode. Sie heißt Blockgrößen-Methode und braucht eine Subtraktion und ein bisschen Zählen.
Die Idee
Ein Subnetz ist ein Block aufeinanderfolgender Adressen. Die Größe des Blocks ist eine Zweierpotenz, und jeder Block beginnt bei einem Vielfachen seiner eigenen Größe. Das ist der ganze Trick. Stell dir eine lange Reihe von Briefkästen vor, nummeriert von 0 bis 255 und gruppenweise an die Wand geschraubt. Jede Gruppe hat gleich viele Kästen, und eine Gruppe beginnt immer dort, wo die vorherige aufgehört hat. Deine Aufgabe ist, herauszufinden, in welcher Gruppe deine Adresse wohnt.
Das Vorgehen
- Finde das interessante Oktett. Das ist das Oktett, in dem die Maske weder 255 noch 0 ist. Bei /26 ist es das vierte Oktett, bei /20 das dritte.
- Schreibe den Wert der Maske in diesem Oktett auf. Die Blockgröße ist 256 minus dieser Wert.
- Liste die Vielfachen der Blockgröße auf: 0, 64, 128, 192 bei einer Blockgröße von 64.
- Finde das größte Vielfache, das kleiner oder gleich dem Wert deiner Adresse in diesem Oktett ist. Das ist die Netzwerkadresse (Oktette links davon bleiben, wie sie sind, Oktette rechts davon werden 0).
- Das nächste Vielfache minus 1 ist die letzte Adresse im Block. Das ist die Broadcast-Adresse (Oktette rechts davon werden 255).
- Nutzbare Hosts reichen von Netzwerkadresse plus 1 bis Broadcast minus 1.
Wenn du die Maskenwerte nicht auswendig kennst: Sie sind kurz. Im interessanten Oktett lauten die Werte 128, 192, 224, 240, 248, 252 für 1 bis 6 Maskenbits in diesem Oktett. Die Blockgrößen sind 128, 64, 32, 16, 8, 4. Lerne diese eine Zeile, und du hast den größten Teil geschafft.
Beispiel eins: 192.168.10.77/26
Ein /26 entspricht 255.255.255.192. Das interessante Oktett ist das vierte, und der Wert ist 192. Die Blockgröße ist 256 - 192 = 64.
Vielfache von 64: 0, 64, 128, 192. Die Zahl 77 liegt zwischen 64 und 128, also:
Network: 192.168.10.64
Broadcast: 192.168.10.127
Usable: 192.168.10.65 to 192.168.10.126
Hosts: 62
Die Hostanzahl ist die Blockgröße minus 2, weil die erste Adresse das Netzwerk bezeichnet und die letzte der Broadcast ist. Das Vergessen dieser Subtraktion ist der häufigste Fehler, den ich sehe.
Beispiel zwei: Oktettgrenze überschreiten, 172.16.45.200/20
Ein /20 entspricht 255.255.240.0. Das interessante Oktett ist jetzt das dritte, mit dem Wert 240. Die Blockgröße ist 256 - 240 = 16, und sie zählt im dritten Oktett.
Vielfache von 16: 0, 16, 32, 48. Das dritte Oktett unserer Adresse ist 45, das zwischen 32 und 48 liegt. Das vierte Oktett, 200, spielt für das Finden des Blocks keine Rolle.
Network: 172.16.32.0
Broadcast: 172.16.47.255
Usable: 172.16.32.1 to 172.16.47.254
Hosts: 4094
Beachte, dass .0 und .255 im vierten Oktett hier ganz normale Hostadressen sind, solange sie in der Mitte des Blocks liegen. 172.16.40.0 ist zum Beispiel ein gültiger Host in diesem Subnetz. Wer Subnetting nur an /24-Netzen gelernt hat, ist davon oft überrascht. Die einzigen beiden reservierten Adressen sind die erste und die letzte des gesamten Blocks.
Die Hostanzahl: 12 Hostbits, 2 hoch 12 ist 4096, minus 2 ergibt 4094.
Einen Block in kleinere aufteilen
Dieselbe Methode funktioniert auch umgekehrt, wenn du planst. Angenommen, du hast 192.168.10.0/24 und willst vier gleich große Subnetze. Vier Subnetze brauchen 2 zusätzliche Bits, das Präfix wird also /26, und die Blockgröße ist 64:
192.168.10.0/26 hosts .1 to .62
192.168.10.64/26 hosts .65 to .126
192.168.10.128/26 hosts .129 to .190
192.168.10.192/26 hosts .193 to .254
Jede Startadresse ist ein Vielfaches von 64, und das ist dein Plausibilitätscheck. Wenn du je ein /26 aufschreibst, das bei .50 beginnt, stimmt etwas nicht, denn .50 ist kein Vielfaches von 64. Ein Router lehnt das ab oder, schlimmer, behandelt es stillschweigend als etwas anderes, als du gemeint hast.
Für ein Home-Lab entscheide ich auf diese Weise auch, wie groß ich jedes VLAN mache. Ein IoT-Segment mit dreißig Geräten braucht kein /24. Ein /26 bietet 62 Hosts und lässt Platz zum Wachsen, und die kleinere Broadcast-Domäne ist ein kleiner Bonus.
Das Ergebnis binär überprüfen
Wenn ein Ergebnis seltsam aussieht, prüfe es binär, und zwar nur für das interessante Oktett. Nimm die 45 aus dem /20-Beispiel: 45 ist 00101101. Die Maske in diesem Oktett ist 240, also 11110000. Behalte die oberen vier Bits der Adresse und setze den Rest auf null: 00100000, das ist 32. Das passt zur Netzwerkadresse, die wir gefunden haben. Die Blockgrößen-Methode ist genau diese Operation, nur ohne das Aufschreiben der Bits.
Häufige Fehler
- Das Minus 2 bei der Hostanzahl vergessen. Ein /30 hat 4 Adressen und 2 nutzbare Hosts, weshalb es traditionell die erste Wahl für eine Punkt-zu-Punkt-Verbindung war. (Viele moderne Geräte unterstützen auf Punkt-zu-Punkt-Verbindungen auch /31, aber prüfe deine Geräte, bevor du dich darauf verlässt.)
- Das falsche Oktett verwenden. Bei einem /20-Präfix findet die Arbeit im dritten Oktett statt, und die Blockgröße ist nicht 16 Adressen, sondern 16 Werte des dritten Oktetts, also 4096 Adressen.
- Blöcke ab 1 statt ab 0 zählen. Der erste Block beginnt bei 0.
- Den Broadcast als Start des nächsten Netzwerks lesen. Der Broadcast ist eins weniger als das nächste Vielfache, nicht gleich diesem.
- Dem Rechner ohne Plausibilitätscheck vertrauen. Wenn die Netzwerkadresse kein Vielfaches der Blockgröße ist, ist die Antwort falsch.
Warum der Aufwand
Ich habe erlebt, dass überlappende Subnetze einen ganzen Nachmittag lang seltsames Routing verursacht haben, und die Ursache war eine um ein Bit falsch eingetippte Maske. Wenn ich eine Site-to-Site-Verbindung plane, etwa zwei Häuser mit 192.168.10.0/24 und 192.168.20.0/24, will ich mit bloßem Auge beweisen können, dass sich nichts überlappt, bevor ich eine Konfiguration anfasse. Mit Subnetting von Hand geht das auf der Rückseite eines Briefumschlags. Es ist langweilig, und langweilig ist genau das, was ich von einem Adressplan will.
Als nächsten Schritt: Nimm 10.20.37.150/21 und ermittle Netzwerkadresse, Broadcast und nutzbaren Bereich auf Papier, ohne Rechner. Prüfe es dann mit unserem Rechner und schau, ob ihr euch einig seid.
Have a question about this guide?
Create a free account to ask the community and join the discussion. Members who run the real thing answer every day.
0 comments
Open in the forumSign in to comment.