CIDR (Classless Inter-Domain Routing) ist eine Methode zur effizienteren Zuweisung von IP-Adressen und zum Routing von Internet-Protokoll-Paketen als das ursprüngliche klassenbasierte Adressierungssystem, indem eine Subnetzmaske variabler Länge verwendet wird, die durch eine Präfixlänge dargestellt wird. Es wurde 1993 von der Internet Engineering Task Force (IETF) eingeführt, um der raschen Erschöpfung der IPv4-Adressen und dem Wachstum der Routing-Tabellen entgegenzuwirken.
Die Entwicklung zu CIDR
Vor CIDR waren IPv4-Adressen in feste "Klassen" (A, B, C, D, E) unterteilt. Jede Klasse hatte einen vordefinierten Netzwerk- und Host-Anteil, was zu einer ineffizienten Adressnutzung führte. Zum Beispiel bot ein Klasse-B-Netzwerk 65.534 Host-Adressen, oft weit mehr, als eine einzelne Organisation benötigte, was zu verschwendetem IP-Raum führte. Umgekehrt war ein Klasse-C-Netzwerk mit nur 254 Host-Adressen oft zu klein.
Klassenbasiertes Routing bedeutete auch, dass die Routing-Tabellen im Internet-Backbone schnell wuchsen, da jedes Klasse-A-, B- oder C-Netzwerk einen separaten Eintrag erforderte, unabhängig von seiner hierarchischen Beziehung zu anderen Netzwerken.
CIDR-Notation verstehen
CIDR verzichtet auf das Konzept fester Klassen, indem es dem Netzwerkanteil einer IP-Adresse eine beliebige Länge erlaubt. Diese Länge wird durch ein Suffix zur IP-Adresse, /Präfixlänge, angegeben.
Eine IPv4-Adresse ist eine 32-Bit-Zahl. Die Präfixlänge gibt an, wie viele der linkesten Bits den Netzwerkanteil der Adresse bilden. Die verbleibenden Bits repräsentieren den Host-Anteil.
Beispiel: 192.168.1.0/24
* 192.168.1.0 ist die IP-Adresse.
* /24 gibt an, dass die ersten 24 Bits der Netzwerkanteil sind.
Äquivalenz der Subnetzmaske
Die Präfixlänge entspricht direkt einer traditionellen Subnetzmaske in gepunkteter Dezimalnotation. Die Subnetzmaske wird gebildet, indem die ersten Präfixlänge-Bits auf 1 und die restlichen Bits auf 0 gesetzt werden.
| CIDR-Präfix | Subnetzmaske | Binäre Subnetzmaske (erste 16 Bits) |
|---|---|---|
| /8 | 255.0.0.0 | 11111111.00000000.00000000.00000000 |
| /16 | 255.255.0.0 | 11111111.11111111.00000000.00000000 |
| /24 | 255.255.255.0 | 11111111.11111111.11111111.00000000 |
| /27 | 255.255.255.224 | 11111111.11111111.11111111.11100000 |
| /30 | 255.255.255.252 | 11111111.11111111.11111111.11111100 |
Wie CIDR funktioniert: Adressberechnung
Um die Netzwerkadresse, Broadcast-Adresse und den nutzbaren Host-Bereich für einen gegebenen CIDR-Block zu bestimmen, werden spezifische Berechnungen durchgeführt.
Netzwerkadresse
Die Netzwerkadresse (oder Netzwerk-ID) ist die erste Adresse im CIDR-Block. Sie wird durch eine bitweise UND-Operation zwischen einer beliebigen IP-Adresse innerhalb des Blocks und der Subnetzmaske erhalten. Alle Host-Bits in der Netzwerkadresse sind 0.
Broadcast-Adresse
Die Broadcast-Adresse ist die letzte Adresse im CIDR-Block. Sie wird erhalten, indem alle Host-Bits der Netzwerkadresse auf 1 gesetzt werden. Pakete, die an diese Adresse gesendet werden, werden an alle Hosts innerhalb dieses spezifischen Netzwerksegments zugestellt.
Nutzbarer Host-Bereich
Der nutzbare Host-Bereich umfasst alle IP-Adressen zwischen der Netzwerkadresse und der Broadcast-Adresse, wobei beide ausgeschlossen sind. Dies sind die Adressen, die Geräten im Netzwerk zugewiesen werden können.
Anzahl der Hosts
Die Anzahl der verfügbaren IP-Adressen innerhalb eines CIDR-Blocks wird als 2^(32 - Präfixlänge) berechnet. Die Anzahl der nutzbaren Host-Adressen ist 2^(32 - Präfixlänge) - 2 (abzüglich der Netzwerk- und Broadcast-Adressen).
Beispiel: 192.168.10.64/27
Lassen Sie uns den CIDR-Block 192.168.10.64/27 aufschlüsseln.
- Präfixlänge:
/27 - Subnetzmaske: Die ersten 27 Bits sind
1, die letzten 5 Bits sind0.
11111111.11111111.11111111.11100000(binär)
255.255.255.224(gepunktete Dezimalnotation) - IP-Adresse in Binär:
192.168.10.64=11000000.10101000.00001010.01000000 - Netzwerkadresse: Führen Sie eine bitweise UND-Operation mit der Subnetzmaske durch.
11000000.10101000.00001010.01000000(IP)
11111111.11111111.11111111.11100000(Maske)
-----------------------------------
11000000.10101000.00001010.01000000(Netzwerk-ID)
192.168.10.64
(Hinweis: Die gegebene IP 192.168.10.64 ist bereits die Netzwerkadresse für diesen /27-Block) - Broadcast-Adresse: Setzen Sie die Host-Bits (die letzten 5 Bits) der Netzwerkadresse auf
1.
Netzwerk-ID:11000000.10101000.00001010.01000000
Broadcast:11000000.10101000.00001010.01011111
192.168.10.95 - Nutzbarer Host-Bereich:
- Erste nutzbare IP:
192.168.10.65 - Letzte nutzbare IP:
192.168.10.94
- Erste nutzbare IP:
- Anzahl der Hosts:
32 - 27 = 5Host-Bits.
2^5 = 32Gesamtadressen.
32 - 2 = 30nutzbare Host-Adressen.
Vorteile von CIDR
Effiziente IP-Adresszuweisung
CIDR ermöglicht flexibles Subnetting, wodurch Administratoren eine Präfixlänge wählen können, die genau der Anzahl der Hosts entspricht, die für ein bestimmtes Netzwerksegment benötigt werden. Dies minimiert verschwendete IP-Adressen im Vergleich zur klassenbasierten Adressierung.
Routenaggregation (Supernetting)
CIDR ermöglicht die Kombination mehrerer kleinerer Netzwerke zu einem einzigen, größeren Netzwerkblock für Routing-Zwecke. Zum Beispiel könnte einem ISP 203.0.113.0/20 zugewiesen werden. Dieser kann dies dann in kleinere /24- oder /27-Blöcke für seine Kunden unterteilen. Aus Sicht des breiteren Internets muss nur die einzelne /20-Route beworben werden, was die Größe der globalen Routing-Tabellen erheblich reduziert. Dieser Prozess wird Routenaggregation oder Supernetting genannt.
Reduzierte Größe der Routing-Tabellen
Durch die Ermöglichung der Routenaggregation reduziert CIDR die Anzahl der Einträge in den Routing-Tabellen auf Backbone-Routern. Dies verbessert die Routing-Effizienz und reduziert den Speicher- und Verarbeitungsbedarf für Router.
Hierarchisches Routing
CIDR erleichtert eine hierarchische Routing-Struktur, bei der größere CIDR-Blöcke an große ISPs oder regionale Internet-Registrierungsstellen vergeben werden, die diese Blöcke dann in kleinere für ihre Kunden unterteilen. Dies schafft eine besser organisierte und skalierbare Internet-Routing-Architektur.
CIDR in Proxy-Diensten
Proxy-Dienste verlassen sich stark auf CIDR für verschiedene Funktionalitäten:
Zugriffssteuerungslisten (ACLs)
Proxys verwenden CIDR-Blöcke in ACLs, um zu definieren, welche Client-IP-Adressen oder -Bereiche den Zugriff auf den Proxy oder bestimmte Ressourcen über den Proxy gestattet oder verweigert werden.
# Nginx-Proxy-Beispiel zum Zulassen spezifischer CIDR-Bereiche
http {
server {
listen 80;
server_name example.com;
location / {
# Standardmäßig verweigern
deny all;
# Spezifische IP-Adressen zulassen
allow 192.168.1.10;
allow 10.0.0.0/8; # Gesamten privaten Klasse-A-Bereich zulassen
allow 172.16.0.0/12; # Gesamten privaten Klasse-B-Bereich zulassen
allow 192.168.0.0/16; # Gesamten privaten Klasse-C-Bereich zulassen
# Spezifische öffentliche IP-Blöcke zulassen
allow 203.0.113.0/24;
proxy_pass http://backend_server;
}
}
}
Geolokalisierung und regionales Routing
Proxy-Dienste verwenden häufig CIDR-Blöcke, um den geografischen Ursprung von Client-IP-Adressen zu identifizieren. Diese Informationen können verwendet werden für:
* Inhaltslokalisierung: Bereitstellung regionalspezifischer Inhalte.
* Geo-Blocking: Einschränkung des Zugriffs auf Inhalte basierend auf dem Land oder der Region des Clients.
* Optimiertes Routing: Weiterleitung des Datenverkehrs an Proxy-Server, die näher am Client liegen, für geringere Latenz.
Lastausgleich
In Lastausgleichs-Setups kann CIDR verwendet werden, um Client-Verkehr aus bestimmten IP-Bereichen an bestimmte Backend-Server-Pools oder Proxy-Instanzen zu leiten, um eine optimale Ressourcennutzung oder die Einhaltung regionaler Anforderungen an die Datenresidenz zu gewährleisten.
IP-Whitelisting/Blacklisting
Proxy-Firewalls und Sicherheitsfunktionen nutzen CIDR, um vertrauenswürdige Netzwerke auf eine Whitelist zu setzen oder bekannte bösartige IP-Bereiche auf eine Blacklist zu setzen, wodurch die Sicherheit durch Filterung des Datenverkehrs auf der Proxy-Ebene verbessert wird.
Privater Netzwerkzugriff
Für Proxys, die innerhalb von Unternehmensnetzwerken betrieben werden, ist CIDR unerlässlich, um interne Netzwerkbereiche zu definieren, auf die über den Proxy zugegriffen werden kann, oder um interne Clients von externen zu unterscheiden.
CIDR und IPv6
Die Prinzipien von CIDR sind auch für die IPv6-Adressierung von grundlegender Bedeutung, obwohl die Adresslänge 128 Bit beträgt. IPv6-Adressen werden immer in CIDR-Notation ausgedrückt, z. B. 2001:0db8::/32. Die Präfixlänge in IPv6 funktioniert identisch zu IPv4, indem sie die Netzwerk- und Host-Anteile der Adresse definiert und eine effiziente Zuweisung und Routing ermöglicht.
Fazit
CIDR ist ein unverzichtbarer Bestandteil der modernen Internet-Infrastruktur, entscheidend für ein effizientes IP-Adressmanagement und skalierbares Routing. Für Proxy-Dienste ist ein umfassendes Verständnis von CIDR unerlässlich für die Konfiguration robuster Zugriffssteuerungen, die Optimierung des Datenverkehrsflusses und die Implementierung von Sicherheitsrichtlinien.