CIDR: Was ist Classless Inter-Domain Routing?

Das Internet ist sehr groß, doch selbst im globalen Netz gibt es tatsächlich Platzmangel: Das System der IP-Adressen, wie wir es derzeit verwenden (IPv4) ist schon längst ausgeschöpft. Alle möglichen Adressen (immerhin 4.294.967.296) sind bereits vergeben. Deshalb musste man sich bereits vor einigen Jahrzehnten eine Lösung überlegen. CIDR hilft, den Adressrahmen zu erweitern.

Was eigentlich als kurzzeitige Übergangslösung gedacht war, ist nun schon seit über 20 Jahren aktiv, und da die flächendeckende Einführung von IPv6 noch auf sich warten lässt, wird CIDR wohl auch in den nächsten Jahren weiterhin wichtig bleiben. Grund genug, sich über das Classless-Inter-Domain-Routing zu informieren.

Wofür wurde CIDR entwickelt?

Bereits 1993 war klar, dass das Internet schneller wächst, als man zunächst angenommen hatte. Deshalb musste eine Lösung her: Diese bestand darin, die Netzklassen aufzugeben. Der IP-Adressraum war ursprünglich eingeteilt in fünf Klassen. Wenn ein Unternehmen an das Internet angeschlossen werden wollte, musste es IP-Adressen aus der passenden Klasse wählen. Für jede Klasse wurden unterschiedlich viele Oktette (so nennt man die vier Zahlenblöcke der IP-Adressen) für die Identifizierung der Netze herangezogen. Die jeweils restlichen Oktette bestimmten die Anzahl der Hosts in einem Netz.

Klasse A Klasse B Klasse C Klasse D Klasse E  
0.0.0.0 - 127.255.255.255 128.0.0.0 - 191.255.255.255 192.0.0.0 - 223.255.255.255 224.0.0.0 - 239.255.255.255 240.0.0.0 - 255.255.255.255  

So war es in einem Klasse-A-Netz möglich, über 16 Millionen Hosts unterzubringen, doch standen nur 128 (0-127) dieser Netze zur Verfügung. In der Klasse B hingegen waren etwas mehr als 16.000 Netze möglich, wobei aber jedes Netz 65.534 Hosts enthalten konnte. Die Netze in Klasse C schließlich hatten nur ein Oktett übrig und konnten somit nur 254 (1-254, da 0 und 255 immer reserviert sind) Hosts unterbringen.

Es hat sich gezeigt, dass diese Einteilung in den meisten Fällen nicht praktikabel war: Für viele Unternehmen ist ein Netz mit nur 254 Teilnehmern viel zu klein, aber zigtausend Hosts benötigen nur die wenigsten Netzwerke. Dies führte schließlich zu einer großen Verschwendung, da Unternehmen zwangsläufig ungenutzte Adressen vereinnahmten. Um besser auf die Bedürfnisse der Internetnutzer eingehen zu können, entschied man sich, die Netzgrößen flexibler zu gestalten, Routingtabellen in Internetroutern zu verkleinern und die Abnahme der verfügbaren IP-Adressen zu verlangsamen.

Routingtabellen liegen in einem Router und helfen selbigem, den Weg zur richtigen Zieladresse zu finden. Vom Ursprung bis zum Ziel durchlaufen Datenpakete viele Knotenpunkte: Damit Router also erkennen, wie der optimale Pfad durch das Netz aussieht, wird eine entsprechende Tabelle mit Informationen gefüttert. Die Größe der Datei wächst exponenziell, wenn für jegliches mögliche Ziel ein Weg eingeführt werden muss. Da CIDR Adressen zu Blöcken zusammenstellt, müssen nicht mehr so viele Informationen in den Routingtabellen gespeichert werden. Man fasst also mehrere Adressen zu einer Route zusammen.

Wie funktioniert CIDR?

CIDR basiert auf der Idee von Subnetzmasken. Eine Maske wird über eine IP-Adresse gelegt und erzeugt so ein Teilnetz: ein Netz, das dem Internet untergeordnet ist. Die Subnetzmaske signalisiert dem Router, welcher Teil der IP-Adresse den Hosts zugeordnet ist (den einzelnen Teilnehmern des Netzes) und welcher das Netz bestimmt.

Statt eine Subnetzmaske hinzuzufügen, kann man eine Spezifikation durch das Classless-Inter-Domain-Routing aber auch in Form von Suffixen direkt in die IP-Adresse integrieren. Das verkürzt aber nicht nur die Darstellung: CIDR ermöglicht es zudem, neben Subnetzen auch Supernetze zu schaffen. Das bedeutet, dass man nicht nur ein Netz genauer unterteilen, sondern auch mehrere Netze zusammenfassen kann.

Supernetting ist zum Beispiel dann wichtig, wenn ein Unternehmen mehrere Standorte hat, aber alle Rechner im gleichen Netz behandeln möchte. Durch Supernetting lassen sich mehrere Netze zu einer Route zusammenfassen, weshalb die Technik auch Route Aggregation (also Gruppierung von Routen) genannt wird. Das bedeutet, dass Datenpakete nur zu einem Ziel gesandt werden – unabhängig davon, an welchem Standort die Hosts sitzen.

Fakt

Wichtiger Bestandteil von CIDR ist VLSM: Die Variable Length Subnet Mask ermöglicht überhaupt erst, dass Subnetze auch mit variablen Längen und nicht nur in den Größenordnungen der Netzklassen realisierbar sind.

Die CIDR-Notation

Anhand der IP-Adresse ließ sich früher ablesen, zu welcher Klasse sie gehörte. So lagen die Klasse-C-Netze zum Beispiel im Adressraum 192.0.0.0 bis 223.255.255.255. Eine Subnetzmaske – zum Beispiel 255.255.255.0 – legt sich wie eine Schablone über die IP-Adresse und bestimmt die Hosts. Im CIDR-Format steckt diese Information als Suffix in der IP-Adresse selbst. Das grundlegende Prinzip bleibt aber das gleiche: Das Suffix gibt an, welche Stellen (Bits) der IP-Adresse die Network-ID darstellen und damit auch automatisch, welche Bits den Bereich der Host-ID ausmachen. Möchte man das im Detail verstehen, ist es sinnvoll, eine Subnetzmaske in ihrer binären Form zu betrachten:

255.255.255.0 ≙ 11111111 11111111 11111111 00000000

In der CIDR-Notation wäre also diese (Klasse-C-) Subnetzmaske /24, da die ersten 24 Bits den Netzteil der IP-Adresse bestimmen. Und es ist eben möglich, Oktette nicht nur komplett mit Einsen oder Nullen zu füllen, sondern mittels VLSM auch flexiblere Subnetze zu erstellen. So entspricht zum Beispiel die Maske /25 dem binären Wert 11111111 11111111 11111111 10000000 und dieser wiederum (in der Dotted-Decimal-Notation) 255.255.255.128.

Hinweis

Aber auch mit CIDR und VLSM müssen Bits in Subnetzmasken immer von links nach rechts gefüllt werden und dürfen nicht ungeordnet auf 1 oder 0 stehen.

CIDR-Blocks: Erklärung & Tabelle

Eine IPv4-Adresse besteht aus 32 Bits. Deutlich wird dies, wenn man die dezimale Notation in das binäre Äquivalent umrechnet: 201.105.7.34 entspricht 11001001 01101001 00000111 00100010. Die binäre Schreibweise – und damit die Rechenweise, mit der Computer operieren – einer IP-Adresse besteht aus 32 Stellen, die entweder 1 oder 0 sein können: also 32 Bits. Daher liegen auch die möglichen Suffixe in der CIDR-Notation im Bereich von 0 bis 32.

Beim Erstellen von Subnetzen geht es darum, Gemeinsamkeiten zu schaffen. 201.105.7.34/24 liegt also im gleichen Netz wie 201.105.7.1/24. Das Suffix signalisiert, dass nur die ersten 24 Bits zum Netzteil gerechnet werden. Daher müssen diese gleich sein, sollen beide Adressen zum gleichen Netz zählen. Die übrigen Bits sind demnach für den Host-Teil reserviert. Die Anzahl der Bits, die man im CIDR-Format nach dem Schrägstrich sieht, gibt die Anzahl der Stellen (von links nach rechts) an, die zum Netzteil der IP-Adresse gehören. Folgende Tabelle zeigt, welche Subnetzmasken hinter der CIDR-Notation stecken und wie viele Host-Adressen sie jeweils ermöglichen.

Nicht alle Netze können aber auch Hosts stellen. Netze mit /31 haben schlichtweg nur 2 mögliche IP-Adressen für Hosts, die dann aber für die Netzadresse (nur Nullen im Host-Teil) und die Broadcastadresse (nur Einsen im Host-Teil) verwendet werden müssten. In jedem Netzwerk sind immer zwei Adressen reserviert: die Netzadresse (nur Nullen im Host-Teil), welche zur Identifizierung des Netzwerks dient, und die Broadcast-Adresse (nur Einsen im Host-Teil), die man für eine Übertragung an alle Netzteilnehmer verwendet. Deshalb haben nicht alle Netze die Möglichkeit, auch Hosts zu stellen. Ein /31-Netz hat schlichtweg nur 2 mögliche IP-Adressen, die man dann aber für Broadcast- und Netzadresse verwenden muss. Deshalb muss man bei der Betrachtung der CIDR-Tabelle auch grundsätzlich zwei Adressen von den insgesamt verfügbaren subtrahieren. Im Netz /32 ist hingegen nur eine Adresse verfügbar. Sie ermöglicht also weder Broadcast- noch Netzadresse.

Das /0-Netz umfasst den kompletten Adressraum. Dieser enthielte nur ein großes Netz mit allen möglichen IP-Adressen (minus zwei) als Hosts – man kann also nicht wirklich von einem Subnetz sprechen. Auch die Netze /1 bis /7 werden nicht für einzelne Subnetze eingesetzt. Da die mögliche Anzahl der Hosts viel zu groß ist, teilt man diese Netze noch in weitere Subnetze auf.

Berechnung von CIDR: Beispiele

Anhand von Beispielen lässt sich das Prinzip hinter CIDR anschaulicher erklären. Wir erläutern im Folgenden seine Funktionsweise sowohl beim Subnetting als auch beim Supernetting.

Subnetting

Wenn man Subnetze (insbesondere flexible Subnetze) bilden möchte, genügt es nicht, das gleiche Suffix an die IP-Adresse anzuhängen. Es ist wichtig zu verstehen, was damit bei einer binären Umrechnung passiert. So gehören 192.168.200.5/30 und 192.168.200.9/30 nicht zum selben Netz. Den Grund dafür kann man erkennen, wenn man beide Adressen und die entsprechende Subnetzmaske als binäre Zahlen darstellt. Im Anschluss ist eine logische UND-Verknüpfung nötig: Dafür vergleicht man beide Werte. Nur wenn an der gleichen Stelle eine 1 steht wird dies auch in die Netzadresse übernommen. Die Kombinationen 0 ∧ 0 und 0 ∧ 1 ergeben Null.

Beide Adressen liegen also nicht im gleichen Netz. Korrekt wäre es allerdings gewesen, wenn die zweite Adresse 192.168.200.6/30 gelautet hätte.

Um zu berechnen, welche IP-Adressen Ihnen in einem Subnetz zur Verfügung stehen, müssen Sie den Bereich berechnen. Als Beispiel wählen wir ein Unternehmen, das 2000 Hosts in einem Netzwerk unterbringen muss. Die CIDR-Tabelle verrät uns, dass wir ein /21-Netz benötigen. Alternativ lässt sich dies aber auch berechnen. Dafür müssen Sie einen Logarithmus bilden: x=log2(2000). Das Ergebnis (≈10,666) ist keine natürliche Zahl, weshalb man aufrundet: 11. Demnach können Sie ein Subnetz mit 211 Host bilden: 2.048. (Wobei Sie wiederum zwei Adressen für Broadcast- und Netzadresse subtrahieren müssen)

Wenn Sie sich die Tabelle anschauen, werden Sie erkennen, dass die Potenzen zur Basis 2 von unten (/32) nach oben (/0) ansteigen. So könnte man also 32-11 = 21 rechnen, um das benötigte Subnetz-Suffix (/21) zu erhalten.

Die vom Internetanbieter vergebene Nummer lautet (in unserem Beispiel) 210.105.44.170. Auch diese Informationen übertragen wir in die binäre Schreibweise und wenden die soeben ermittelte Maske an.

Die erste Adresse – die nicht zu verwendende Netzadresse – lautet also 210.105.40.0/21. Sie haben zwischen dieser und der Broadcastadresse 2046 IP-Adressen zur Verfügung. Die höchste IP-Adresse (Broadcast) lautet demnach 210.105.47.255/21. Warum ist das so? 2048 (die maximale Anzahl der Adressen in dem Subnetz) geteilt durch 256 (die Anzahl der Möglichkeiten in einem Oktett) ergibt 8. Also sind im dritten Oktett die acht Werte von 40 bis 47 und im vierten Oktett alle Werte von 0 bis 255 zu belegen.

Tipp

Sie können sich die Rechenarbeit auch ersparen: Im Internet gibt es einige gute Online-Rechner, die Ihnen den Bereich für Ihre Host-Adressen ausgeben. Die benötigte Subnetz-Größe müssen Sie in den meisten Fällen allerdings noch selbst ermitteln. Aber diese finden Sie ja in der entsprechenden Tabelle.

Supernetting

Nehmen wir an, ein Unternehmen hat drei Standorte und damit drei Netze und die entsprechenden Router. Sinnvoll wäre es – auch im Sinne der Routingtabelle – daraus ein Supernet zu machen. Die drei Netze haben die Adressen 192.168.43.0, 192.168.44.0 und 192.168.45.0. (Mögliche Subnetzmasken, die neben den IP-Adressen der Netze stehen, sind in diesem Kontext zunächst irrelevant.) Auch diese stellen wir zunächst in binärer Schreibweise gegenüber und übernehmen ausschließlich die Stellen, die alle drei Adressen gemein haben – und zwar von links nach rechts: Ab dem ersten Unterschied werden alle weiteren Stellen auf null gesetzt.

Die Netzadresse des Supernets lautet also 192.168.40.0. Um die entsprechende Subnetzmaske zu ermitteln, die diesem Netz zugehörig ist, zählt man die Stellen (Bits), die zu der neuen IP-Adresse geführt haben. In unserem Beispiel sind dies 21 Bits: 192.168.40.0/21.