In einem Satz
CIDR ist die Methode des Internets, Grundstücksgrenzen zu ziehen und ein riesiges, chaotisches Feld von IP-Adressen in ordentliche, überschaubare Nachbarschaften zu verwandeln, in denen deine Daten ihr Zuhause finden können.
Welches Problem es löst
Erinnern wir uns an die Anfänge des Internets in den 1980er Jahren. Das Leben war einfach. Wenn man IP-Adressen brauchte, fragte man nach einer „Klasse“ davon. Man hatte drei Hauptoptionen:
- Klasse A: 16.777.214 Host-Adressen. Für die Giganten.
- Klasse B: 65.534 Host-Adressen. Für große Organisationen.
- Klasse C: 254 Host-Adressen. Für die Kleinen.
Dieses „klassenbasierte“ System war starr und unglaublich verschwenderisch. Stell dir vor, du brauchtest 300 IP-Adressen. Eine Klasse C war zu klein, also musstest du eine Klasse B nehmen. Herzlichen Glückwunsch, du hast gerade 65.534 Adressen bekommen und verschwendest jetzt 65.234 davon. Das war, als bräuchte man einen Roller und wäre gezwungen, einen 16-rädrigen Lkw zu kaufen.
Anfang der 1990er Jahre sahen Experten eine digitale Apokalypse am Horizont: Uns würden die IP-Adressen ausgehen. Die Routing-Tabellen des Internets – das globale Adressbuch, das von den Core-Routern verwendet wird – explodierten ebenfalls in ihrer Größe und drohten, das gesamte System bis zum Stillstand zu verlangsamen.
1993 führte eine Gruppe von Ingenieuren die RFCs 1518 und 1519 ein, die das Classless Inter-Domain Routing, oder CIDR (ausgesprochen wie das englische „cider“), definierten. CIDR warf die starren A/B/C-Klassen über Bord. Es führte eine neue, flexible Methode ein, um einen Adressblock von beliebiger Größe zu definieren.
Das war ein Game-Changer. Es ermöglichte den Internet Service Providern (ISPs), Adressblöcke zuzuweisen, die für ihre Kunden „genau richtig“ waren, und verlangsamte so die Erschöpfung der IPv4-Adressen drastisch. Es ermöglichte auch die „Routen-Aggregation“, bei der ein einzelner Eintrag in einer Routing-Tabelle Tausende von individuellen Routen repräsentieren konnte, was das Rückgrat des Internets vor dem Zusammenbruch unter seinem eigenen Gewicht bewahrte.
Wie es unter der Haube funktioniert
Um CIDR zu verstehen, muss man zuerst eine fundamentale Wahrheit akzeptieren: IP-Adressen sind für Computer, nicht für Menschen. Das Dotted-Decimal-Format (192.168.1.10) ist nur eine bequeme Lüge, die wir uns selbst erzählen. Die Realität ist binär.
Zuerst ein kurzer Auffrischungskurs zu IP-Adressen und Binärzahlen
Eine IPv4-Adresse ist eine 32-Bit-Zahl. Das war's. Zweiunddreißig Einsen und Nullen. Wir zerlegen sie in vier 8-Bit-Blöcke (Oktette) und wandeln jeden in eine Dezimalzahl (0-255) um, damit sie lesbar wird.
Nehmen wir 172.20.129.45:
172 . 20 . 129 . 45
10101100 . 00010100 . 10000001 . 00101101
Jede Berechnung im IP-Netzwerk, einschließlich CIDR, findet auf dieser binären Ebene statt.
Die Subnetzmaske: Der magische Decoder-Ring
Jede IP-Adresse führt ein Doppelleben. Ein Teil identifiziert das Netzwerk, zu dem sie gehört (ihr Straßenname), und ein anderer Teil identifiziert den spezifischen Host in diesem Netzwerk (seine Hausnummer).
Woher weiß ein Computer, wo der eine Teil aufhört und der andere beginnt? Er verwendet eine Subnetzmaske. Eine Subnetzmaske ist eine weitere 32-Bit-Zahl, die wie ein Filter wirkt. So funktioniert's:
- Die Subnetzmaske besteht aus einer Reihe von aufeinanderfolgenden
1en, gefolgt von einer Reihe von0en. - Die
1en entsprechen dem Netzwerkanteil der Adresse. - Die
0en entsprechen dem Hostanteil der Adresse.
Um die Netzwerkadresse zu finden, führt ein Computer eine bitweise AND-Operation zwischen der IP-Adresse und der Subnetzmaske durch.
Sagen wir, unsere IP ist 172.20.129.45 und unsere Maske ist 255.255.0.0.
IP-Adresse: 10101100.00010100.10000001.00101101 (172.20.129.45)
Subnetzmaske: 11111111.11111111.00000000.00000000 (255.255.0.0)
-----------------------------------------------------------------
Netzwerk-ID: 10101100.00010100.00000000.00000000 (172.20.0.0)
Das Ergebnis, 172.20.0.0, ist der „Straßenname“ für jedes Gerät in diesem Netzwerk.
Auftritt CIDR: Die Kurzschreibweise für die Subnetzmaske
Es ist mühsam, 255.255.255.0 auszuschreiben. Die CIDR-Notation ist eine einfache Abkürzung. Sie besteht nur aus der IP-Adresse, einem Schrägstrich (/) und der Anzahl der führenden 1en in der Subnetzmaske. Diese Zahl wird als Präfixlänge bezeichnet.
| CIDR-Suffix | Subnetzmaske | Anzahl der 1en |
Binäre Maske |
|---|---|---|---|
| /8 | 255.0.0.0 | 8 | 11111111.0000... |
| /16 | 255.255.0.0 | 16 | 11111111.11111111.0000... |
| /24 | 255.255.255.0 | 24 | 11111111.11111111.11111111.00000000 |
| /29 | 255.255.255.248 | 29 | ...11111111.11111000 |
| /32 | 255.255.255.255 | 32 | Nur 1en (ein einzelner Host) |
Also wird 172.20.129.45 mit einer Maske von 255.255.0.0 einfach als 172.20.129.45/16 geschrieben. Kinderleicht.
Die spannenden Dinge berechnen
Mit einer CIDR-Adresse wie 10.50.84.111/22 können wir alles über ihre Netzwerk-Nachbarschaft herausfinden.
Präfix:
/22. Das bedeutet, 22 Bits sind für das Netzwerk und die restlichen32 - 22 = 10Bits sind für die Hosts.Netzwerkadresse: Dies ist die erste Adresse im Bereich, bei der alle Host-Bits
0sind. Wir finden sie mit derAND-Operation.- IP:
10.50.84.111->00001010.00110010.01010100.01101111 - Maske
/22:255.255.252.0->11111111.11111111.11111100.00000000 AND-Ergebnis:00001010.00110010.01010100.00000000->10.50.84.0- Die Netzwerkadresse ist also
10.50.84.0.
- IP:
Anzahl der Hosts: Wir haben 10 Host-Bits. Die Anzahl der möglichen Adressen ist
2^10 = 1024.Nutzbare Hosts: Wir müssen zwei Adressen abziehen. Warum?
- Die allererste Adresse (alle Host-Bits sind
0) ist die Netzwerkadresse selbst. Sie ist der Straßenname, kein Haus. - Die allerletzte Adresse (alle Host-Bits sind
1) ist die Broadcast-Adresse. Ein Paket hierhin zu senden ist, als würde man „Hey alle zusammen!“ zu jedem einzelnen Gerät im Netzwerk rufen.
- Also, nutzbare Hosts =
(2^10) - 2 = 1024 - 2 = 1022.
- Die allererste Adresse (alle Host-Bits sind
Broadcast-Adresse: Das ist die Netzwerkadresse, bei der alle Host-Bits auf
1gesetzt sind.- Netzwerk:
00001010.00110010.01010100.00000000 - Broadcast:
00001010.00110010.01010111.11111111->10.50.87.255
- Netzwerk:
Host-Bereich: Die nutzbaren Adressen sind alles zwischen der Netzwerk- und der Broadcast-Adresse.
- Erster nutzbarer Host:
10.50.84.1(Netzwerkadresse + 1) - Letzter nutzbarer Host:
10.50.87.254(Broadcast-Adresse - 1)
- Erster nutzbarer Host:
Also ist 10.50.84.111/22 ein Host im Netzwerk 10.50.84.0, das 1022 Geräte von 10.50.84.1 bis 10.50.87.254 unterstützt.
Geschichten aus der Praxis
### Die Cloud-Kosten-Katastrophe
Ein angesagtes neues Startup baute seine Infrastruktur in einer Public Cloud auf. Eifrig darauf bedacht, mit dem Coden zu beginnen, akzeptierten sie die Standard-Netzwerkeinstellungen für ihre Virtual Private Cloud (VPC), die sich einen riesigen /16-Block (65.534 IPs) schnappte. Ein paar Monate später landeten sie einen riesigen Kunden, der eine direkte, sichere Verbindung zwischen ihren Cloud-Umgebungen benötigte. Das Problem? Der Kunde hatte ebenfalls denselben Standard-/16-Block verwendet. Ihre Adressräume, 10.10.0.0/16 und 10.10.0.0/16, waren identisch. Man kann nicht zwischen zwei Orten routen, die beide behaupten, dieselbe Adresse zu sein. Das Startup musste eine hektische Woche damit verbringen, sein gesamtes Netzwerk von Grund auf in einem neuen, nicht überlappenden CIDR-Bereich neu aufzubauen.
Lektion: Plane deinen Netzwerk-Adressraum wie eine Stadt. Auch wenn du jetzt nur ein kleines Dorf brauchst, lass Platz für Autobahnen, um später andere Städte anzubinden. Akzeptiere nicht einfach die Standardeinstellungen.
### Das mysteriöse Offline-Gerät
Ein Junior-Netzwerkadmin sollte einen neuen Monitoring-Server einrichten. Ihm wurde der IP-Bereich 192.168.100.0/24 gegeben. Er konfigurierte den Server mit der IP 192.168.100.255. Das Netzwerkinterface des Servers war aktiv, aber er war ein Geist. Er konnte das Gateway nicht pingen, und nichts im Netzwerk konnte ihn pingen. Nachdem er eine Stunde lang Kabel überprüft und Treiber neu installiert hatte, kam ein erfahrenerer Ingenieur vorbei, warf einen zwei Sekunden langen Blick auf den Bildschirm und sagte: „Das ist deine Broadcast-Adresse.“ Sie änderten die IP auf 192.168.100.254, und er war sofort online.
Lektion: Die erste und letzte Adresse in jedem Subnetz sind speziell und können keinem Host zugewiesen werden. Sie sind die Identität des Netzwerks bzw. sein Megafon.
### Die Heim-WLAN-Zauberin
Das Heimnetzwerk einer Entwicklerin war ein Chaos. Mit Laptops, Handys, Smart-TVs, Lautsprechern, Glühbirnen und einem „smarten“ Toaster flogen Geräte ständig aus dem WLAN. Auf der Admin-Seite ihres Routers sah sie, dass der DHCP-Server für den Bereich 192.168.1.0/28 konfiguriert war. Eine schnelle Berechnung zeigte, dass ein /28-Netz nur (2^(32-28)) - 2 = 14 nutzbare IP-Adressen bietet. Ihre Familie hatte aber über 30 Geräte! Sie änderte die Subnetzmaske für ihr LAN von 255.255.255.240 (/28) auf 255.255.255.0 (/24) und erweiterte so die verfügbaren IPs auf 254. Die WLAN-Instabilität verschwand augenblicklich.
Lektion: Subnetting ist nicht nur etwas für Rechenzentren. Es bestimmt, wie viele Geräte sich mit deinem lokalen Netzwerk verbinden können, und ein schlecht konfiguriertes Subnetz ist eine häufige Ursache für „schlechtes WLAN“.
Häufige Fehler und Fallen
- Die zwei reservierten Adressen vergessen. Ein klassischer Off-by-Two-Error. Man berechnet
2^hund sagt jemandem, dass er so viele Adressen hat, vergisst aber, die Netzwerk- und Broadcast-Adresse abzuziehen. Dies führt zu Konfigurationsfehlern und Netzwerken, die einfach einen Tick zu klein sind. - Überlappende Subnetze. Wie in der Cloud-Geschichte gesehen: Wenn zwei Netzwerke, die miteinander kommunizieren müssen, überlappende IP-Bereiche haben, steht einem eine Welt voller Schmerz bevor. Das Routing wird mehrdeutig und oft unmöglich ohne komplexe und unschöne Network Address Translation (NAT) Hacks. Plane im Voraus!
- In Dezimalzahlen denken. Man kann Subnetting nicht richtig verstehen, wenn man nur auf die Dezimalzahlen schaut.
192.168.0.255und192.168.1.0sehen so aus, als wären sie direkt nebeneinander. In einem/24-Netz gehören sie zu unterschiedlichen Netzwerken. In einem/23-Netz sind sie im selben Netzwerk. Alles hängt davon ab, wo die binäre Grenze verläuft. - Ein
/31falsch verwenden. Ein/31-Netz hat2^(32-31) = 2Adressen. Nach den alten Regeln blieben nach Abzug der Netzwerk- und Broadcast-Adresse null nutzbare Hosts übrig. RFC 3021 hat dies jedoch für spezielle Point-to-Point-Verbindungen (z.B. zwischen zwei Routern) aktualisiert, bei denen kein Broadcast benötigt wird. Für ein reguläres Netzwerk mit Clients ist es nutzlos. - Vertipper beim Präfix. Man tippt schnell mal
/23, wenn man/24meinte. Ein Unterschied von nur einer Ziffer kann der Unterschied zwischen einem Netzwerk mit 254 Hosts und einem mit 510 Hosts sein, was die Netzwerkgrenzen komplett verändert und potenziell Konflikte verursacht. Überprüfe deinen Präfix doppelt.
Warum das auf deinem Radar sein sollte
Du denkst vielleicht, das sei nur was für Hardcore-Netzwerkingenieure. Falsch gedacht.
- Cloud- & DevOps-Ingenieure: Das ist euer Leben. Das Entwerfen von VPCs/VNETs in AWS, Azure oder GCP ist eine Übung in CIDR-Planung. Macht man es am Anfang falsch, führt das später zu kostspieligen und komplexen Migrationen.
- Backend-Entwickler: Du kannst keine Verbindung zur Datenbank herstellen? Vielleicht ist der App-Server im Netz
10.0.1.0/24und die DB im Netz10.0.2.0/24. Wenn zwischen ihnen kein Router konfiguriert ist, könnten sie genauso gut auf verschiedenen Planeten sein. Subnetze zu verstehen, ist ein grundlegender Schritt beim Debugging. - Security-Experten: Firewall-Regeln basieren oft auf CIDR-Blöcken. Um den Zugriff von einem ganzen Büro aus zu erlauben, fügt man nicht 200 einzelne IPs hinzu, sondern eine einzige Regel für
10.5.0.0/22. Um einen bekannten Angreifer zu blockieren, blockiert man seinen CIDR-Bereich. - Jeder, der Code ausführt: Selbst wenn du nur auf
localhostarbeitest, benutzt du ein Netzwerk. Zu wissen, dass127.0.0.1nur ein Host im riesigen127.0.0.0/8-Loopback-Block ist, hilft dabei, einen Kernaspekt der lokalen Entwicklung zu entmystifizieren.
In einer Welt von vernetzten Diensten, Containern und Cloud-Infrastruktur ist das Netzwerk nicht länger das Problem eines anderen. Sein Adressbuch zu verstehen, ist eine Superkraft für moderne Entwickler.
Mehr erfahren
- RFC 4632: Classless Inter-domain Routing (CIDR) - Die moderne Spezifikation, die die ursprünglichen RFCs ersetzt hat.
- RFC 1918: Address Allocation for Private Internets - Das Dokument, das die privaten IP-Bereiche definiert, die du kennst und liebst (
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16). - RFC 3021: Using 31-Bit Prefixes on IPv4 Point-to-Point Links - Die Spezifikation, die
/31nützlich macht und IP-Adressen spart. - Wikipedia: Classless Inter-Domain Routing - Eine fantastische, übergeordnete Zusammenfassung mit historischem Kontext.
- Wikipedia: Subnetwork - Ein tiefer Einblick in die Mechanik von Subnetting und Masken.