IPv4 adresleme, alt ağlar ve CIDR
Bir IP adresinden ağ adresini, broadcast'i, host aralığını ve host sayısını bit bit bulmak; alt ağa bölmek, VLSM ve en uzun önek eşleşmesi. Vizenin garanti hesap sorusu.
İnternette bir paketi doğru yere götüren şey IP adresidir. Router’lar adresin tamamına değil, ön ekine bakar. Bu yüzden vizede neredeyse her zaman “bu adresin ağ adresi ne, broadcast ne, kaç host var, şu tabloya göre hangi arayüze gider” tipi sorular çıkar. Hepsi aynı birkaç bit işlemine dayanır. Bu kuralları bilen biri bu soruları dakikalar içinde çözer:
- Ağ adresi = IP AND maske. Host bitleri sıfırlanır.
- Broadcast = host bitlerinin hepsi 1. Ağ adresi + blok boyu - 1.
- Host sayısı = , host bit sayısı.
- Blok boyu = 256 - maske oktetinin değeri. Sınırlar hep bu sayının katıdır.
- Yönlendirmede en uzun önek kazanır (longest prefix match).
IPv4 adresi ve maske
IPv4 adresi 32 bitlik bir sayıdır. Okunsun diye 8’er bitlik dört parçaya (oktet) bölünüp ondalık yazılır: 192.168.10.77. Adres iki parçadan oluşur: ağ kısmı (network part, subnet part) ve host kısmı. Aynı ağ kısmına sahip arayüzler aynı alt ağdadır (subnet) ve birbirine router olmadan ulaşır.
Nerede bölündüğünü alt ağ maskesi (subnet mask) söyler. Maskede ağ bitleri 1, host bitleri 0’dır. Kısa yazımı önek uzunluğu (prefix length): /26 “ilk 26 bit ağ” demek.
| Önek | Maske | Host biti | Kullanılabilir host |
|---|---|---|---|
| /8 | 255.0.0.0 | 24 | 16777214 |
| /16 | 255.255.0.0 | 16 | 65534 |
| /20 | 255.255.240.0 | 12 | 4094 |
| /24 | 255.255.255.0 | 8 | 254 |
| /26 | 255.255.255.192 | 6 | 62 |
| /27 | 255.255.255.224 | 5 | 30 |
| /30 | 255.255.255.252 | 2 | 2 |
Her alt ağda iki adres hosta verilmez: host bitleri tamamen 0 olan ağ adresi (network address) ve tamamen 1 olan broadcast adresi.
CIDR: sınıfsız adresleme
Eskiden adresler sınıflara bölünürdü (A: /8, B: /16, C: /24). 2000 host isteyen bir kurum C sınıfına sığmadığı için B alırdı, 63 bin adres boşa giderdi. CIDR (Classless Inter-Domain Routing) bu sabit sınırları kaldırdı: önek herhangi bir uzunlukta olabilir, a.b.c.d/x biçiminde yazılır. Bugün sınıflar sadece tarihsel terimdir. Sınavda “classful” geçerse eski sistem kastediliyordur.
Ağ adresi, broadcast, host aralığı
Hızlı yöntem: maskenin 255 ya da 0 olmayan oktetine ilginç oktet de. Blok boyu . Adresin o oktetini içine alan blok boyu katını bul.
Örnek 1: 192.168.10.77/26
maske 255.255.255.192 blok boyu 256-192 = 64 (4. oktet)
64'ün katları: 0, 64, 128, 192 77 → 64 ile 127 arası
ağ adresi 192.168.10.64
broadcast 192.168.10.127
host 192.168.10.65 ... 192.168.10.126
host sayısı 2^6 - 2 = 62
Bit düzeyinde aynı şey: 77 = 01001101. Maske 192 = 11000000. AND: 01000000 = 64.
Örnek 2: 172.16.45.200/20
İlginç oktet üçüncüsü: /20 maskesi 255.255.240.0, blok boyu 16.
16'nın katları: 0, 16, 32, 48 45 → 32 ile 47 arası
ağ adresi 172.16.32.0
broadcast 172.16.47.255 (3. oktet 47, 4. oktet hep 255)
host 172.16.32.1 ... 172.16.47.254
host sayısı 2^12 - 2 = 4094
TUZAK · dördüncü oktet. İlginç oktet üçüncüyse ağ adresinin dördüncü okteti 0, broadcast’inki 255 olur. 172.16.45.200 yazıp “ağ 172.16.32.200” diyen host bitlerini sıfırlamayı unutmuştur.
Alt ağlara bölmek (subnetting)
Host bitlerinden tanesini ağ kısmına ödünç alırsan eşit alt ağ çıkar.
Örnek 3: 200.10.20.0/24’ü 4 eşit alt ağa böl. , yani 2 bit ödünç: /26. Blok boyu 64.
| Alt ağ | Ağ adresi | Host aralığı | Broadcast |
|---|---|---|---|
| 1 | 200.10.20.0/26 | .1 - .62 | .63 |
| 2 | 200.10.20.64/26 | .65 - .126 | .127 |
| 3 | 200.10.20.128/26 | .129 - .190 | .191 |
| 4 | 200.10.20.192/26 | .193 - .254 | .255 |
Örnek 3b: 172.16.0.0/16’yı /22 alt ağlarına böl. Soru genelde üç şey ister: kaç alt ağ, her birinde kaç host, n’inci alt ağ hangisi.
ödünç bit 22 - 16 = 6 → 2^6 = 64 alt ağ
host biti 32 - 22 = 10 → 2^10 - 2 = 1022 host
blok boyu 256 - 252 = 4 (3. oktette)
1. alt ağ 172.16.0.0/22
2. alt ağ 172.16.4.0/22
3. alt ağ 172.16.8.0/22
64. alt ağ 172.16.252.0/22
n’inci alt ağın üçüncü okteti . Sıfırdan saymayı unutma: 3. alt ağ 8 ile başlar, 12 ile değil.
VLSM: farklı boyda alt ağlar
Gerçek bir ağda bölümlerin ihtiyacı farklıdır. VLSM (Variable Length Subnet Mask) her bölüme ihtiyacına uyan öneki verir. Kural: en büyük ihtiyaçtan başla, her alt ağ kendi blok boyunun katında başlasın.
Örnek 4: 10.0.0.0/24 ile 100, 50, 20 hostluk üç LAN ve 2 hostluk bir router bağlantısı.
100 host → 2^7-2=126 yeter → /25 → 10.0.0.0/25 (.1 - .126, bc .127)
50 host → 2^6-2=62 yeter → /26 → 10.0.0.128/26 (.129 - .190, bc .191)
20 host → 2^5-2=30 yeter → /27 → 10.0.0.192/27 (.193 - .222, bc .223)
2 host → 2^2-2=2 yeter → /30 → 10.0.0.224/30 (.225 - .226, bc .227)
boşta kalan ilk adres: 10.0.0.228
İPUCU · neden büyükten başlıyoruz? Küçükle başlarsan büyük blok, kendi boyunun katına hizalanmak için araya boşluk bırakmak zorunda kalır. Büyükten küçüğe gidince bloklar boşluksuz arka arkaya dizilir.
Rota özetleme (route aggregation)
CIDR’ın ikinci kazancı: komşu ağları tek bir rotayla duyurmak. Buna rota özetleme ya da supernetting denir. Router tabloları küçülür.
Örnek 5: 198.51.96.0/24, .97.0/24, .98.0/24, .99.0/24 tek rotada.
96 = 01100000
97 = 01100001
98 = 01100010
99 = 01100011
^^^^^^ ortak ilk 6 bit
önek = 16 + 6 = 22 → 198.51.96.0/22
Özetleme sadece bloklar hizalı ve bitişik olduğunda temiz çalışır. 97 ile 100’ü tek /22’de özetleyemezsin.
En uzun önek eşleşmesi (longest prefix match)
Router’ın iletim tablosunda (forwarding table) her satır bir önek ve bir çıkış arayüzü içerir. Bir hedef adres birden fazla satıra uyabilir. Router en uzun öneki seçer, çünkü o daha özel bilgidir.
11.20.0.0/16 → 0
11.20.64.0/18 → 1 (3. oktet 64 ile 127 arası)
11.20.72.0/21 → 2 (3. oktet 72 ile 79 arası)
0.0.0.0/0 → 3 (default)
11.20.75.9 → /16, /18, /21 eşleşir → en uzun /21 → 2
11.20.100.1 → /16, /18 eşleşir → /18 → 1
11.20.70.3 → /16, /18 (72-79 değil)→ /18 → 1
11.21.0.1 → sadece default → 3
TUZAK · ilk eşleşen değil. Tabloyu yukarıdan aşağı okuyup ilk tutan satırı seçmek yanlış. Bütün eşleşenleri bul, önek uzunluğuna bak.
Özel adresler ve özel amaçlı bloklar
RFC 1918 özel adresleri İnternette yönlendirilmez. Ev ve şirket ağlarında kullanılır, dışarı çıkarken NAT ile genel adrese çevrilir (bir sonraki sayfa).
| Blok | Aralık | Not |
|---|---|---|
| 10.0.0.0/8 | 10.0.0.0 - 10.255.255.255 | büyük kurumlar |
| 172.16.0.0/12 | 172.16.0.0 - 172.31.255.255 | 172.32 dışarıda |
| 192.168.0.0/16 | 192.168.0.0 - 192.168.255.255 | ev router’ları |
| 127.0.0.0/8 | loopback | 127.0.0.1 kendin |
| 169.254.0.0/16 | link-local | DHCP cevap vermezse |
Adresler nereden gelir? Bir host adresini genellikle DHCP (Dynamic Host Configuration Protocol) ile alır: discover, offer, request, ACK dört adımı. Kurum adres bloğunu ISP’den, ISP’ler de bölgesel kayıt kuruluşlarından (ICANN altında) alır.
Sık yapılan hatalar
| Yanlış düşünce | Doğrusu |
|---|---|
| /27 → 32 host | 30, ağ ve broadcast düşülür |
| /21 maskesi 255.255.240.0 | 255.255.248.0; 240 /20’dir |
| Ağ adresinde dördüncü okteti korumak | İlginç oktetten sonraki oktetler 0 olur |
| Bir sonraki bloğun başını broadcast sanmak | Broadcast = sonraki ağ adresi - 1 |
| LPM’de tablodaki ilk eşleşen satır | En uzun önek kazanır |
| 172.32.x.x özel adres | 172.16/12 sadece 16 ile 31 arası |
| VLSM’e küçük alt ağla başlamak | Büyükten küçüğe dağıt, hizalama bozulmaz |
| Üçüncü okteti farklı iki adres farklı ağdadır | Maske /23 ya da daha kısaysa aynı ağ olabilir |
Kendini test et
Sınavdaki gibi İngilizce sorular. Önce kâğıt kalemle çöz, sonra cevabı aç.
How many usable host addresses does a /27 subnet provide?
Cevabı göster
Host kısmı bit. adres var. İlki ağ adresi, sonuncusu broadcast, ikisi hosta verilemez: .
Write the prefix length /21 as a dotted-decimal subnet mask.
Cevabı göster
21 tane 1: ilk iki oktet 16 bit (255.255), üçüncü oktette 5 bit 1 kalır: 11111000 = 128+64+32+16+8 = 248. Dördüncü oktet 0. Sonuç 255.255.248.0.
What is the network address of the host 10.45.130.77/19?
Cevabı göster
/19 maskesi 255.255.224.0. İlginç oktet üçüncüsü, blok boyu . 130'u içine alan 32'nin katı 128 (128, 160 arası). Dördüncü oktet sıfırlanır: 10.45.128.0. Broadcast 10.45.159.255 olur.
What is the broadcast address of the subnet containing 172.20.99.14/22?
Cevabı göster
/22 maskesi 255.255.252.0, üçüncü oktette blok boyu 4. 99'u içine alan blok 96 ile 99 arası. Ağ adresi 172.20.96.0. Broadcast, bloğun son adresi: 172.20.99.255. Kullanılabilir host sayısı .
A company owns 192.0.2.0/24 and divides it into equal /28 subnets. How many subnets are created?
Cevabı göster
Önekten 4 bit ödünç alındı: . Alt ağ sayısı . Her biri host taşır.
Which address is a valid (assignable) host address in 192.168.5.64/27?
- 192.168.5.64
- 192.168.5.95
- 192.168.5.90
- 192.168.5.96
Cevabı göster
/27 blok boyu 32. Alt ağ 192.168.5.64 ile 192.168.5.95 arası. 64 ağ adresi, 95 broadcast, 96 bir sonraki alt ağın ağ adresi. Host aralığı .65 ile .94 arası, yani .90 geçerli.
A router has the forwarding table below. To which interface does it forward a datagram destined to 135.46.57.14?
135.46.56.0/22 eth0
135.46.60.0/22 eth1
135.46.56.0/21 eth2
0.0.0.0/0 eth3- eth0
- eth1
- eth2
- eth3
Cevabı göster
Eşleşenleri bul. 135.46.56.0/22 aralığı 56 ile 59 arası, 57 içinde: eşleşir. 135.46.56.0/21 aralığı 56 ile 63 arası: o da eşleşir. 60.0/22 (60 ile 63) eşleşmez. Default her şeye eşleşir. En uzun önek kazanır: /22 > /21, cevap eth0.
An ISP wants to advertise the four networks 57.6.104.0/24, 57.6.105.0/24, 57.6.106.0/24 and 57.6.107.0/24 as a single route. What is the aggregated prefix?
Cevabı göster
Üçüncü oktetleri ikiliye çevir: 104 = 01101000, 105 = 01101001, 106 = 01101010, 107 = 01101011. Ortak olan ilk 6 bit 011010. Ortak önek 16 + 6 = 22 bit. Ortak bitlerin dışı sıfırlanır: 57.6.104.0/22.
A department needs 500 hosts in a single subnet. What is the longest prefix (smallest subnet) that fits?
Cevabı göster
olacak en küçük aranır. : 254, yetmez. : 510, yeter. Önek .
Give the first and last usable host addresses of the subnet containing 192.168.200.130/25.
Cevabı göster
/25 maskesi 255.255.255.128, blok boyu 128. 130, 128 ile 255 arasındaki blokta. Ağ adresi .128, broadcast .255. İlk host .129, son host .254.
Are the hosts 10.1.5.10/23 and 10.1.4.250/23 on the same subnet?
Cevabı göster
/23 maskesi 255.255.254.0, üçüncü oktette blok boyu 2. 5 ve 4 aynı blokta (4 ile 5 arası). İkisinin de ağ adresi 10.1.4.0. Aynı alt ağdalar, router'a gerek olmadan haberleşirler. Üçüncü oktet farklı diye "farklı ağ" deme.
Which of the following is a private (RFC 1918) IPv4 address?
- 172.32.10.5
- 192.169.1.1
- 172.20.10.5
- 11.0.0.1
Cevabı göster
Özel bloklar: 10.0.0.0/8, 172.16.0.0/12 (172.16 ile 172.31 arası), 192.168.0.0/16. 172.32 bu aralığın dışında, 192.169 da 192.168 değil. 172.20 ise 172.16/12 içinde.
Doğrulama: Bütün alt ağ cevapları node ile 32 bit tam sayıya çevrilip AND/OR maske işlemleriyle hesaplandı (verify/SEN2008/05.mjs).