Netzmaske
Die Netzmaske trennt eine IP-Adresse in Netz- und Hostanteil. Bei IPv4 hat sie 32 Bit, bei IPv6 spricht man von der Präfixlänge.
Die Netzmaske legt fest, welcher Teil einer IP-Adresse das Netz bezeichnet und welcher den einzelnen Anschluss darin. Ohne diese Angabe ist eine IP-Adresse nicht verwendbar: Ein Gerät kann sonst nicht entscheiden, ob ein Ziel im eigenen Netz erreichbar ist oder über einen Router angesprochen werden muss.
Gebräuchlich sind auch die Bezeichnungen Subnetzmaske und Subnetmask.
Aufbau bei IPv4
Die Netzmaske ist genauso lang wie die Adresse selbst, also 32 Bit. Die von links gesetzten Bits kennzeichnen den Netzanteil, die auf null gesetzten den Hostanteil.
Die gesetzten Bits müssen zusammenhängend am Anfang stehen. Ein Wechsel zwischen Einsen und Nullen innerhalb der Maske war in frühen Spezifikationen zwar nicht ausgeschlossen, ist mit der Einführung des klassenlosen Routings aber unzulässig geworden.
Für die Schreibweise haben sich zwei Formen etabliert:
dezimal 255.255.255.0 CIDR /24
Beide bezeichnen dasselbe: 24 gesetzte Bits, also drei Byte Netzanteil und ein Byte Hostanteil. Die CIDR-Schreibweise gibt lediglich die Anzahl der gesetzten Bits an und wird an die Adresse angehängt — 192.168.10.5/24.
Berechnung des Netzanteils
Ein Gerät ermittelt das Netz, indem es Adresse und Maske bitweise mit UND verknüpft. Alle Stellen, an denen die Maske eine Eins trägt, bleiben erhalten; alle übrigen werden auf null gesetzt.
Beispiel für 192.168.10.130 mit der Maske /26, also 255.255.255.192. Nur das letzte Byte ist interessant:
Adresse 130 = 1000 0010 Maske 192 = 1100 0000 UND = 1000 0000 = 128
Das Netz lautet damit 192.168.10.128/26. Es umfasst die Adressen .128 bis .191.
Dieselbe Rechnung führt jedes Gerät für jedes Ziel durch. Fällt das Ergebnis mit dem eigenen Netz zusammen, wird direkt zugestellt; andernfalls geht das Paket an den Router.
Nutzbare Adressen
Ein IPv4-Netz enthält zwei Adressen, die nicht an Geräte vergeben werden: die Netzadresse mit lauter Nullen im Hostanteil und die Broadcast-Adresse mit lauter Einsen.
| Präfix | Netzmaske | Adressen | nutzbar |
|---|---|---|---|
| /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 |
Jedes zusätzliche Präfixbit halbiert die Zahl der Adressen. Ein /30 ist damit das kleinste Netz, das nach der klassischen Regel noch zwei Geräte aufnehmen kann — lange die übliche Wahl für Punkt-zu-Punkt-Verbindungen zwischen Routern.
Sonderfälle /31 und /32
Für Punkt-zu-Punkt-Strecken ist die Broadcast-Adresse überflüssig: Es gibt nur einen möglichen Empfänger. Deshalb ist es zulässig, dort ein /31 zu verwenden und beide Adressen zu vergeben. Gegenüber einem /30 halbiert das den Verbrauch.
Ein /32 bezeichnet eine einzelne Adresse ohne umgebendes Netz. Es begegnet einem bei Host-Routen, bei Adressen auf Loopback-Schnittstellen und in Filterregeln, die genau ein Ziel treffen sollen.
Von Netzklassen zu CIDR
Ursprünglich ergab sich die Aufteilung aus der Adresse selbst. Die ersten Bits bestimmten die Netzklasse und damit die Grenze zwischen Netz- und Hostanteil: Klasse A mit 8 Bit Netzanteil, Klasse B mit 16, Klasse C mit 24. Eine gesonderte Maske war entbehrlich.
Dieses Verfahren verschwendete Adressraum in großem Umfang. Wer mehr als 254 Adressen benötigte, erhielt ein Klasse-B-Netz mit über 65.000 — von denen die meisten ungenutzt blieben.
Mit dem klassenlosen Routing wurde die Bindung an die ersten Bits 1993 aufgehoben. Seither kann die Grenze an jeder Bitposition liegen, und die Maske ist zwingender Bestandteil der Adressangabe. Netze lassen sich dadurch bedarfsgerecht schneiden und auf mehreren Ebenen unterschiedlich fein unterteilen.
Die Begriffe Klasse A, B und C sind seitdem historisch. Sie tauchen weiterhin in älteren Unterlagen und in der Umgangssprache auf, haben technisch aber keine Bedeutung mehr.
Wildcard-Maske
In manchen Zusammenhängen — vor allem in Filterregeln und Routingprotokollen einiger Hersteller — begegnet eine invertierte Schreibweise. Dort kennzeichnen die auf null gesetzten Bits den zu prüfenden Anteil.
Netzmaske 255.255.255.0 Wildcard 0. 0. 0.255
Die Verwechslung beider Formen ist eine häufige Fehlerquelle, weil eine falsch herum notierte Maske je nach Fall zu weit oder zu eng greift, ohne einen Syntaxfehler zu erzeugen.
IPv6: Präfixlänge statt Maske
Bei IPv6 existiert keine ausgeschriebene Netzmaske. Angegeben wird ausschließlich die Präfixlänge in der bekannten Schreibweise mit Schrägstrich:
2001:db8:4711:1::5/64
Der Begriff Netzmaske ist hier streng genommen unzutreffend; korrekt ist Präfixlänge. Da die Adresse 128 Bit umfasst, wäre eine ausgeschriebene Maske unhandlich und ohne zusätzlichen Nutzen.
Ein zweiter Unterschied betrifft die Adresszählung: IPv6 kennt keinen Broadcast. Es entfällt damit die Adresse, die bei IPv4 dafür reserviert ist. Freigehalten wird lediglich die Adresse mit lauter Nullen im Hostanteil, die als Subnet-Router-Anycast dient.
Warum /64
Für Netzsegmente ist bei IPv6 die Präfixlänge /64 der Regelfall — unabhängig davon, ob dort zwei Geräte hängen oder zweihundert.
Der Grund liegt in der automatischen Adresskonfiguration: Ein Gerät bildet seinen Adressanteil selbst und benötigt dafür genau 64 Bit. Bei kleineren Netzen funktioniert das Verfahren nicht mehr, weshalb ein /64 nicht aus Großzügigkeit gewählt wird, sondern aus technischer Notwendigkeit.
Die aus IPv4 vertraute Übung, Netze möglichst knapp zu bemessen, entfällt damit. Ein einzelnes /64 enthält mehr Adressen, als der gesamte IPv4-Adressraum umfasst — Adressknappheit innerhalb eines Segments ist kein Thema mehr.
Übliche Präfixlängen oberhalb davon:
| Präfix | Verwendung |
|---|---|
| /48 | Zuteilung an einen größeren Standort |
| /56 | häufige Zuteilung an Privatanschlüsse |
| /64 | einzelnes Netzsegment |
| /127 | Punkt-zu-Punkt-Verbindung zwischen Routern |
| /128 | einzelne Adresse |
Ein /56 erlaubt 256 Segmente, ein /48 deren 65.536. Unterteilt wird bei IPv6 also nicht mehr, um Adressen zu sparen, sondern um Netze zu gliedern.
Häufige Fehler
Unterschiedliche Masken im selben Segment. Zwei Geräte mit derselben Adresse, aber verschiedener Maske treffen unterschiedliche Entscheidungen darüber, wer direkt erreichbar ist. Das Ergebnis ist eine Verbindung, die nur in eine Richtung funktioniert — ein Fehlerbild, das leicht für ein Filterproblem gehalten wird.
Netzadresse oder Broadcast vergeben. Bei IPv4 sind die erste und die letzte Adresse eines Netzes nicht verwendbar. Bei automatisch geschnittenen Bereichen wird das gelegentlich übersehen.
Zu knapp geschnitten. Ein /29 bietet sechs nutzbare Adressen. Kommt ein siebtes Gerät hinzu, muss das gesamte Netz neu geschnitten werden — mit Auswirkungen auf Routen, Filterregeln und alles, was auf den Bereich verweist.
Bei IPv6 vom /64 abgewichen. Ein Segment mit /80 oder /112 funktioniert für fest konfigurierte Adressen, bricht aber die automatische Konfiguration. Der Fehler zeigt sich erst, wenn ein Gerät ohne manuelle Einstellung angeschlossen wird.