Ağ yazılarında “10.0.20.0/24” ya da “maske 255.255.255.192” gibi ifadeler sürekli geçer. MAC, IP, ARP ve Default Gateway yazısında istemcinin “hedef benim ağımda mı?” kararını maskeyle verdiğini görmüştük; hesabın kendisini ise bu yazıya bırakmıştık. Bu yazının sonunda bir IPv4 adresinin ve önekinin neyi anlattığını okuyabilecek, ağ adresini, broadcast adresini, kullanılabilir aralığı ve host sayısını kendiniz hesaplayabilecek, bir /24’ü eşit alt ağlara bölebileceksiniz. Hesapları kâğıt kalemle yapılabilecek kadar sade tutacağız.
32 bit, dört oktet
Bir IPv4 adresi 32 bitlik bir sayıdır (RFC 791). İnsanların okuyabilmesi için 8 bitlik dört parçaya, yani oktete bölünür ve her oktet onluk sayıyla yazılır: 10.0.20.25. Her oktet 0 ile 255 arasında bir değer alır, çünkü 8 bitle yazılabilecek en büyük sayı 255’tir.
Bir okteti ikiliğe çevirmek için her bit konumunun değerini bilmek yeterlidir. Soldan sağa değerler şöyledir:
| Bit | 1. | 2. | 3. | 4. | 5. | 6. | 7. | 8. |
|---|---|---|---|---|---|---|---|---|
| Değer | 128 | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
Bir sayıyı ikiliğe çevirirken soldan başlayıp “bu değer sığıyor mu?” diye sorarsınız. Sığıyorsa o bit 1 olur ve değer sayıdan çıkarılır; sığmıyorsa bit 0 olur.
- 25: 128, 64 ve 32 sığmaz (0, 0, 0). 16 sığar (1), kalan 9. 8 sığar (1), kalan 1. 4 ve 2 sığmaz (0, 0). 1 sığar (1). Sonuç:
00011001. - 192: 128 sığar (1), kalan 64. 64 sığar (1), kalan 0. Geri kalan bitler 0. Sonuç:
11000000.
Tersine çevirmek daha kolaydır: 1 olan bitlerin değerleri toplanır. 11000000 = 128 + 64 = 192.
Maske ve önek: /24 ne demek?
Bir IPv4 adresinin bir kısmı ağı, geri kalanı o ağdaki cihazı (host) gösterir. Sınırın nerede olduğunu maske söyler. Maske de 32 bittir: soldan başlayan 1’ler ağ kısmını, sağdaki 0’lar host kısmını işaretler.
/24 gösterimi, maskede soldan kaç bitin 1 olduğunu söyler; buna önek uzunluğu denir. RFC 4632’nin tanımladığı bu gösterime CIDR gösterimi denir. /24’te ilk 24 bit 1, son 8 bit 0’dır. Aynı maske noktalı onluk biçimde 255.255.255.0 diye yazılır. İki yazım aynı şeyi anlatır; cihazlar ve işletim sistemleri ikisinden birini ya da ikisini birden kullanır.
Maskenin işi bir ayırma çizgisi çizmektir. Adres ile maske alt alta yazıldığında maskede 1 olan konumlar adresin ağ kısmını, 0 olan konumlar host kısmını gösterir. 10.0.20.25/24 için ağ kısmı 10.0.20, host kısmı son oktetteki 25’tir.
Firewall ve router ACL’lerinde kullanılan wildcard mask, bu maskenin bitleri ters çevrilmiş hâlidir. Nasıl yazıldığı ACL Nedir? Standart ve Genişletilmiş ACL yazısında.
Dört değer: ağ, broadcast, aralık ve host sayısı
Bir adres ve önek verildiğinde dört değer hesaplanır. Örnek: 10.0.20.25/24.
- Host bit sayısı: 32 − 24 = 8 bit.
- Ağ adresi: Host bitlerinin hepsi 0 yapılır. Son oktet
00000000= 0 olur: 10.0.20.0. Ağ adresi ağın kendisini adlandırır; bir cihaza verilmez. - Broadcast adresi: Host bitlerinin hepsi 1 yapılır. Son oktet
11111111= 255 olur: 10.0.20.255. Bu adrese gönderilen paket ağdaki bütün cihazlara gider; bu da bir cihaza verilmez. - Kullanılabilir aralık: Ağ adresinden bir sonraki adresten broadcast adresinden bir önceki adrese kadar: 10.0.20.1 – 10.0.20.254.
- Host sayısı: Host bitleriyle 2⁸ = 256 adres yazılabilir. İlk adres ağ, son adres broadcast olduğu için kullanılabilir adres sayısı 256 − 2 = 254 olur.
Genel formül: host bit sayısı n ise alt ağda 2ⁿ adres ve 2ⁿ − 2 kullanılabilir host adresi vardır. Aynı mantık sınır başka bir oktete düştüğünde de çalışır: 10.0.0.0/16’da host kısmı 16 bittir; 2¹⁶ = 65.536 adres ve 65.534 kullanılabilir host vardır, ağ adresi 10.0.0.0, broadcast adresi 10.0.255.255’tir.
İki istisna: 2ⁿ − 2 formülü geleneksel alt ağlar içindir. Noktadan noktaya bağlantılarda kullanılan /31’de iki adres vardır ve RFC 3021’e göre ikisi de host adresi olarak kullanılır; ayrı bir ağ ya da broadcast adresi yoktur. /32 ise tek bir adresi gösterir; örneğin bir kuralda tek bir cihazı belirtmek için kullanılır.
/24’ü dört /26’ya bölmek
Subnetting, bir ağ bloğunu daha küçük alt ağlara bölmektir. Yöntem 1985’te RFC 950 ile standartlaştı; bugün hesaplar CIDR’ın önek mantığıyla yapılır. Örnek: kampüste yeni ayrılan 10.0.80.0/24 bloğu kameralar, yazıcılar, bina sistemleri ve yedek için dört eşit alt ağa bölünecek.
Adım 1: Kaç bit gerekiyor? Dört alt ağ için kaç bit ödünç alınacağını bulmak gerekir. 1 bit 2 alt ağ, 2 bit 2² = 4 alt ağ verir. Yani host kısmından 2 bit ağ kısmına geçer.
Adım 2: Yeni önek ve maske. Önek 24 + 2 = /26 olur. Son oktetin ilk iki biti artık maskede 1’dir: 11000000 = 192. Maske 255.255.255.192.
Adım 3: Host bitleri ve blok boyu. Host kısmında 32 − 26 = 6 bit kalır. Her alt ağda 2⁶ = 64 adres vardır; buna blok boyu denir. Kısa yol: 256 − 192 = 64. Kullanılabilir host sayısı 64 − 2 = 62.
Adım 4: Alt ağların başlangıcı. Alt ağlar 0’dan başlayıp 64’er artar: 0, 64, 128, 192. Bir sonraki değer 256 olurdu; son okteti aştığı için dört alt ağ burada biter.
Adım 5: Her alt ağın değerleri. Her alt ağda ağ adresi başlangıç değeridir, broadcast adresi bir sonraki alt ağın başlangıcından bir eksiğidir, kullanılabilir aralık bu ikisinin arasıdır.
- 1. alt ağ: Ağ 10.0.80.0. Sonraki başlangıç 64, broadcast 63. Kullanılabilir: .1 – .62.
- 2. alt ağ: Ağ 10.0.80.64. Sonraki başlangıç 128, broadcast 127. Kullanılabilir: .65 – .126.
- 3. alt ağ: Ağ 10.0.80.128. Sonraki başlangıç 192, broadcast 191. Kullanılabilir: .129 – .190.
- 4. alt ağ: Ağ 10.0.80.192. Bloğun sonu 255, broadcast 255. Kullanılabilir: .193 – .254.
Aynı yöntem bütün önekler için çalışır. Son oktette en sık karşılaşılan değerler:
| Önek | Maske (son oktet) | Blok boyu | Kullanılabilir host |
|---|---|---|---|
| /24 | 0 | 256 | 254 |
| /25 | 128 | 128 | 126 |
| /26 | 192 | 64 | 62 |
| /27 | 224 | 32 | 30 |
| /28 | 240 | 16 | 14 |
| /29 | 248 | 8 | 6 |
| /30 | 252 | 4 | 2 |
Kaç cihaz için hangi önek?
Planlamada soru çoğu zaman tersten sorulur: “Bu ağa 50 cihaz bağlanacak, hangi önek yeter?” Cevap, 2ⁿ − 2 değeri cihaz sayısına eşit ya da ondan büyük olan en küçük n’dir.
- n = 5 olursa 2⁵ − 2 = 30; 50’ye yetmez.
- n = 6 olursa 2⁶ − 2 = 62; yeter.
- Host kısmı 6 bit olduğuna göre önek 32 − 6 = /26 olur.
Gerçek planlamada büyümeye pay bırakılır; 50 cihaz bugünün sayısıysa bir büyük önek (/25, 126 host) daha güvenli bir seçim olabilir.
Bu örnekte bütün alt ağlar aynı büyüklükte. Farklı büyüklükte alt ağlarla bir bloğu verimli kullanmak (VLSM) ve rotaları özetlemek ayrı bir yazının konusu.
Sık yapılan hesap hataları
- /26’yı “26 cihaz” sanmak. 26, maskedeki 1 bitlerinin sayısıdır. Host sayısını host bitleri belirler: 32 − 26 = 6 bit, 62 host.
- Ağ ve broadcast adresini kullanılabilir aralığa katmak. 10.0.80.64/26’da .64 ve .127 bir cihaza verilmez; aralık .65 – .126’dır.
- Blok boyunu maskeyle karıştırmak. /26’nın maskesi 255.255.255.192, blok boyu 64’tür. Alt ağlar 192’şer değil, 64’er artar.
- Alt ağ sınırını yanlış yerden başlatmak. Alt ağlar her zaman blok boyunun katlarında başlar. 10.0.80.50/26 diye bir alt ağ yoktur; .50, 10.0.80.0/26 alt ağının içindedir.
Bir adres hangi alt ağda?
Sahada sık sorulan soru tersidir: elinizde bir adres ve önek vardır, hangi alt ağa ait olduğunu bulmanız gerekir. Örnek: 10.0.80.100/26.
- /26’nın blok boyu 64’tür (256 − 192).
- Son oktet 100’dür. 64’ün katlarından 100’ü geçmeyen en büyüğü 64’tür.
- Ağ adresi 10.0.80.64, broadcast adresi bir sonraki katın (128) bir eksiği, 10.0.80.127.
- Kullanılabilir aralık 10.0.80.65 – 10.0.80.126; 10.0.80.100 bu aralıktadır.
Özel amaçlı adresler
Her IPv4 adresi internette kullanılmaz. IANA’nın özel amaçlı adres kaydı, belirli blokları belirli işler için ayırır. Başlangıçta bilinmesi gerekenler:
| Blok | Tür | Ne için? |
|---|---|---|
| 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 | Private-use (RFC 1918) | Kurum ve ev içi ağlar; internette yönlendirilmez |
| 100.64.0.0/10 | Shared Address Space (RFC 6598) | Servis sağlayıcıların CGNAT altyapısı; RFC 1918 private alanından ayrıdır |
| 127.0.0.0/8 | Loopback | Cihazın kendisi; ör. 127.0.0.1 |
| 169.254.0.0/16 | Link-local (RFC 3927) | Yalnızca yerel bağlantıda geçerli adresler |
| 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24 | Dokümantasyon (RFC 5737) | Belge ve örneklerde kullanılır; internette görünmemelidir |
Tabloda yalnızca başlangıç için gerekli bloklar var; multicast gibi başka özel amaçlı bloklar da bulunur ve tam liste IANA kaydındadır. Bu yüzden tabloda olmayan her adres public değildir. Public adres, internet adres kayıt sistemi üzerinden bir kuruluşa ya da servis sağlayıcıya tahsis edilen, dünya genelinde tek olan adrestir. Bir adresin tahsis edilmiş olması, internette yönlendirildiği ya da erişilebilir olduğu anlamına gelmez; bu, sahibinin adresi duyurmasına ve aradaki yönlendirme ve filtreleme kararlarına bağlıdır.
Üç not:
- 172.16.0.0/12, 172.16.0.0 ile 172.31.255.255 arasını kapsar. 172.32.x.x private değildir.
- 100.64.0.0/10 internette yönlendirilmez ama RFC 1918 private alanı değildir. RFC 6598 bu bloğun servis sağlayıcı ağları için ayrıldığını ve RFC 1918’den farklı olduğunu açıkça belirtir; kurum ağının iç adreslemesi için kullanılmaz.
- 169.254.x.x adresini bir istemcide görüyorsanız, cihaz çoğunlukla DHCP’den adres alamamış ve bu aralıktan kendine adres vermiştir. Bu durumun WLAN’daki teşhisi AP Online Ama İstemci IP Alamıyor yazısında.
Sitedeki senaryolarda firewall’un internet tarafı için kullandığımız 203.0.113.1 de bu yüzden seçildi: 203.0.113.0/24, RFC 5737’nin TEST-NET-3 adını verdiği dokümantasyon bloğudur. Gerçek bir public adresi temsil eder, ama kendisi internette kullanılacak bir adres değildir. Kampüs örneklerindeki 10.0.x.x adresleri ise RFC 1918 private bloğundandır.
Sınıflar: tarihsel bir not
Eski kaynaklarda A, B ve C sınıfları geçer. İlk yıllarda ağ kısmının uzunluğu adresin ilk bitlerine göre sabitti: A sınıfında 8, B’de 16, C’de 24 bit. Bu yöntem adres alanını verimsiz kullandığı için RFC 4632’nin anlattığı CIDR ile terk edildi; bugün ağ kısmının uzunluğunu önek belirler. “C sınıfı ağ” ifadesini duyduğunuzda karşılığını /24 olarak düşünmek yeterlidir; hesaplarda sınıflara ihtiyaç yoktur.
Kendinizi deneyin
Alıştırma 1: 192.168.10.77/26 adresi için ağ adresini, broadcast adresini, kullanılabilir aralığı ve host sayısını bulun.
Cevap ve açıklama
- /26’da host kısmı 32 − 26 = 6 bit, blok boyu 2⁶ = 64.
- 64’ün katlarından 77’yi geçmeyen en büyüğü 64. Ağ adresi: 192.168.10.64.
- Bir sonraki kat 128; broadcast: 192.168.10.127.
- Kullanılabilir aralık: 192.168.10.65 – 192.168.10.126.
- Host sayısı: 2⁶ − 2 = 62.
Alıştırma 2: 172.16.5.200/27 adresi için aynı dört değeri bulun. Bu adres RFC 1918 private alanında mı?
Cevap ve açıklama
- /27’de host kısmı 32 − 27 = 5 bit, blok boyu 2⁵ = 32. Maskenin son okteti 256 − 32 = 224, yani maske 255.255.255.224.
- 32’nin katları: 0, 32, 64, 96, 128, 160, 192, 224. 200’ü geçmeyen en büyüğü 192. Ağ adresi: 172.16.5.192.
- Bir sonraki kat 224; broadcast: 172.16.5.223.
- Kullanılabilir aralık: 172.16.5.193 – 172.16.5.222.
- Host sayısı: 2⁵ − 2 = 30.
- Private mı? Evet. 172.16.0.0/12, 172.16.0.0 – 172.31.255.255 aralığını kapsar ve 172.16.5.200 bu aralıktadır.
Kaynaklar
- RFC 791: Internet Protocol
- RFC 950: Internet Standard Subnetting Procedure
- RFC 4632: Classless Inter-domain Routing (CIDR)
- RFC 3927: Dynamic Configuration of IPv4 Link-Local Addresses
- RFC 1918: Address Allocation for Private Internets
- RFC 3021: Using 31-Bit Prefixes on IPv4 Point-to-Point Links
- RFC 5737: IPv4 Address Blocks Reserved for Documentation
- RFC 6598: IANA-Reserved IPv4 Prefix for Shared Address Space
- IANA: IPv4 Special-Purpose Address Registry