Subnetzmaske berechnen (CIDR erklärt mit einem praktischen Beispiel)
Um aus einem CIDR-Präfix eine Subnetzmaske zu berechnen, setzt man von links beginnend genau so viele Bits einer 32-Bit-Zahl auf 1, füllt den Rest mit 0 auf und liest jede 8-Bit-Gruppe anschließend als Dezimalzahl. Ein /24-Präfix setzt die ersten 24 Bits auf 1, das ergibt 255.255.255.0.
Was die CIDR-Zahl wirklich bedeutet
Eine IPv4-Adresse besteht aus 32 Bits, dargestellt als vier 8-Bit-Gruppen (Oktette) in Dezimalschreibweise. Die CIDR-Notation, der Schrägstrich mit Zahl nach einer Adresse wie 192.168.1.0/24, gibt an, wie viele dieser 32 Bits als Netzwerkanteil fest vorgegeben sind. Die restlichen Bits stehen den Hosts in diesem Netzwerk zur Verfügung.
Ein /24 legt die ersten 24 Bits fest und lässt 8 Bits für Hosts übrig. Ein /26 legt 26 Bits fest, es bleiben nur noch 6. Je weniger Bits für Hosts übrig sind, desto weniger Geräte passen in dieses Netzwerk, und die Rechnung dahinter ist eine simple Zweierpotenz: Ein Netzwerk mit h Host-Bits hat 2^h Adressen insgesamt.
Die Maske von Hand berechnen: 192.168.1.0/24
Nimm das CIDR-Präfix, 24, und schreibe eine 32-Bit-Zahl, bei der die ersten 24 Bits auf 1 stehen und die letzten 8 auf 0:
11111111.11111111.11111111.00000000
Wandle jede 8-Bit-Gruppe in eine Dezimalzahl um. Acht Einsen hintereinander ergeben 255, acht Nullen ergeben 0:
255 . 255 . 255 . 0
Das ist die Subnetzmaske: 255.255.255.0. Um die Netzwerkadresse zu erhalten, legt man IP-Adresse und Maske binär übereinander und wendet bitweise ein UND an: eine 1 bleibt nur dort stehen, wo beide Eingaben eine 1 haben.
| Oktett 1 | Oktett 2 | Oktett 3 | Oktett 4 | |
|---|---|---|---|---|
| IP-Adresse | 11000000 | 10101000 | 00000001 | 00000000 |
| Subnetzmaske | 11111111 | 11111111 | 11111111 | 00000000 |
| Netzwerk (UND) | 11000000 | 10101000 | 00000001 | 00000000 |
Das ergibt eine Netzwerkadresse von 192.168.1.0, in diesem Fall unverändert, weil der Hostanteil der ursprünglichen Adresse schon vollständig aus Nullen bestand. Die Broadcast-Adresse ist die Umkehrung: Man nimmt die Netzwerkadresse und setzt jedes Host-Bit auf 1, hier ergibt das 192.168.1.255. Alles dazwischen, 192.168.1.1 bis 192.168.1.254, ist eine nutzbare Host-Adresse. Das sind 256 Adressen insgesamt in diesem Block, minus 2 reservierte (Netzwerk- und Broadcast-Adresse), macht 254 nutzbare Hosts.
Ein /24 in vier /26-Subnetze aufteilen
Angenommen, man hat 192.168.1.0/24 und will es in vier kleinere, getrennte Netzwerke aufteilen, vielleicht eines pro Stockwerk eines Bürogebäudes. Der Schritt von /24 zu /26 leiht sich 2 zusätzliche Bits für den Netzwerkanteil (26 − 24 = 2), und 2 geliehene Bits erzeugen immer 2^2 = 4 gleich große Subnetze. Jedes /26-Subnetz hat 32 − 26 = 6 Host-Bits übrig, also fasst jedes 2^6 = 64 Adressen insgesamt, davon 62 nutzbar.
| Subnetz | Netzwerkadresse | Nutzbarer Bereich | Broadcast |
|---|---|---|---|
| 1 | 192.168.1.0/26 | 192.168.1.1 – 192.168.1.62 | 192.168.1.63 |
| 2 | 192.168.1.64/26 | 192.168.1.65 – 192.168.1.126 | 192.168.1.127 |
| 3 | 192.168.1.128/26 | 192.168.1.129 – 192.168.1.190 | 192.168.1.191 |
| 4 | 192.168.1.192/26 | 192.168.1.193 – 192.168.1.254 | 192.168.1.255 |
Auffällig: Jede Netzwerkadresse springt um 64, die Blockgröße, und die Broadcast-Adresse jedes Subnetzes liegt genau eins unter der Netzwerkadresse des nächsten Subnetzes. Dieses Muster gilt unabhängig davon, in welches Präfix man aufteilt: Die Blockgröße ist immer 2^h, wobei h die Anzahl der verbleibenden Host-Bits ist, und die Subnetze kacheln den Adressraum lückenlos und ohne Überlappung.
CIDR-zu-Subnetzmaske-Referenztabelle
Eine Übersicht der Präfixe, denen man in der Praxis begegnet, von einer einzelnen /32-Host-Route bis zu einem /8-Block:
| CIDR | Subnetzmaske | Adressen gesamt | Nutzbare Hosts |
|---|---|---|---|
| /8 | 255.0.0.0 | 16.777.216 | 16.777.214 |
| /16 | 255.255.0.0 | 65.536 | 65.534 |
| /24 | 255.255.255.0 | 256 | 254 |
| /25 | 255.255.255.128 | 128 | 126 |
| /26 | 255.255.255.192 | 64 | 62 |
| /27 | 255.255.255.224 | 32 | 30 |
| /28 | 255.255.255.240 | 16 | 14 |
| /29 | 255.255.255.248 | 8 | 6 |
| /30 | 255.255.255.252 | 4 | 2 |
| /31 | 255.255.255.254 | 2 | 2 (Punkt-zu-Punkt) |
| /32 | 255.255.255.255 | 1 | 1 (Host-Route) |
Mit der eigenen Adresse rechnen
Gib unten eine beliebige IPv4-Adresse mit CIDR-Präfix oder Maske ein, und die Aufschlüsselung, Netzwerkadresse, Broadcast, nutzbarer Bereich und die Maske in Binärform, aktualisiert sich sofort.
Häufige Fehler und Sonderfälle
Vergessen, dass Netzwerk- und Broadcast-Adresse keine nutzbaren Hosts sind. Ein /24 hat 256 Adressen insgesamt, aber nur 254, die man einem Gerät tatsächlich zuweisen kann. Ein klassischer Off-by-one-Fehler ist es, die Kapazitätsplanung an der Gesamtzahl der Adressen statt an der nutzbaren Zahl auszurichten und dann zwei Adressen früher als erwartet an die Grenze zu stoßen.
/31 und /32 wie jedes andere Präfix behandeln. RFC 3021 macht /31 zu einem Sonderfall für Punkt-zu-Punkt-Verbindungen: Beide Adressen des Paares sind nutzbar, weil in einem 2-Adressen-Block schlicht kein Platz ist, um eine für den Broadcast zu opfern. Ein /32 ist eine einzelne, eigenständige Adresse, meist als Host-Route oder Loopback-Adresse anzutreffen, und hat gar keine Netzwerk- oder Broadcast-Adresse, die man abziehen müsste.
Subnetzmaske und Wildcard-Maske verwechseln. Die Subnetzmaske markiert Netzwerk-Bits mit 1en, 255.255.255.0 für ein /24. Die Wildcard-Maske ist ihre bitweise Umkehrung und markiert stattdessen Host-Bits mit 1en, 0.0.0.255 für dasselbe /24. Wildcard-Masken tauchen in Access-Control-Listen auf Cisco- und ähnlichen Geräten auf, und wer dort eine Subnetzmaske einträgt, wo eine Wildcard-Maske erwartet wird (oder umgekehrt), erwischt still und leise die falsche Menge an Adressen.
Annehmen, eine Subnetzmaske sei immer eine gültige, zusammenhängende Folge von Einsen. Eine Maske wie 255.0.255.0 sieht auf den ersten Blick plausibel aus, ist aber ungültig: Die 1-Bits bilden von links keinen einzigen, ununterbrochenen Block, also lässt sie sich gar nicht als CIDR-Präfix ausdrücken. Echte Subnetzmasken bestehen immer aus einer bestimmten Anzahl führender 1-Bits, gefolgt von 0-Bits, nichts anderes.
Häufig gestellte Fragen
Wie wandle ich eine Subnetzmaske zurück in ein CIDR-Präfix um?
Zähle die Anzahl der 1-Bits in der Maske, von links nach rechts gelesen in Binärform. 255.255.255.0 ist 11111111.11111111.11111111.00000000, das sind 24 Einsen, also ein /24. Das funktioniert nur sauber, wenn die Maske eine gültige, zusammenhängende Folge von Einsen gefolgt von Nullen ist; eine Maske wie 255.0.255.0 hat keine CIDR-Entsprechung, weil ihre Bits nicht zusammenhängend sind.
Warum ergibt das Leihen von Bits für Subnetze immer eine Zweierpotenz? Jedes Bit, das man sich vom Hostanteil leiht, verdoppelt die Anzahl möglicher Werte, die dieses Bit annehmen kann, 0 oder 1. Leiht man 1 Bit, erhält man 2 Subnetze, leiht man 2, erhält man 4, leiht man 3, erhält man 8. Das ist derselbe Grund, warum ein Byte (8 Bits) 256 verschiedene Werte darstellen kann: Jedes zusätzliche Bit verdoppelt die Anzahl.
Was ist der Unterschied zwischen einer Subnetzmaske und einem Standardgateway? Eine Subnetzmaske sagt einem Gerät, welcher Teil einer IP-Adresse das Netzwerk und welcher der Host ist, damit es feststellen kann, ob eine andere Adresse im eigenen lokalen Netzwerk liegt. Ein Standardgateway ist eine separate Einstellung, die IP-Adresse des Routers, an den ein Gerät Datenverkehr schickt, wenn das Ziel nicht im eigenen lokalen Netzwerk liegt. Beides muss korrekt konfiguriert sein, damit ein Gerät irgendetwas außerhalb seines eigenen Subnetzes erreicht.
Kann ich mit einem Präfix subnetten, das nicht glatt aufgeht, etwa ein /24 in 3 Netzwerke aufteilen? Nicht in genau 3 gleich große Teile, nein, denn Subnetting teilt einen Block immer in eine Zweierpotenz auf. Ein /24 lässt sich in 2, 4, 8, 16 und so weiter aufteilen, niemals in 3. In der Praxis bedeutet das: Man teilt in 4 auf (2 Bits geliehen) und lässt entweder ein /26 ungenutzt oder unterteilt es für eine kleinere Abteilung weiter, statt eine exakte Drei-Wege-Teilung zu erzwingen.