İçeriğe geç
gelistiriciaraclari

Subnet ve CIDR Nasıl Hesaplanır?

· 8 dk okuma

Yeşil bir devre kartının (circuit board) yakın çekimi
Fotoğraf: Harrison Broadbent / Unsplash

Bir ağı tek bir büyük blok yerine daha küçük parçalara bölmek (subnetting), trafiği izole etmek, adresleri israf etmemek ve yönlendirme tablolarını sade tutmak için gerekir. CIDR (Classless Inter-Domain Routing) notasyonu, bir IP bloğunun ne kadar büyük olduğunu 192.168.1.0/24 gibi tek bir sayıyla ifade ederek 1990'lar öncesinin sabit A/B/C sınıf sisteminin yerini almıştır. Bu konu her ne kadar temel görünse de, bir sunucu güvenlik grubu kuralı yazarken, bir VPN'e hangi ağların dahil olacağını tanımlarken ya da bir bulut sağlayıcıda VPC/subnet planlarken günlük işin tam ortasına çıkar.

Subnet hesaplama aracımız tamamen tarayıcınızda çalışır: yazdığınız IPv4 ya da IPv6 CIDR bloğu için ağ adresini, yayın adresini, alt ağ maskesini, wildcard maskesini, kullanılabilir host sayısını ve ikili (binary) görünümü anında hesaplar; 'alt ağlara böl' seçeneğiyle bir bloğu N eşit parçaya bölmenin sonucunu da gösterir. Girdiğiniz bilgi hiçbir zaman bir sunucuya gönderilmez, bu yüzden iç ağ planlarınız ya da henüz duyurulmamış bir IP tahsisi gibi hassas bilgileri de rahatça hesaplayabilirsiniz.

$ araçSubnet HesaplamaCIDR bloğunun ağ, yayın ve host aralığını hesaplayın.

CIDR Notasyonu Nedir

CIDR (Classless Inter-Domain Routing, RFC 4632), bir IP adresinin kaç bitinin ağı, kaç bitinin host'u temsil ettiğini '/' işaretinden sonra gelen bir sayıyla belirtir. 192.168.1.0/24 yazımı, 32 bitlik IPv4 adresinin ilk 24 bitinin ağ, kalan 8 bitinin host kısmı olduğu anlamına gelir. Bu, sabit A/B/C sınıflarının (yalnızca /8, /16, /24) yerini alarak adresleri çok daha esnek bloklara bölmeyi mümkün kıldı.

Prefiks uzunluğu (/24, /26 gibi) küçüldükçe ağ daha az blok ama her blokta daha fazla host içerir; büyüdükçe tam tersi olur. Subnet hesaplama aracına bir CIDR yazdığınızda ağ adresini, yayın adresini, maskeyi ve kullanılabilir host sayısını anında görürsünüz, elle ikili sisteme çevirmenize gerek kalmaz.

Alt Ağ Maskesi, Ağ Adresi ve Yayın Adresi

Alt ağ maskesi (subnet mask), prefiks uzunluğunun aynı bilgiyi nokta-ondalık formda ifade eden halidir: /24 için 255.255.255.0, /26 için 255.255.255.192. Ağ adresi, host bitlerinin tamamı sıfır yapılarak elde edilir (192.168.1.0/24 için 192.168.1.0); yayın adresi (broadcast) ise host bitlerinin tamamı bir yapılarak elde edilir (192.168.1.255) ve o alt ağdaki tüm cihazlara birden gönderim için kullanılır.

Bu iki adres normalde host olarak atanamaz, çünkü ağ ve broadcast anlamları için ayrılmıştır; bu yüzden kullanılabilir host sayısı toplam adresten 2 eksiktir (RFC 3021'in tanımladığı /31 istisnası hariç, sonraki bölümde anlatılıyor). Wildcard mask (maskenin bit tersi) bazı router ACL yapılandırmalarında (örn. Cisco) maske yerine kullanılır: /24 için wildcard 0.0.0.255'tir. Bir cihaza yanlışlıkla broadcast adresini atamak genelde hemen fark edilmez; sorun ancak o alt ağa bir broadcast paketi gönderildiğinde, örneğin beklenmedik bir trafik artışı ya da IP çakışması uyarısı olarak ortaya çıkar.

Host Sayısını Hesaplama: /24, /26, /30, /31, /32 Örnekleri

Kullanılabilir host sayısı 2 üzeri host-bit-sayısı eksi 2 formülüyle bulunur. /24'te 8 host biti vardır: 2 üzeri 8 eksi 2 = 254 kullanılabilir adres, ev/ofis ağlarında ve küçük veri merkezlerinde en sık görülen boyutlardan biridir. /26'da 6 host biti vardır: 2 üzeri 6 eksi 2 = 62 kullanılabilir adres, küçük ofis ya da VLAN segmentleri için sık kullanılan bir boyuttur. /30'da yalnızca 2 host biti vardır: 2 üzeri 2 eksi 2 = 2 kullanılabilir adres, tam olarak iki router arası point-to-point bağlantıya yeter; bu boyut uzun süre WAN linklerinde standart kabul edildi.

/31 özel bir durumdur: RFC 3021, bir host biti kalan bu bloğu point-to-point bağlantılar için ağ/broadcast ayrımı yapmadan iki adresin ikisini de kullanılabilir sayar; modern router-to-router linklerde ve WAN bağlantılarında IP tasarrufu için tercih edilir, çünkü klasik /30'un iki adresi (ağ ve broadcast) boşa gitmez. /32 ise tek bir host'un kendisini (örneğin bir loopback adresini ya da statik route hedefini) tanımlar, hiç host biti yoktur; VPN yapılandırmalarında tek bir istemciye özel bir route tanımlarken de sık görülür.

Özel IP Aralıkları: RFC 1918

RFC 1918, internete doğrudan yönlendirilmeyen ve herkesin kendi iç ağında serbestçe kullanabileceği üç özel IPv4 bloğu tanımlar: 10.0.0.0/8 (16 milyon adres, büyük kurumsal ağlarda ve bulut VPC'lerinde yaygın), 172.16.0.0/12 (172.16-172.31 arası, orta ölçekli ağlar ve Docker'ın varsayılan köprü ağı) ve 192.168.0.0/16 (192.168.0-192.168.255 arası, ev/ofis router'larının varsayılanı). Bu aralıklardaki bir adres internet üzerinden erişilemez; dışarı çıkabilmesi için NAT ile genel bir IP'nin arkasına gizlenmesi gerekir.

Bunlara ek olarak 100.64.0.0/10 (RFC 6598), operatörlerin CGNAT için kullandığı özel bir bloktur; bu konuyu port açık mı kontrolü rehberimizde daha ayrıntılı ele alıyoruz. 169.254.0.0/16 ise DHCP alamayan cihazların kendine otomatik atadığı link-local adrestir (bulut metadata servislerinin 169.254.169.254 adresini kullanması da bu bloktandır). IP sorgulama aracı girdiğiniz bir adresin bu özel bloklardan birine girip girmediğini sorgu yapmadan da açıklar; bu, bir loglama sisteminde ya da erişim kontrol listesinde bir adresin iç ağdan mı dış ağdan mı geldiğini hızlıca anlamak için pratik bir yoldur.

IPv6 ve /64: Neden Farklı Çalışır

IPv6 adresleri 128 bit uzunluğundadır ve IPv4'teki adres kıtlığı kaygısı büyük ölçüde ortadan kalktığı için alt ağlama mantığı da değişir: standart pratik, her alt ağa büyüklüğüne bakılmaksızın bir /64 vermektir (ilk 64 bit ağ önekini, son 64 bit ise genelde arayüz kimliğini, SLAAC ile otomatik oluşturulan ya da EUI-64 tabanlı bir tanımlayıcıyı taşır). Bu yüzden IPv6'da 'kaç host sığar' sorusu IPv4'teki gibi kritik değildir; bir /64 blok, tek bir ev ağı için bile IPv4'ün tüm internetinden kat kat fazla adres içerir ve pratikte hiçbir zaman tükenmez.

Bir kuruluşa genelde ISS'ten bir /48 ya da /56 tahsis edilir, bu da içinden binlerce /64 alt ağ ayrılabileceği anlamına gelir; bu bolluk, IPv4'te alışılmış olan tek tek adres tasarrufu kaygısını IPv6 planlamasında büyük ölçüde gereksiz kılar. AAAA kaydı sorgulama ile bir alan adının IPv6 adreslerini görebilir, subnet hesaplama aracına da bir IPv6 CIDR (örn. 2001:db8::/64) yazarak ağ aralığını ve host kısmını inceleyebilirsiniz.

Alt Ağlara Bölme (Subnetting) Pratik Örnek

Elinizde 192.168.10.0/24 gibi bir blok var ve bunu 4 eşit parçaya bölmeniz gerekiyor diyelim: prefiksi 2 bit artırıp /26 yaparsınız, çünkü 2 üzeri 2 eşittir 4 alt ağ elde edersiniz. Sonuç: 192.168.10.0/26 (0-63), 192.168.10.64/26 (64-127), 192.168.10.128/26 (128-191) ve 192.168.10.192/26 (192-255); her biri 62 kullanılabilir host içerir.

Eşit olmayan ihtiyaçlar için VLSM (Variable Length Subnet Masking) kullanılır: büyük bir bölümü daha az bit artırarak, küçük bir bölümü daha çok bit artırarak bölersiniz, böylece adresler israf edilmez. Örneğin 100 cihazlık bir bölüme /25 (126 host), 20 cihazlık bir bölüme /27 (30 host) ve iki router arası bağlantıya /30 vermek, hepsine aynı büyüklükte blok ayırmaktan çok daha verimlidir. Subnet hesaplama aracındaki 'alt ağlara böl' seçeneği bir bloğu N eşit parçaya bölmenin sonucunu elle hesaplamadan gösterir.

Sık Yapılan Hatalar

En sık karşılaşılan hata, ağ adresi ya da yayın adresini bir cihaza host adresi olarak atamaktır; bu genelde bağlantı sorunlarına ya da beklenmedik broadcast trafiğine yol açar. İkinci sık hata, maskeyi yanlış hesaplayıp gerekenden küçük bir blok ayırmaktır, örneğin 30 cihaz için /27 (30 kullanılabilir host) yerine yanlışlıkla /28 (14 kullanılabilir host) seçmek; bu, büyüyen bir ekipte birkaç ay sonra IP tükenmesi şeklinde geri döner. Üçüncü bir hata, iki farklı ekibin aynı RFC 1918 bloğunu (örneğin ikisi de 192.168.1.0/24) kullanıp, VPN ile birleştiklerinde adres çakışmasıyla karşılaşmasıdır; büyüyecek ağlarda baştan farklı bloklar seçmek bu sorunu önler. Kendi genel IP'nizi ve olası CGNAT durumunuzu kontrol etmek isterseniz ip adresim aracına bakabilirsiniz.

  • /24 = 256 adres, 254 kullanılabilir host
  • /26 = 64 adres, 62 kullanılabilir host
  • /30 = 4 adres, 2 kullanılabilir host (point-to-point)
  • /31 = 2 adres, ikisi de kullanılabilir (RFC 3021, point-to-point)
  • /32 = tek adres (host route / loopback)

Sıkça sorulan sorular

CIDR ile eski A/B/C sınıf sistemi arasındaki fark nedir?

Eski sistemde ağlar yalnızca sabit /8, /16 ya da /24 boyutlarında olabilirdi; CIDR herhangi bir prefiks uzunluğuna izin vererek adresleri çok daha verimli ve esnek şekilde bölmeyi mümkün kıldı.

Neden ağ ve yayın adresi host olarak kullanılamaz?

Ağ adresi (host bitleri sıfır) alt ağın kendisini, yayın adresi (host bitleri bir) o alt ağdaki tüm cihazlara gönderimi temsil eder; ikisi de belirli bir cihaza atanamaz.

192.168, 10 ve 172.16 aralıkları neden internete çıkamıyor?

Bunlar RFC 1918 ile ayrılmış özel adreslerdir; internet yönlendiricileri bu blokları taşımaz, dışarı çıkmak için router ya da modem üzerinde NAT ile genel bir IP'ye çevrilmeleri gerekir.

IPv6'da neden her alt ağ /64?

SLAAC gibi otomatik adres yapılandırma mekanizmaları 64 bitlik bir arayüz kimliği varsayar; bu standardı bozmak (daha uzun bir prefiks kullanmak) otomatik adreslemeyi ve bazı ağ özelliklerini bozabilir, bu yüzden aksi gerekmedikçe /64'ten sapılmaması önerilir.

Diğer rehberler