1. IPv4 Adres Mimarisi ve İkilik (Binary) Karşılıkları
Bir IPv4 adresi noktalarla ayrılmış 4 adet 8-bitlik oktetten oluşur ve toplamda 32 bitten meydana gelir (örneğin 192.168.1.1). Her bir oktet onluk düzende 0 ile 255 arasında bir değere karşılık gelir.
Bir IP adresinin hangi kısmının ağı (Network ID), hangi kısmının ise o ağdaki cihazı (Host ID) temsil ettiğini Alt Ağ Maskesi (Subnet Mask) belirler.
2. CIDR (Classless Inter-Domain Routing) Notasyonu
1993 yılında 도입 edilen CIDR notasyonu (örneğin 10.0.0.0/24), alt ağ maskesinde soldan sağa doğru ardışık olarak dizilen '1' bitlerinin toplam sayısını eğik çizgiyle (/) ifade eder.
Örneğin /24 notasyonu, ilk 24 bitin ağ adresi (255.255.255.0), kalan 8 bitin ise hostlar için ayrıldığını gösterir. Kalan bit sayısı azaldıkça ağ küçülür, kullanılabilir IP sayısı azalır.
| CIDR | Alt Ağ Maskesi | Host Biti | Toplam IP | Kullanılabilir Host (2^n - 2) |
|---|---|---|---|---|
| /24 | 255.255.255.0 | 8 bit | 256 | 254 |
| /25 | 255.255.255.128 | 7 bit | 128 | 126 |
| /26 | 255.255.255.192 | 6 bit | 64 | 62 |
| /27 | 255.255.255.224 | 5 bit | 32 | 30 |
| /28 | 255.255.255.240 | 4 bit | 16 | 14 |
| /29 | 255.255.255.248 | 3 bit | 8 | 6 |
| /30 | 255.255.255.252 | 2 bit | 4 | 2 (Noktadan Noktaya Linkler) |
3. Adım Adım /27 Alt Ağının Matematiksel Hesaplanması
Örnek olarak 192.168.1.75/27 adresini ele alalım:
1. Host bit sayısı: 32 - 27 = 5 bit. Toplam IP sayısı: 2^5 = 32.
2. Blok boyutu 32 olduğu için ağlar 0, 32, 64, 96, 128... şeklinde ilerler. 75 sayısı 64 ile 96 arasındadır.
3. Ağ Adresi (Network ID): 192.168.1.64. İlk Kullanılabilir Host: 192.168.1.65.
4. Yayın Adresi (Broadcast): 192.168.1.95. Son Kullanılabilir Host: 192.168.1.94.
5. Kullanılabilir Host Sayısı: 32 - 2 = 30 adet cihaz.
function calculateSubnet(ipStr, cidr) {
// IP adresini 32-bit tamsayıya çevir
const ipInt = ipStr.split('.').reduce((acc, octet) => (acc << 8) + parseInt(octet, 10), 0) >>> 0;
// Alt ağ maskesi oluştur (örnek /27 için ilk 27 bit 1)
const maskInt = cidr === 0 ? 0 : (~0 << (32 - cidr)) >>> 0;
// Bitwise AND işlemi ile Ağ Adresini bul
const networkInt = (ipInt & maskInt) >>> 0;
// Wildcard mask ile Broadcast adresini bul
const broadcastInt = (networkInt | (~maskInt >>> 0)) >>> 0;
const toIpStr = intVal => [
(intVal >>> 24) & 255,
(intVal >>> 16) & 255,
(intVal >>> 8) & 255,
intVal & 255
].join('.');
return {
network: toIpStr(networkInt),
broadcast: toIpStr(broadcastInt),
firstHost: toIpStr(networkInt + 1),
lastHost: toIpStr(broadcastInt - 1),
usableHosts: Math.max(0, (2 ** (32 - cidr)) - 2)
};
}4. RFC 1918 Özel (Private) IP Aralıkları
İnternet üzerinde doğrudan yönlendirilemeyen (non-routable) ve yerel ağlarda (LAN) ücretsiz kullanılan adres blokları IETF RFC 1918 standardıyla belirlenmiştir:
A Sınıfı Özel Blok: 10.0.0.0/8 (10.0.0.0 - 10.255.255.255, toplam 16.7 Milyon IP)
B Sınıfı Özel Blok: 172.16.0.0/12 (172.16.0.0 - 172.31.255.255, toplam 1 Milyon IP)
C Sınıfı Özel Blok: 192.168.0.0/16 (192.168.0.0 - 192.168.255.255, toplam 65.536 IP)
5. Hızlı Ağ Planlama İçin Subnet Hesaplayıcı
Karmaşık ağ topolojilerinde ve bulut (AWS VPC, Azure VNet, Google Cloud Subnet) mimarilerinde hata yapmamak için otomatik araçlar kullanılır. Yazılım Motoru Subnet Hesaplayıcı, girdiğiniz IP ve CIDR değerine göre ikilik maske, wildcard maske ve kullanılabilir IP aralığını anlık olarak hesaplar.