CIDR (Classless Inter-Domain Routing), IP adreslerini tahsis etmek ve Internet Protocol paketlerini yönlendirmek için kullanılan; önek uzunluğuyla ifade edilen değişken uzunluklu alt ağ maskesi sayesinde eski sınıf tabanlı adresleme sisteminden çok daha verimli çalışan bir yöntemdir. IPv4 adreslerinin hızla tükenmesi ve yönlendirme tablolarının büyümesi sorununa çözüm olarak 1993 yılında Internet Engineering Task Force (IETF) tarafından tanıtılmıştır.
CIDR'ye giden süreç
CIDR'den önce IPv4 adresleri sabit "sınıflara" (A, B, C, D, E) ayrılıyordu. Her sınıfın önceden tanımlı bir ağ ve host bölümü vardı; bu da adres alanının verimsiz kullanılmasına yol açıyordu. Örneğin bir B sınıfı ağ 65.534 host adresi sunuyordu; bu genellikle tek bir kurumun ihtiyacından çok daha fazlaydı ve IP alanı boşa gidiyordu. Buna karşılık yalnızca 254 host adresi olan bir C sınıfı ağ çoğu zaman yetersiz kalıyordu.
Sınıf tabanlı yönlendirme ayrıca, her A, B veya C sınıfı ağın diğer ağlarla hiyerarşik ilişkisinden bağımsız olarak ayrı bir kayıt gerektirmesi nedeniyle, internet omurgasındaki yönlendirme tablolarının hızla büyümesine neden oluyordu.
CIDR gösterimini anlamak
CIDR, bir IP adresinin ağ bölümünün istenen uzunlukta olmasına izin vererek sabit sınıf kavramını ortadan kaldırır. Bu uzunluk, IP adresinin sonuna eklenen /prefix_length ekiyle belirtilir.
Bir IPv4 adresi 32 bitlik bir sayıdır. prefix_length, en soldaki kaç bitin adresin ağ bölümünü oluşturduğunu belirtir. Kalan bitler host bölümünü temsil eder.
Örnek: 192.168.1.0/24
* 192.168.1.0 IP adresidir.
* /24, ilk 24 bitin ağ bölümü olduğunu gösterir.
Alt ağ maskesiyle eşdeğerlik
prefix_length, geleneksel noktalı ondalık alt ağ maskesine doğrudan karşılık gelir. Alt ağ maskesi, ilk prefix_length bit 1, kalan bitler 0 yapılarak oluşturulur.
| CIDR öneki | Alt ağ maskesi | İkili alt ağ maskesi (ilk 16 bit) |
|---|---|---|
| /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 |
CIDR nasıl çalışır: adres hesaplama
Belirli bir CIDR bloğunun ağ adresini, yayın (broadcast) adresini ve kullanılabilir host aralığını belirlemek için birtakım hesaplamalar yapılır.
Ağ adresi
Ağ adresi (ya da ağ kimliği), CIDR bloğundaki ilk adrestir. Blok içindeki herhangi bir IP adresi ile alt ağ maskesi arasında bit düzeyinde AND işlemi yapılarak elde edilir. Ağ adresindeki tüm host bitleri 0'dır.
Yayın adresi
Yayın adresi, CIDR bloğundaki son adrestir. Ağ adresinin tüm host bitleri 1 yapılarak elde edilir. Bu adrese gönderilen paketler, ilgili ağ segmentindeki tüm hostlara iletilir.
Kullanılabilir host aralığı
Kullanılabilir host aralığı, ağ adresi ile yayın adresi arasındaki tüm IP adreslerinden oluşur; bu iki adres aralığa dâhil değildir. Bunlar, ağdaki cihazlara atanabilecek adreslerdir.
Host sayısı
Bir CIDR bloğundaki kullanılabilir IP adresi sayısı 2^(32 - prefix_length) formülüyle hesaplanır. Kullanılabilir host adresi sayısı ise 2^(32 - prefix_length) - 2'dir (ağ ve yayın adresleri çıkarılır).
Örnek: 192.168.10.64/27
192.168.10.64/27 CIDR bloğunu adım adım inceleyelim.
- Önek uzunluğu:
/27 - Alt ağ maskesi: ilk 27 bit
1, son 5 bit0.
11111111.11111111.11111111.11100000(ikili)
255.255.255.224(noktalı ondalık) - IP adresinin ikili karşılığı:
192.168.10.64=11000000.10101000.00001010.01000000 - Ağ adresi: alt ağ maskesiyle bit düzeyinde AND işlemi yapın.
11000000.10101000.00001010.01000000(IP)
11111111.11111111.11111111.11100000(Maske)
-----------------------------------
11000000.10101000.00001010.01000000(Ağ kimliği)
192.168.10.64
(Not: verilen 192.168.10.64 adresi, bu /27 bloğu için zaten ağ adresidir) - Yayın adresi: ağ adresinin host bitlerini (son 5 bit)
1yapın.
Ağ kimliği:11000000.10101000.00001010.01000000
Yayın:11000000.10101000.00001010.01011111
192.168.10.95 - Kullanılabilir host aralığı:
- İlk kullanılabilir IP:
192.168.10.65 - Son kullanılabilir IP:
192.168.10.94
- İlk kullanılabilir IP:
- Host sayısı:
32 - 27 = 5host biti.
2^5 = 32toplam adres.
32 - 2 = 30kullanılabilir host adresi.
CIDR'nin faydaları
Verimli IP adresi tahsisi
CIDR esnek alt ağ oluşturmayı mümkün kılar; yöneticiler, belirli bir ağ segmenti için gereken host sayısına tam olarak uyan bir önek uzunluğu seçebilir. Bu da sınıf tabanlı adreslemeye kıyasla boşa giden IP adreslerini en aza indirir.
Rota birleştirme (supernetting)
CIDR, birden fazla küçük ağın yönlendirme amacıyla tek ve daha büyük bir ağ bloğunda birleştirilmesine olanak tanır. Örneğin bir ISP'ye 203.0.113.0/20 bloğu tahsis edilebilir. ISP bunu müşterileri için daha küçük /24 veya /27 bloklarına bölebilir. İnternetin geneli açısından bakıldığında yalnızca tek bir /20 rotasının duyurulması yeterlidir; bu da küresel yönlendirme tablolarının boyutunu önemli ölçüde küçültür. Bu sürece rota birleştirme veya supernetting denir.
Yönlendirme tablosu boyutunun küçülmesi
Rota birleştirmeyi mümkün kılarak CIDR, omurga yönlendiricilerdeki yönlendirme tablosu kayıtlarının sayısını azaltır. Bu, yönlendirme verimliliğini artırır ve yönlendiricilerin bellek ile işlem gücü ihtiyacını düşürür.
Hiyerarşik yönlendirme
CIDR hiyerarşik bir yönlendirme yapısını kolaylaştırır: büyük CIDR blokları büyük ISP'lere veya bölgesel internet kayıt kuruluşlarına tahsis edilir, onlar da bu blokları müşterileri için daha küçük parçalara böler. Böylece daha düzenli ve ölçeklenebilir bir internet yönlendirme mimarisi oluşur.
Proxy hizmetlerinde CIDR
Proxy hizmetleri birçok işlev için büyük ölçüde CIDR'ye dayanır:
Erişim Denetim Listeleri (ACL)
Proxy'ler, hangi istemci IP adreslerinin veya aralıklarının proxy'ye ya da proxy üzerinden belirli kaynaklara erişebileceğini tanımlamak için ACL'lerde CIDR bloklarını kullanır.
# Belirli CIDR aralıklarına izin veren Nginx proxy örneği
http {
server {
listen 80;
server_name example.com;
location / {
# Varsayılan olarak reddet
deny all;
# Belirli IP adreslerine izin ver
allow 192.168.1.10;
allow 10.0.0.0/8; # Tüm A sınıfı özel aralığa izin verir
allow 172.16.0.0/12; # Tüm B sınıfı özel aralığa izin verir
allow 192.168.0.0/16; # Tüm C sınıfı özel aralığa izin verir
# Belirli genel IP bloklarına izin ver
allow 203.0.113.0/24;
proxy_pass http://backend_server;
}
}
}
Coğrafi konum ve bölgesel yönlendirme
Proxy hizmetleri, istemci IP adreslerinin coğrafi kaynağını belirlemek için sıklıkla CIDR bloklarını kullanır. Bu bilgi şu amaçlarla kullanılabilir:
* İçerik yerelleştirme: bölgeye özel içerik sunmak.
* Coğrafi engelleme: istemcinin ülkesine veya bölgesine göre içeriğe erişimi kısıtlamak.
* Optimize yönlendirme: daha düşük gecikme için trafiği istemciye daha yakın proxy sunucularına yönlendirmek.
Yük dengeleme
Yük dengeleme kurulumlarında CIDR, belirli IP aralıklarından gelen istemci trafiğini belirli arka uç sunucu havuzlarına veya proxy örneklerine yönlendirmek için kullanılabilir; böylece kaynaklar en verimli şekilde kullanılır ya da bölgesel veri saklama gerekliliklerine uyum sağlanır.
IP beyaz/kara listesi
Proxy güvenlik duvarları ve güvenlik özellikleri, güvenilir ağları beyaz listeye almak veya bilinen zararlı IP aralıklarını kara listeye eklemek için CIDR kullanır; böylece trafiği proxy katmanında filtreleyerek güvenliği artırır.
Özel ağ erişimi
Kurumsal ağlarda çalışan proxy'ler için CIDR, proxy üzerinden erişilebilecek iç ağ aralıklarını tanımlamak veya iç istemcileri dış istemcilerden ayırmak açısından şarttır.
CIDR ve IPv6
CIDR ilkeleri, adres uzunluğu 128 bit olsa da IPv6 adreslemesinin de temelini oluşturur. IPv6 adresleri her zaman 2001:0db8::/32 gibi CIDR gösterimiyle ifade edilir. IPv6'da önek uzunluğu IPv4'teki ile birebir aynı işlevi görür: adresin ağ ve host bölümlerini tanımlar, verimli tahsis ve yönlendirme sağlar.
Sonuç
CIDR, modern internet altyapısının vazgeçilmez bir parçasıdır ve verimli IP adresi yönetimi ile ölçeklenebilir yönlendirme için kritik önemdedir. Proxy hizmetleri açısından CIDR'yi iyi kavramak; sağlam erişim denetimleri kurmak, trafik akışını optimize etmek ve güvenlik politikalarını uygulamak için hayati önem taşır.
