Ders 07 / 18
IPv4 Adresleme
32 bitlik adresin yapısı, ağ ve düğüm bölümlerinin ayrımı, sınıflı adreslemenin mirası ve özel amaçlar için ayrılmış bloklar.
İçindekiler
Önceki iki ders IP adreslerini bir etiket gibi kullandı: 192.168.10.196 yazıldı, hangi
cihazı gösterdiği söylendi, ama sayının kendisi çözümlenmedi. Oysa bu sayının içinde
yönlendirmenin dayandığı bir yapı vardır.
Bu dersin sorusu, o yapının ne olduğudur: 32 bitin hangi bölümü ağı, hangi bölümü o ağdaki düğümü gösterir ve bu bölünme kim tarafından belirlenir?
Adresin Yapısı
Bir IPv4 adresi 32 bitlik işaretsiz bir tam sayıdır. Okunabilirlik için dört bayta bölünüp her bayt ondalık yazılır ve aralarına nokta konur — buna noktalı ondalık gösterim denir. Gösterim bir kolaylıktır; adresin kendisi bir bit dizisidir.
import ipaddress adres = ipaddress.ip_address("192.168.10.196") print("tam sayı :", int(adres)) print("ikilik :", format(int(adres), "032b")) print("bayt bayt :", " ".join(f"{b:08b}" for b in adres.packed)) print("onaltılık :", adres.packed.hex())
tam sayı : 3232238276 ikilik : 11000000101010000000101011000100 bayt bayt : 11000000 10101000 00001010 11000100 onaltılık : c0a80ac4
Dört baytın karşılıkları doğrudan okunur: 11000000 = 192, 10101000 = 168, 00001010 =
10, 11000100 = 196. Taban dönüşümleri, Bilgisayarlar Nasıl Çalışır kursundaki İkilik Sayı
Sistemi ve Onaltılık ve Sekizlik Tabanlar derslerinde kurulan yöntemin doğrudan
uygulanmasıdır.
Toplam adres sayısı ’dır. Bu sayının, dünyadaki uca bağlı cihaz sayısı karşısında yetersiz kalması, bu kursta ele alınan birçok mekanizmanın — adres dönüştürme, değişken uzunluklu alt ağlar, IPv6 — varlık nedenidir.
Ağ ve Düğüm Bölümü
Adres tek parça bir kimlik değildir; iki bölüme ayrılır:
- Ağ bölümü (network portion): Soldaki bitler. Adresin hangi ağa ait olduğunu söyler. Aynı ağdaki tüm adreslerde aynıdır.
- Düğüm bölümü (host portion): Sağdaki bitler. Adresi o ağ içinde ayırt eder.
Bölünme noktası önek uzunluğu (prefix length) ile belirtilir ve adresin sonuna eğik
çizgiyle yazılır: 192.168.10.196/24 gösteriminde soldaki 24 bit ağı, kalan 8 bit düğümü
belirtir.
| Gösterim | Ağ bölümü | Düğüm bölümü |
|---|---|---|
192.168.10.196/24 |
11000000 10101000 00001010 |
11000100 |
192.168.10.196/27 |
11000000 10101000 00001010 110 |
00100 |
Aynı adres, farklı önek uzunluklarıyla farklı ağlara ait olur. Bu, çok önemli bir sonuç doğurur: bir adres tek başına eksik bilgidir. Bir arayüzü yapılandırmak için adres ve önek uzunluğu birlikte verilmelidir; ikisinden biri eksikse hangi hedeflerin yerel olduğu belirlenemez.
Bölünmenin yönlendirmedeki karşılığı doğrudandır. Yönlendiriciler tek tek düğümleri değil, ağları bilir. Yönlendirme tablosundaki bir satır, bir önek ile bir sonraki sekmeyi eşler; tablo satır sayısı düğüm sayısıyla değil, ağ sayısıyla orantılıdır. Adresleri hiyerarşik dağıtmanın nedeni budur.
Sınıflı Adreslemenin Mirası
IPv4 adresleri başlangıçta sınıflara ayrılmıştı: ağ ile düğüm arasındaki sınır, adresin ilk bitlerine bakılarak belirlenirdi.
| Sınıf | İlk bitler | Adres aralığı | Ağ bölümü | Ağ başına düğüm |
|---|---|---|---|---|
| A | 0 |
0.0.0.0 – 127.255.255.255 | 8 bit | 16 777 214 |
| B | 10 |
128.0.0.0 – 191.255.255.255 | 16 bit | 65 534 |
| C | 110 |
192.0.0.0 – 223.255.255.255 | 24 bit | 254 |
| D | 1110 |
224.0.0.0 – 239.255.255.255 | Çok noktaya gönderim | — |
| E | 1111 |
240.0.0.0 – 255.255.255.255 | Ayrılmış | — |
Bu düzenin iki kusuru vardı. Birincisi, sınırın yalnızca üç değer alabilmesi adres israfına yol açıyordu: 300 düğümlük bir kuruluşa C sınıfı yetmez, B sınıfı verildiğinde 65 234 adres boşa gider. İkincisi, yönlendirme tablolarının boyutu denetlenemiyordu: her ağ ayrı bir satır gerektiriyor, satırlar birleştirilemiyordu.
Çözüm, sınırı adresten bağımsız kılmaktı. Sınıfsız alanlar arası yönlendirme (classless inter-domain routing, CIDR) ile önek uzunluğu adresle birlikte açıkça taşınır ve 0 ile 32 arasında herhangi bir değer alabilir. Sınıflar artık adres tahsisinde kullanılmaz; ancak bıraktıkları izler sürer — bazı araçların varsayılan maske önerileri ve bazı belgelerdeki “C sınıfı ağ” ifadesi bu mirastandır.
Bu kurs sınıfsız gösterimi esas alır. Sınıf adları yalnızca tarihsel bağlam için anılır.
Özel Amaçlı Bloklar
Adres uzayının bir bölümü, genel İnternet’te yönlendirilmemek üzere ayrılmıştır.
| Blok | Amaç | Genel İnternet’te yönlendirilir mi |
|---|---|---|
10.0.0.0/8 |
Özel kullanım | Hayır |
172.16.0.0/12 |
Özel kullanım | Hayır |
192.168.0.0/16 |
Özel kullanım | Hayır |
127.0.0.0/8 |
Geri döngü (kendi makinesi) | Hayır |
169.254.0.0/16 |
Yerel bağlantı (adres alınamadığında) | Hayır |
100.64.0.0/10 |
Sağlayıcı düzeyi adres dönüştürme | Hayır |
224.0.0.0/4 |
Çok noktaya gönderim | Koşullu |
255.255.255.255 |
Sınırlı yayın | Hayır |
192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24 |
Belgeleme | Hayır |
Üç özel kullanım (private use) bloğu, kurum içi ağlarda serbestçe kullanılabilir. Farklı kurumlar aynı özel adresleri aynı anda kullanabilir; çakışma olmaz, çünkü bu adresler kurumun dışına çıkmaz. Dışarıya çıkış, adres dönüştürme ile sağlanır ve NAT ve PAT dersinin konusudur.
Geri döngü (loopback) bloğu makinenin kendisini gösterir; bu bloğa gönderilen paket hiçbir zaman ağ arayüzüne ulaşmaz. Yerel bağlantı (link-local) bloğu, bir arayüz adres alamadığında kendi kendine seçtiği geçici adres içindir; bu adresle yalnızca aynı ağdaki diğer cihazlara erişilir.
Belgeleme blokları, bu kursta genel adres gerektiren tüm örneklerde kullanılır. Kurumun dış
adresi 203.0.113.10, hedef sunucu 198.51.100.20 bu bloklardandır.
import ipaddress for metin in ("10.0.0.1", "127.0.0.1", "169.254.7.3", "224.0.0.251", "192.168.10.196", "198.51.100.20"): a = ipaddress.ip_address(metin) print(f"{metin:16s} özel={str(a.is_private):5s} geri_döngü={str(a.is_loopback):5s} " f"yerel_bağlantı={str(a.is_link_local):5s} çok_noktalı={a.is_multicast}")
10.0.0.1 özel=True geri_döngü=False yerel_bağlantı=False çok_noktalı=False 127.0.0.1 özel=True geri_döngü=True yerel_bağlantı=False çok_noktalı=False 169.254.7.3 özel=True geri_döngü=False yerel_bağlantı=True çok_noktalı=False 224.0.0.251 özel=False geri_döngü=False yerel_bağlantı=False çok_noktalı=True 192.168.10.196 özel=True geri_döngü=False yerel_bağlantı=False çok_noktalı=False 198.51.100.20 özel=True geri_döngü=False yerel_bağlantı=False çok_noktalı=False
Son satır dikkat ister: 198.51.100.20 bir belgeleme adresidir, özel kullanım bloğunda
değildir; buna karşın is_private özelliği doğru döner. Kütüphanenin bu özelliği “özel
kullanım bloğunda mı” değil, “genel İnternet’te yönlendirilebilir mi” sorusunu yanıtlar.
Bir kütüphane işlevinin adı ile anlamı arasındaki bu tür farklar, belgelenmiş anlamın
okunmasını zorunlu kılar.
Adres Kime Aittir
Bir IP adresi makineye değil, arayüze aittir. İki arayüzü olan bir makinenin iki adresi
vardır; aynı arayüze birden çok adres de atanabilir. Yönlendiriciler bu kuralın en açık
örneğidir: örnek ağdaki kurum yönlendiricisinin iç arayüzü 192.168.10.193, dış arayüzü
203.0.113.10 adresini taşır ve bu iki adres farklı ağlara aittir.
Bu ayrım tanıda işe yarar. “Sunucuya ulaşamıyorum” ifadesi eksiktir; sunucunun hangi arayüzüne ulaşılamadığı sorulmalıdır. Bir arayüz üzerinden erişilebilen bir makine, başka bir arayüzü üzerinden erişilemez durumda olabilir.
Örnek Ağın Bloğu
Kurumun iç ağı 192.168.10.0/24 bloğunu kullanır. Seçimin gerekçeleri şunlardır:
- Blok özel kullanım aralığındadır; sağlayıcıdan tahsis gerektirmez.
- 24 bitlik önek, 8 bitlik düğüm bölümü bırakır: adres.
- Bu 256 adresin ikisi ayrılmıştır — en küçüğü ağın kendisini, en büyüğü yayın adresini gösterir — geriye 254 kullanılabilir adres kalır.
Kurumun bölümlerinde toplam 182 düğüm bulunmaktadır: misafir kablosuz ağında 100, laboratuvarda 50, yönetimde 20, sunucu odasında 10 ve yönlendiriciler arasındaki noktadan noktaya bağlantıda 2. Sayı 254’ten küçük olduğuna göre blok yeterlidir — ancak bölümler tek bir yayın alanında toplanamaz.
Neden toplanamayacağı önceki derste görülmüştü: yayın alanı büyüdükçe her yayın çerçevesinin maliyeti artar ve bölümler arasında hiçbir erişim denetimi kurulamaz. Bloğun bölümlere ayrılması gerekir.
Özet
- IPv4 adresi 32 bitlik bir tam sayıdır; noktalı ondalık gösterim yalnızca okunabilirlik içindir.
- Adres ağ ve düğüm bölümlerine ayrılır; sınır önek uzunluğuyla belirtilir ve adresin kendisinden okunamaz.
- Önek uzunluğu olmadan bir adres eksik bilgidir; hangi hedeflerin yerel olduğu belirlenemez.
- Sınıflı adresleme sınırı üç değere hapsediyor ve israfa yol açıyordu; CIDR ile önek uzunluğu 0–32 arasında serbest bırakıldı.
- Özel kullanım, geri döngü, yerel bağlantı, çok noktaya gönderim ve belgeleme blokları genel İnternet’te yönlendirilmez.
- Adres makineye değil arayüze aittir; bir makinenin birden çok adresi olabilir.
Sonraki Adım
192.168.10.0/24 bloğu, kurumun bölümlerine tek parça hâlinde verilemez. Bloğun her
bölüme ayrı bir ağ düşecek biçimde kesilmesi gerekir ve kesme işlemi düğüm bölümünden bit
ödünç alarak yapılır. Sonraki ders maske aritmetiğini kuracak, ağ ve yayın adreslerinin
nasıl hesaplandığını gösterecek ve bloğu eşit parçalara bölen ilk planı çıkaracak.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.