# Classless Inter-Domain Routing

Classless Inter-Domain Routing (CIDR) beschreibt ein Verfahren zur effizienteren Nutzung des bestehenden 32-Bit-IP-Adress-Raumes für IPv4. Es wurde 1993 eingeführt (RFC 1518, RFC 1519, RFC 4632), um die Größe von Routingtabellen zu reduzieren und um die verfügbaren Adressbereiche besser auszunutzen.
Mit CIDR entfällt die feste Zuordnung einer IPv4-Adresse zu einer Netzklasse, aus welcher aus den ersten beiden Bits des ersten Oktetts die Präfixlänge der jeweiligen Netzklasse hervorging. Die Präfixlänge ist mit CIDR frei wählbar und muss deshalb beim Aufschreiben eines IP-Subnetzes mit angegeben werden. Dazu verwendet man häufig eine Netzmaske.
Bei CIDR führte man als neue Notation so genannte Suffixe ein. In der CIDR Notation folgt auf der IP Adresse ein Slash ('/') und dann das Suffix als Dezimalzahl. Die Zahl gibt die Anzahl der führenden 1-Bits in der Netzmaske (von links nach rechts) an. Damit bedeutet, dass jedes angegebene Bit identisch zur angegebenen IP Adresse bleiben muss. Diese Schreibform, z. B. 172.17.0.0/17, ist kompakter als die Dotted decimal notation wie z. B.172.17.0.0/255.255.128.0.
Bei IPv6 ist die Notation gleich wie beim CIDR in IPv4 und besteht aus IPv6-Adresse und Präfixlänge (z. B. 2001:0DB8:0:CD30::1/60).

## Beispiele

* Die Notation 192.168.2.7/24 entspricht der Adresse 192.168.2.7 mit der Netzmaske 255.255.255.0: In binärer Schreibweise ist die Netzmaske 11111111.11111111.11111111.00000000 – es gibt also 3 ×8 = 24 gesetzte Bits, genau wie im Suffix angegeben. Deshalb beschreiben 192.168.2.0/24, 192.168.2.1/24, 192.168.2.2/24, ... 192.168.2.254/24 und 192.168.2.255/24 alle dasselbe 24 Bit lange Präfix und damit dasselbe IP-Subnetz. Es ist üblich, IP-Subnetze mit der Netzadresse und dem CIDR-Suffix aufzuschreiben; hier 192.168.2.0/24.
* 10.43.8.67/28 entspricht der Adresse 10.43.8.67 mit der Netzmaske 255.255.255.240: In binärer Schreibweise ist die Netzmaske 11111111.11111111.11111111.11110000 – es gibt also 3×8 + 4 = 28 gesetzte Bits, wieder genau wie im Suffix angegeben. Das IPv4-Netz, in dem der Host 10.43.8.67 liegt, geht somit von 10.43.8.64 bis 10.43.8.79 und wird kurz als 10.43.8.64/28 notiert, wobei nur 10.43.8.65 bis 10.43.8.78 für Hosts genutzt werden können. Die Broadcast-Adresse ist 10.43.8.79, die Netz-Adresse 10.43.8.64 und das Subnetz kann 14 Hosts adressieren.

### Berechnung

IPv4-Adresse = 10.43.8.67/28 (32-28= 4 Bit (Netzmaske: 11111111.11111111.11111111.11110000 (mit 4 Stellen im Dualsystem lassen sich 16 unterschiedliche Werte darstellen, nämlich 0–15)) → 16 Adressen − (Broadcast- und Netzadresse) = 14 IPv4-Adressen zu vergeben.)
Netzmaske = 255.255.255.240
| Beschreibung | Berechnung (Dualsystem) | Binäre Darstellung der Adressen | Dezimale Darstellung |
| IPv4-Adresse | Vorgegeben/Ausgangsdefinition | 00001010.00101011.00001000.01000011 | 10.43.8.67 |
| Netzmaske | Vorgegeben/Ausgangsdefinition | 11111111.11111111.11111111.11110000 | 255.255.255.240 |
| Directed Broadcast-Adresse | ODER-Verknüpfung von IPv4-Adresse und negierter Netzmaske | 00001010.00101011.00001000.01001111 | 10.43.8.79 |
| Netzadresse (Netz-ID) | UND-Verknüpfung von IPv4-Adresse und Netzmaske | 00001010.00101011.00001000.01000000 | 10.43.8.64 |
| Position im Netz (Host-ID) | UND-Verknüpfung von IPv4-Adresse und negierter Netzmaske | 00000000.00000000.00000000.00000011 | 3 |
| Adressbereich | 10.43.8.64 bis 10.43.8.79 |
| IPv4-Adressen für Endgeräte | 10.43.8.65 bis 10.43.8.78 |
| | da die erste und letzte Adresse in einem Adressbereich jeweils die Netz- und Broadcast-Adresse ist und somit an kein Endgerät vergeben werden kann. |

## Sonstiges

CIDR bietet außerdem die Basis für die Durchführung von route aggregation. Dabei können mehrere spezifischere Routen zu einem weniger spezifischen Eintrag in der Routing-Tabelle zusammengefasst werden, welche sich hierdurch verkleinert. Neben der Reduzierung der Routing-Tabellengröße erzielt man mit Aggregierung einen Stabilitätsgewinn, da die aggregierte Route keine Zustandsinformationen der spezifischeren Leitweginformationen enthält. Beispiel: die folgenden 256 Subnetze 10.1.1.0/24, 10.1.2.0/24, …, 10.1.255.0/24 haben alle das Präfix 10.1 gemeinsam und lassen sich somit zu 10.1.0.0/16 aggregieren. Diese Summary-Route kann im Netzwerk an Stellen bekannt gegeben werden, bei denen Zustands-Informationen über die spezifischeren Routen nicht benötigt werden. Dementsprechend wirken sich Instabilitäten ("Link Flapping") von spezifischeren Routen nicht auf ihr Aggregat aus und führen folglich bei Routern, denen nur das Aggregat bekannt ist, auch zu keiner Re-Kalkulation der Routing-Tabelle im Falle von Zustandsänderung der Aggregatsmitglieder. Dasselbe Prinzip ist vom Telefonnetz bekannt – so benötigt z. B. eine Vermittlungsstelle in Karlsruhe keine genauen Information über den Anschlussteilnehmer 040/123456 im Hamburger Ortsnetz, sondern nur die Information, in welche Richtung Gespräche der "aggregierten Route" 040 allgemein vermittelt werden sollen.
Die Routing-Protokolle BGP, IS-IS, RIP v2 (RIP II) (nicht RIP/RIP I) und OSPF und das Cisco-proprietäre EIGRP haben CIDR implementiert.
Die CIDR-Notation hat sich inzwischen auf breiter Basis für die Referenzierung von IP-Netzen auch in Applikationssoftware (z. B. in IRC-Daemons) durchgesetzt. Somit ist es möglich, eine Zugriffsliste, die alle IPv4-Adressen von 172.25.0.0 bis 172.25.255.255 betreffen soll, kurz als 172.25.0.0/16 zu schreiben. Gelegentlich werden dabei niederwertige Oktette, die null sind, weggelassen, so dass für 172.25.0.0/16 auch 172.25/16 notiert wird – allerdings ist dies nicht im RFC 4632 verankert und darum nicht empfehlenswert.

## Übersicht für IPv4

Die folgende Tabelle zeigt die Anzahl IPv4-Adressen pro Subnetz sowie die für Hosts nutzbaren Adressen, das heißt abzüglich der Adressen eines Bereichs für die Netzadresse (alle Bits im Hostteil auf null, also die kleinste Adresse im Bereich) und die Broadcast-Adresse (alle Bits im Hostteil auf eins, also die größte Adresse im Bereich).
Allgemein gilt: ${\text{Anzahl der IPv4-Adressen}}=2^{(32-{\text{Länge der Netzadresse}})}$
| Notation | Anzahl der Adressen | Nutzbare Host-Adressen | Subnetzmaske dezimal | Subnetzmaske binär | Kommentar |
| /0 | 4.294.967.296 | – | 0.0.0.0 | 00000000.00000000.00000000.00000000 | Vollständiger IPv4-Adressraum |
| /1 | 2.147.483.648 | – | 128.0.0.0 | 10000000.00000000.00000000.00000000 | |
| /2 | 1.073.741.824 | – | 192.0.0.0 | 11000000.00000000.00000000.00000000 | |
| /3 | 536.870.912 | – | 224.0.0.0 | 11100000.00000000.00000000.00000000 | |
| /4 | 268.435.456 | – | 240.0.0.0 | 11110000.00000000.00000000.00000000 | |
| /5 | 134.217.728 | – | 248.0.0.0 | 11111000.00000000.00000000.00000000 | |
| /6 | 67.108.864 | – | 252.0.0.0 | 11111100.00000000.00000000.00000000 | |
| /7 | 33.554.432 | – | 254.0.0.0 | 11111110.00000000.00000000.00000000 | |
| /8 | 16.777.216 | 16.777.214 | 255.0.0.0 | 11111111.00000000.00000000.00000000 | „Class A“-Größe |
| /9 | 8.388.608 (128×65.536) | 8.388.606 | 255.128.0.0 | 11111111.10000000.00000000.00000000 | |
| /10 | 4.194.304 (64×65.536) | 4.194.302 | 255.192.0.0 | 11111111.11000000.00000000.00000000 | |
| /11 | 2.097.152 (32×65.536) | 2.097.150 | 255.224.0.0 | 11111111.11100000.00000000.00000000 | |
| /12 | 1.048.576 (16×65.536) | 1.048.574 | 255.240.0.0 | 11111111.11110000.00000000.00000000 | |
| /13 | 524.288 (8×65.536) | 524.286 | 255.248.0.0 | 11111111.11111000.00000000.00000000 | |
| /14 | 262.144 (4×65.536) | 262.142 | 255.252.0.0 | 11111111.11111100.00000000.00000000 | |
| /15 | 131.072 (2×65.536) | 131.070 | 255.254.0.0 | 11111111.11111110.00000000.00000000 | |
| /16 | 65.536 (1×65.536) | 65.534 | 255.255.0.0 | 11111111.11111111.00000000.00000000 | „Class B“-Größe |
| /17 | 32.768 (128×256) | 32.766 | 255.255.128.0 | 11111111.11111111.10000000.00000000 | |
| /18 | 16.384 (64×256) | 16.382 | 255.255.192.0 | 11111111.11111111.11000000.00000000 | |
| /19 | 8.192 (32×256) | 8.190 | 255.255.224.0 | 11111111.11111111.11100000.00000000 | |
| /20 | 4.096 (16×256) | 4.094 | 255.255.240.0 | 11111111.11111111.11110000.00000000 | |
| /21 | 2.048 (8×256) | 2.046 | 255.255.248.0 | 11111111.11111111.11111000.00000000 | |
| /22 | 1.024 (4×256) | 1.022 | 255.255.252.0 | 11111111.11111111.11111100.00000000 | |
| /23 | 512 (2×256) | 510 | 255.255.254.0 | 11111111.11111111.11111110.00000000 | |
| /24 | 256 (1×256) | 254 | 255.255.255.0 | 11111111.11111111.11111111.00000000 | „Class C“-Größe |
| /25 | 128 (128×1) | 126 | 255.255.255.128 | 11111111.11111111.11111111.10000000 | |
| /26 | 64 (64×1) | 62 | 255.255.255.192 | 11111111.11111111.11111111.11000000 | |
| /27 | 32 (32×1) | 30 | 255.255.255.224 | 11111111.11111111.11111111.11100000 | |
| /28 | 16 (16×1) | 14 | 255.255.255.240 | 11111111.11111111.11111111.11110000 | |
| /29 | 8 (8×1) | 6 | 255.255.255.248 | 11111111.11111111.11111111.11111000 | |
| /30 | 4 (4×1) | 2 | 255.255.255.252 | 11111111.11111111.11111111.11111100 | Verbindungsnetz zwischen zwei Routern |
| /31 | 2 (2×1) | 0 (2) | 255.255.255.254 | 11111111.11111111.11111111.11111110 | Verbindungsnetz zwischen zwei Routern |
| /32 | 1 (1×1) | 0 (1) | 255.255.255.255 | 11111111.11111111.11111111.11111111 | einzelner Host |
* ↑ Adressbereiche der Größe /0 bis /7 werden in der Praxis nicht als einzelnes Subnetz verwendet, sondern in mehrere Subnetze unterteilt.
* 1 2 /31-Netze enthalten keine nutzbaren Host-Adressen, während /32 kein Subnetz, sondern immer einen einzelnen Host adressiert. Hierbei gibt es auch Ausnahmen. So wurde im RFC 3021 vorgeschlagen, dass /31-Netze genutzt werden, um Point-to-point-Verbindungen zu etablieren. Dies wurde unter anderem von der Firma Cisco implementiert. Des Weiteren ist es unter bestimmten Umständen möglich, die Netz- und Broadcastadresse für Hosts zu verwenden.
Seit der Einführung von CIDR ist classful routing zwar praktisch abgeschafft, beispielsweise ein /24-Netz als „Class C“ zu bezeichnen ist jedoch, zumindest umgangssprachlich, erhalten geblieben – obwohl diese Bezeichnung zumeist sogar falsch ist, da mittlerweile ehemalige Class A- oder Class B-Netze als kleinere Allokationen/Assignments zugeteilt werden und man somit ggf. von einem „Class C“-großen Netz spricht, was nach klassischer Notation ein Subnetz eines Class-A- oder B-Netzes wäre.