Bölüm 36: Adres Kiralama: DHCP
Ağlar'a “Sen”i Katmak kitabının bir bölümü: adres çubuğuna yazdığın tek bir isteğin peşinden bakırla fiberin fiziğine inip karşı taraftan geri dönen uzun bir teknik yolculuk.
Kısım 5: Havada ve Evde (Bölüm 30-36)
Tüm bölümler
- Giriş
- Adres Çubuğundan İsteğe
- Paket Anahtarlamalı Yol
- İsimden Adrese
- DNS Kayıtları
- Önbellek, Tazelik ve Güven
- Port Numarası ve Soket
- Bağlantısız Taşıma: UDP
- Üç Adımlı El Sıkışma
- Simetrik Şifreleme
- Açık Anahtarlı Kriptografi
- TLS El Sıkışması
- Sertifika Zinciri
- HTTP Mesajının Anatomisi
- Durum, Çerez ve Oturum
- HTTP/2'den HTTP/3'e
- İçerik Dağıtım Ağları
- Diğer Uygulama Protokolleri
- Katmanlı Mimari
- Hizmet ve Protokol
- Encapsulation ve Başlıklar
- Paket Yakalama ve Çözümleme
- Ağ Interface Kartı
- Fiziksel Adresleme
- Hata Sezme ve CRC
- Adres Çözümleme: ARP
- Ortam Erişimi: CSMA/CD
- Switch'ler
- Ağ Topolojileri
- Sanal Yerel Ağlar
- Kablosuz Erişim: 802.11
- Radyo Kanalı ve Kapasite
- Kablosuz Ağ Güvenliği
- Hücresel Ağlar
- Spektrum ve Kuşaklar
- Hareketlilik ve Aktarma
- Adres Kiralama: DHCP
- Adresin Anatomisi
- Adres Tükenmesi ve IPv6
- Router Mimarisi
- Kuyruk Yönetimi
- Cihaz Yapılandırma
- Routing Protokolleri
- Kontrol Düzlemi ve SDN
- Ağ İzleme ve Yönetimi
- Alanlar Arası Routing
- Adres Çevirisi
- Ara Kutular
- Tünelleme ve IPsec
- Firewall'lar
- Ağ Saldırıları
- Operatör ve Metro Ağları
- Bitten Sinyale
- Sembol Hızı ve Kanal Kapasitesi
- Multiplexing Teknikleri
- İletim Ortamları
- Bakır Kablo Sonlandırma
- Fiber Sonlandırma
- Fiber Optik İletim
- Bakır Erişim Ağı: DSL
- DSL'de Hız ve Mesafe
- Pasif Optik Ağlar
- Kablo Erişim Ağları
- Kablo Modem ve CMTS
- Denizaltı Kabloları
- Veri Merkezi Ağları
- Encapsulation Çözme
- Güvenilir Aktarım
- Tıkanıklık Denetimi
- Trafik Çözümleme
- Gecikme Bütçesi
- Soket Programlama
- Eşten Eşe ve Protokol Tasarımı
- Uyarlanır Video Akışı
- Gerçek Zamanlı Ses ve Görüntü
- Kablosuz Sensör Ağlarının Mimarisi
- Sensör Ağlarında Ortam Erişimi
- Sensör Ağlarında Yönlendirme ve IP
- Zaman Eşitleme ve Konum Bulma
- Sensör Ağı Uygulamaları
- Mobil Kablosuz Sensör Ağları
- Son Söz
Bir önceki durakta hücreden hücreye geçtin ve bağlantın kopmadı. O bağlantının dayandığı adresi sana kimin verdiğini ise erteledim.
Adresi veren bir sunucu var. Verirken yalnızca adresi söylemiyor; ağdan çıkış kapısını da aynı cevaba koyuyor. Peki adresi olmayan bir makine o cevabı nasıl isteyebiliyor?
Adresi elle yazmaktan neden vazgeçildi?
Adres makineye iki yoldan geliyor: ya elle bir yapılandırma dosyasına yazıyorsun ya da makine ağa katıldığı anda ağdaki bir sunucudan alıyor.
Elle yazmak tek satırlık bir iş de değil. Dört alanı birden doldurman gerekiyor: IP adresi, alt ağ maskesi, default gateway ve DNS sunucusu. Üçünü doğru girip birini yanlış girdiğinde makine yarım çalışıyor; arızası da en can sıkıcı türden, çünkü bazı şeyler yürüyor. DHCP (Dynamic Host Configuration Protocol) bu dördünü tek cevapta dağıtır.
Dinamik adreslemenin üç tarihsel uygulaması var: 25. bölümde andığımız RARP, BOOTP ve DHCP. Sonuncusu BOOTP’nin gelişmiş hâli ve paket biçimini ondan devraldı. BOOTP diski olmayan makineler için tasarlanmıştı ve sunucuda her makine için önceden bir kayıt açmayı şart koşuyordu. DHCP o şartı kaldırdı. Yerine yeniden kullanılabilir adres dağıtımını ve ek yapılandırma seçeneklerini koydu. Standardı 1997 yılında yayımlanan RFC 2131’dir ve o belge kendinden önceki tanımı geçersiz kılar.
Dağıtılan adresler bir adres havuzundan gelir. Havuz sunucuda elle tanımlanır ve ağın tamamı kadar geniş olmak zorunda değildir. Örnek bir ev ağı düşün: 192.168.42.0/24 bloğunda makinelere verilebilecek 254 adres var. Sondaki /24, adresin ilk 24 bitinin ağı gösterdiğini söylüyor; bu yazımı 37. bölümde açacağız. Havuza .100 ile .199 arasını verirsen 100 adres dağıtılabilir hâle gelir, yani kullanılabilir adreslerin %39,4’ü. Kalanı statik yapılandırmaya kalır.
Bir de zincirin ucu var. Adres dağıtan sunucunun kendi adresi statiktir, çünkü adres dağıtan makinenin adresini kimse dağıtamaz.
Dört mesaj neden dört?
Kiralama dört mesajdır: DHCPDISCOVER, DHCPOFFER, DHCPREQUEST ve DHCPACK. İki taraf da iki kez konuşur.
İlk mesaj bir broadcast’tir, çünkü istemci sunucunun adresini bilmez. Hedef IP adresi 255.255.255.255 olur, hedef MAC adresi FF-FF-FF-FF-FF-FF. En baştaki adres hiçbir makineye verilmez ve anlamı “bu ağdaki herkes”tir.
İstemci kendi adres alanına 0.0.0.0 yazar ve adresini bilmediğini paketin içinde açıkça ilan eder. İstekle cevabı eşleştiren şey bu yüzden adres olamaz. Eşleştirmeyi 4 baytlık rastgele bir işlem kimliği yapar, alanın adı xid.
Taşıma tarafında DHCP, UDP kullanır. İstemciden sunucuya giden mesajlar 67 numaralı porta, sunucudan istemciye dönenler 68 numaralı porta gider. İstemci tarafının da sabit bir portu olmasının sebebi, cevabın broadcast olarak dönebilmesi. Rastgele bir port seçilseydi broadcast’i alan öbür makinelerde o portu tesadüfen dinleyen bir programa yabancı bir paket düşerdi.
İkinci mesajda sunucu havuzdan bir adres seçer ve teklif eder. Teklifin içine kendi kimliğini de koyar. Sunucunun verdiği adresi taşıyan alanın adı yiaddr, açılımı “senin adresin” ve genişliği 4 bayt.
Üçüncü mesaj kabuldür ve o da broadcast’tir. Aynı ağda teklif veren başka sunucular varsa reddedildiklerini duymak zorundadır. Dördüncü mesaj geldikten sonra adres kiralanmış olur.
Birden çok teklif geldiğinde istemcilerin çoğu ilk geleni seçiyor ve hiçbiri teklifi doğrulamıyor. Bunun bir güvenlik sonucu var: ağa kendi DHCP sunucusunu bağlayan herkes, gerçek sunucudan önce cevap verdiği anda istemcilere varsayılan geçit ve DNS sunucusu olarak kendi adresini bildirebilir. Kurumsal switch’lerdeki DHCP gözetimi (DHCP snooping) bu yüzden teklifleri yalnızca güvenilir diye işaretlenmiş portlardan, yani gerçek sunucuya giden porttan geçiriyor. Aynı arıza kazayla da çıkıyor: ev ağına LAN portundan bağlanan ikinci bir router, kendi DHCP sunucusuyla komşularına yanlış geçit dağıtmaya başlıyor.
Dört mesajın sırasını ve her birinin ne taşıdığını görelim:
0.0.0.0, hedef alanına 255.255.255.255 yazıyor. İki uç durum aynı pakette: kimliği olmayan biri, adresi olmayan bir alıcıya sesleniyor.- Adresi olmayan makine herkese sesleniyor. İstemci sunucunun adresini bilmiyor, kendi adresi de yok. Kaynak alanına
0.0.0.0, hedef alanına255.255.255.255yazıyor. İki uç durum aynı pakette: kimliği olmayan biri, adresi olmayan bir alıcıya sesleniyor. - Sunucu bir adres teklif ediyor. Havuzdan bir adres seçip "senin adresin" anlamına gelen
yiaddralanına yazıyor ve kendi kimliğini de ekliyor. Bu henüz bir kira değil, bir teklif; istemci başka sunuculardan da teklif almış olabilir. - Kabul de broadcast gidiyor; sebebi var. İstemci hangi teklifi kabul ettiğini broadcast'le ilan ediyor. Aynı ağdaki öteki sunucuların, ayırdıkları adresi havuza geri koyabilmek için reddedildiklerini duymaları gerekiyor. Unicast bu haberi taşıyamazdı.
- Onay geliyor, kira başlıyor. Dördüncü mesajla adres artık istemcinin. Yanında maske, varsayılan geçit, ad sunucuları ve kira süresi de geliyor; hepsi numaralı seçenekler hâlinde.
İlk iki adım her zaman gerekmez. İstemci önceki adresini hatırlıyor ve onu tekrar kullanmak istiyorsa dörtlünün başını atlayıp doğrudan DHCPREQUEST’ten başlar. İki mesaj kısalır.
Mesajın türü başlıkta durmaz. RFC 2131’in tanımladığı 8 tür, 53 numaralı seçenekte tek bayt olarak taşınır.
| kod | mesaj | ne yapar |
|---|---|---|
| 1 | DHCPDISCOVER | istemci ağda sunucu arar |
| 2 | DHCPOFFER | sunucu bir adres teklif eder |
| 3 | DHCPREQUEST | istemci teklifi kabul eder |
| 4 | DHCPDECLINE | teklif edilen adres kullanımda çıktı |
| 5 | DHCPACK | kira onaylanır |
| 6 | DHCPNAK | sunucu isteği reddeder |
| 7 | DHCPRELEASE | istemci adresi geri bırakır |
| 8 | DHCPINFORM | adres var, yalnızca ayar isteniyor |
Reddin anlamı dardır. İstemcinin elindeki adres yanlıştır, örneğin başka bir alt ağa taşınmıştır ya da kirası bitmiştir.
Seçenekler yalnızca tür taşımaz. Her yapılandırma parçası numaralı bir seçenektir ve istemci istediği numaraları bir liste hâlinde sayar.
| numara | seçenek | taşıdığı |
|---|---|---|
| 1 | alt ağ maskesi | ağın sınırı |
| 3 | router | varsayılan geçidin adresi |
| 6 | DNS sunucusu | ad çözecek sunucunun adresi |
| 51 | kira süresi | kiranın ömrü |
| 53 | mesaj türü | dörtlünün hangi adımı |
| 54 | sunucu kimliği | teklifi kimin verdiği |
| 55 | parametre isteği | istemcinin istediği numaralar |
Sıralamanın da bir kuralı var. Cevapta hem maske hem geçit varsa maske önce gelmek zorundadır. Geçit seçeneği tercih sırasına dizilmiş bir router listesi taşıyabilir; ev ağında liste tek satırlıktır.
DerinleşmeHer mesajda boş giden 192 bayt neden hâlâ orada?
DHCP mesajının seçeneklerden önceki sabit kısmı 236 bayttır ve bu biçim BOOTP’den devralındı. Alanların çoğu o günün sorunlarına göre ölçüldü, bugünün sorunlarına göre değil.
En görünür artık, istemcinin MAC adresini taşıyan alan. Ona 16 bayt ayrılmıştır, oysa bir Ethernet adresi 6 bayttır. Her mesajda 10 bayt boş gider. Alan geniş tutulmuştu, çünkü BOOTP yazıldığında data link layer adreslerinin hepsi altı oktet değildi.
İkinci artık daha büyük: sunucu adı alanı 64 bayt, açılış dosyası alanı 128 bayttır. İkisi birlikte 192 bayt tutar ve sabit başlığın %81,4’üdür. İkisi de disksiz açılış içindir; hangi sunucudan hangi dosyanın çekileceğini yazarlar. Evdeki bir telefon için o alanların tamamı baştan sona boştur, ama veri merkezinde ağdan açılan sunucular (PXE) onları bugün de kullanıyor. Standart boşluğu değerlendirmenin bir yolunu da bıraktı: seçenekler sığmazsa bu iki alan seçenek taşımak için ödünç alınabiliyor.
Seçenekler başlamadan önce 4 baytlık sabit bir değer gelir: 99.130.83.99. Adı magic cookie; mesajın düz BOOTP değil, seçenek taşıyan bir DHCP mesajı olduğunu söyleyen işaret bu.
Boyutun bir de tavan hikâyesi var. Sabit kısmın üstüne asgari 312 baytlık seçenek alanı gelince 548 bayt eder. 8 baytlık UDP başlığı ile 20 baytlık IP başlığı da eklenince toplam tam 576 bayta oturur. O sayı keyfi seçilmedi. Bir IP makinesinin kabul etmek zorunda olduğu en küçük datagram odur, yani mesaj en kısıtlı makinede bile parçalanmadan geçecek biçimde ölçülmüştür.
Adres neden kiralık?
Adres kalıcı değildir. Kiralanır. Kira yenilenebilir, cihaz kapanınca adres havuza döner. “Kira” burada bir benzetme de sayılmaz; standardın kendi terimidir.
Kira süresi 51 numaralı seçenekte 32 bitlik bir sayı olarak gelir. Diyelim ki ev router’ın 24 saatlik kira veriyor. İstemci sürenin bitmesini beklemez, iki zamanlayıcı tutar. İlki sürenin %50’sinde, ikincisi %87,5’inde dolar.
İlk zamanlayıcı dolunca istemci yenileme durumuna geçer ve adresi veren sunucuya tek hedefli bir istek yollar. İkincisi dolunca yeniden bağlanma durumuna geçer ve artık herhangi bir sunucuya broadcast yapar. İki kademenin sebebi basit: adresi veren sunucu ölmüş olabilir.
Örneğimizde ilk zamanlayıcı 12. saatte, ikincisi 21. saatte dolar. Geriye üç saatlik bir tampon kalır.
Zamanlayıcılar tam bu değerlerde de kurulmaz. Standart, sabit değerin etrafına rastgele bir sapma eklenmesini ister. Sebebi ölçek: aynı anda kiralanan bütün adresler aynı anda yenilenmek isterse sunucu tek seferde boğulur. Sapma bunu dağıtır.
Aynı kaygı açılışta da var. Standart, istemcinin ilk mesajı göndermeden önce 1 ile 10 saniye arasında rastgele beklemesini öneriyor. Elektrik geldiğinde evdeki bütün cihazların aynı saniyede konuşmasını engelleyen şey bu bekleme; bugünkü istemcilerin çoğu onu kısaltıyor.
Cevap gelmezse istemci pes etmez. Yeniden gönderim gecikmesi 4 saniyeden başlar, her denemede ikiye katlanır ve 64 saniyede tavan yapar. Beşinci denemeye kadar geçen toplam bekleme 60 saniyedir.
Adresin gerçekten boş olduğunu iki taraf da ayrı ayrı sınar. Sunucu teklif edeceği adresi bir ICMP yankı isteğiyle yoklayabilir, çünkü havuzda boş görünen adres ağda kullanılıyor olabilir. İstemci de teklif edilen adres için bir ARP isteğini broadcast eder; cevap gelirse adres kullanımdadır ve reddini göndermek zorundadır.
Adres kesinleşince istemcinin son bir işi kalır. 25. bölümdeki bedava ARP komşuların eski kayıtlarını temizletiyordu; makine yeni adresini duyurmak için tam onu yapar.
Sunucunun da istemciye verdiği iki söz vardır. Kira boyunca adresi başkasına vermez ve aynı istemciye her seferinde aynı adresi vermeye çalışır. İkincisi bir garanti değil, bir gayrettir.
Sabit adres kime gerekiyor?
Havuzun dışında kalan adresleri hatırlıyorsun: örnek ağda .100 ile .199 arası dağıtıma ayrılmıştı, kalan 154 adres boş duruyordu. O boşluk israf değil, ayrılmış alan.
Sebebi basit: bazı makineleri başkaları arıyor. Kirası dolunca adresi değişen bir yazıcıya ertesi gün kimse ulaşamaz. Aynı şey ağdaki depolama kutusu, kamera, switch’in yönetim arayüzü ve router’ın kendisi için de geçerli. Bunlar hizmet veren taraf ve hizmetin adresi sabit olmak zorunda.
İstemci tarafında durum tersine dönüyor. Telefonunun, dizüstünün ve televizyonunun hangi adresi aldığı kimsenin umurunda değil; onlar arayan taraf, aranan değil. Kural buradan çıkıyor: arayanın adresi dinamik olabilir, arananınki olmamalı.
Elle yazmanın üç klasik arızası
Dört alanı doğru doldurmak yetmiyor; üç tuzağı da atlaman gerekiyor.
Havuzun içinden adres seçmek. Yazıcıya elle .150 verdin. Sunucu o adresi havuzda boş görüyor ve bir gün başka bir cihaza teklif ediyor. İki makine aynı adresi taşır hâle geliyor. Sunucunun ve istemcinin yaptığı çakışma sınamaları bu durumu ancak sonradan katılan cihaz üzerinden yakalar; yazıcı çoktan oradadır ve arıza kesikli göründüğü için geç anlaşılır.
Maskeyi yanlış girmek. Maske hangi adreslerin komşu sayılacağına karar veriyordu. Yanlış maske komşuyu uzak, uzağı komşu gösterir. İkincisinde makine paketi geçide hiç vermez ve olmayan bir komşuyu ARP ile boşuna arar.
Geçidi ya da DNS’i boş bırakmak. Geçitsiz makine yerel ağda çalışır, dışarı çıkamaz. DNS’siz makine dışarı çıkar ama hiçbir adı çözemez. İkincisinde kullanıcının gördüğü tablo “internet yok”tur, oysa IP adresi yazıldığında her yere ulaşılıyordur.
Üçüncü yol: adresi cihaza değil sunucuya yazmak
İki ucun arasında, sahada en çok kullanılan seçenek duruyor. Sunucuya “şu MAC adresli kart her istediğinde .50 alsın” dersin. Cihazın hiçbir ayarına dokunmazsın; o hâlâ sıradan bir DHCP istemcisi ve dört mesajı her seferinde aynı şekilde yürütüyor. Yalnızca cevabın içindeki adres artık sabit.
Adı rezervasyon; ev interface’lerinde çoğu zaman “statik DHCP” diye geçer. Kazandırdığı şey yönetim kolaylığı: adres sabit ama karar tek bir yerde duruyor. Yüz cihazlı bir ağda hangi adresin kimde olduğunu öğrenmek için yüz cihaza değil, tek bir tabloya bakıyorsun.
| adresi kim tutuyor | değişir mi | yüz cihazda | |
|---|---|---|---|
| dinamik | sunucu, havuzdan | kira dolunca değişebilir | sorunsuz |
| rezervasyon | sunucu, MAC’e bağlı | değişmez | tek tablo |
| elle statik | cihazın kendisi | ancak elle | yüz ayrı ayar |
Evdeki kutu kaç iş yapıyor?
Evdeki kutu tek cihaz gibi görünür. İçinde dört ayrı iş vardır.
Modem, kablo ya da DSL hattındaki analog sinyali sayısal veriye, giden veriyi de hattın taşıyabileceği analog sinyale çevirir; adı bu iki işin, modülasyon ile demodülasyonun kısaltması. Fiber hatlarda aynı işi ONT denen kutu yapar. Router paketleri ağlar arasında iletir; firewall ve adres çevirisi de onun tarafındadır. Switch kablolu portları birbirine bağlar. Access point kablosuz tarafı taşır. Dördünü tek kasada birleştirmek bir üretim tercihidir, protokol zorunluluğu değil.

Katman karşılıkları da farklıdır. Router network layer’da, switch data link layer’da çalışır; ağ kartı data link ile physical layer’ı birlikte taşır, repeater yalnızca physical layer’dadır. Ev kutusu en az üç katmanda birden iş görür; adres dağıtan sunucusu ve ayar sayfası da application layer’da çalışır. 28. bölümde yıldız topolojinin merkezine bir cihaz konuyordu; evdeki kutu tam o merkezde durur. İlişkilendirme tek bir access point’le kuruluyordu; o access point de aynı kasanın içindedir.
Adres dağıtan sunucu da genelde ayrı bir makine değildir. Router’ın içinde durur ve router’ın bağlı olduğu bütün alt ağlara hizmet eder.
Aynı kutu çoğu zaman kendini DNS sunucusu olarak da dağıtır: DHCP’nin verdiği DNS adresi kutunun kendi adresidir. Kutu gelen soruları kendisi çözmez, operatörün resolver’ına aktarır ve cevapları bir süre saklar. Yani 3. bölümdeki resolver değil, onun önünde duran bir aracıdır.
Büyük ağlarda iş tersine döner: tek bir DHCP sunucusu onlarca alt ağa hizmet eder. Broadcast router’ı geçemediği için her alt ağın router’ı istemcinin mesajını yakalayıp sunucuya tek hedefli olarak aktarır (DHCP relay). Sabit başlıktaki giaddr alanı bu aracının adresini taşır; sunucu hangi havuzdan adres vereceğine ona bakarak karar verir.
Geçit görevini de router üstlenir. Default gateway, bir bilgisayarın paketlerini başka bir alt ağa iletmek için kullandığı adrestir. Makinelerin de routing tablosu vardır ama ağa bağlı tek router varsa seçilecek bir şey yoktur; ev ağının hâli tam budur.
Tablonun ilk satırı varsayılan yoldur: hedefi eşleşmeyen bütün paketler geçidin adresine iletilir. Windows’ta bu tabloyu route print, Linux’ta ip route ile görürsün. Öteki satırların nereden geldiğini 39. bölümde router’ın içine indiğimizde açacağım.
Geçit tanımlanmadığında belirti nettir. Makineler birbirine ulaşır, ağın dışıyla iletişim başarısız olur. Geçide bloğun ilk kullanılabilir adresini vermek zorunlu değil ama yaygın bir alışkanlıktır. Örnek ağımızda geçit 192.168.42.1 adresinde oturur.
RFC 1918 üç bloğu özel adres bloğu olarak yerel ağlara ayırmıştır: 10/8, 172.16/12 ve 192.168/16. Bu adresler internette yönlendirilmez. Dışarı çıkarken bu adreslerin nasıl geçerli birer adrese çevrildiğini burada bırakıyorum; 46. bölümde NAT tablosuyla birlikte açacağım.
Hiçbir sunucu cevap vermezse makine boş kalmaz. 169.254.0.0/16 bloğundan kendine bir adres uydurur; bunun adı link-local (bağ-yerel) adresleme, Windows’taki adı APIPA. Ekranda o adresi görmek, kiralamanın hiç gerçekleşmediğini söylemenin başka bir yoludur.
Kutunun kendi adresini kim veriyor?
Kutu içeriye adres dağıtıyor. Peki kendi adresini nereden alıyor?
Fotoğraftaki portlara dön: dördünde LAN yazıyor, birinde WAN. LAN portlarında kutu sunucu tarafında oturuyor. WAN portunda rolü tersine dönüyor; orada kendisi istemci. Kablo internetinde ve pek çok fiber hatta az önce izlediğin dört mesajı bu kez o gönderiyor. Cevabı veren sunucu operatörün ağında duruyor.
Yani evinde iki kiralama birden yürüyor. İçeride cihazların kutudan kiralıyor, dışarıda kutu operatörden kiralıyor. WAN portundaki adres, internetin geri kalanının seni gördüğü adres.
Operatörün verdiği adres de kiralık. Kira uzun tutulabilir ve çoğu abone yıllarca aynı adresi görür, ama bu bir garanti değil. Modem uzun süre kapalı kalırsa, hat yeniden kurulursa ya da operatör ağını yeniden düzenlerse adres değişir.
Bu değişkenlik çoğu kullanım için sorun çıkarmıyor. Bir siteye bağlanırken adresini karşı tarafa zaten paketin içinde taşıyorsun; kimsenin seni önceden biliyor olması gerekmiyor. Sorun ters yönde başlıyor. Dışarıdan sana bağlanılacaksa adresin dün ne olduğu bugün işe yaramaz: evdeki kameraya uzaktan bakmak, bir oyun sunucusu barındırmak ya da ofise VPN ile girmek bunu gerektiriyor.
Sabit adres bu yüzden ayrı bir ürün olarak satılıyor. Ev aboneliğinde varsayılan dinamiktir; sabit adres kurumsal pakete ya da ücretli bir eke bağlanır. Operatörün dinamiği tercih etmesinin sebebi de adres kıtlığı. Aynı anda bağlı olmayan abonelerin adreslerini havuzda tutmak, her aboneye kalıcı bir adres ayırmaktan daha az adresle çalışıyor.
Bazı erişim ağlarında adres verilmeden önce bir kimlik adımı var. Modeme kullanıcı adı ile parola girmenin sebebi bu: hattın üstünden önce bir oturum açılıyor (PPPoE) ve adres DHCP ile değil, o oturumun kendi pazarlığıyla veriliyor. Türkiye’deki DSL hatları ve pek çok fiber hat böyle çalışıyor. Bir adım ötesi de var: bazı operatörler WAN portuna bile genel adres vermeyip çeviriyi kendi ağlarında yapıyor; 46. bölümde göreceğimiz bu düzende dışarıdan sana hiç bağlanılamıyor. Erişim ağının nasıl kurulduğuna indiğimizde bu adımın neden orada durduğunu da açacağım.
Kiranın kimden alındığını kendi makinende görebilirsin. Windows’ta ipconfig /all çıktısı IP adresini, MAC adresini, DNS sunucusunu ve adresi veren sunucuyu birlikte listeler. Cisco bir router’da show ip dhcp binding dağıttığı kiraların tablosunu, show dhcp lease ise router’ın kendi aldığı kirayı gösterir. 21. bölümde yazdığımız dhcp filtresi bu dört mesajı ayırır; Wireshark 3.0’a kadar aynı filtrenin adı eski protokolden kalma bootp idi.
Aynı çıktıda genel adresini arama; orada yok. Gördüğün adres 192.168 ile başlıyorsa internetin seni onunla görmediği kesindir. Genel adresi ya router’ın WAN durumu sayfasından ya da dışarıdaki bir hizmete sorarak öğrenirsin.
Özet
- Adres iki yoldan gelir: ya elle yazılır ya da ağa katılma anında bir sunucudan alınır; ikinci yol dört alanı birden doldurur.
- Kiralama dört mesajdır: istemci broadcast’le arar, sunucu teklif eder, istemci yine broadcast’le kabul eder, sunucu onaylar.
- Tür seçenekte taşınır: mesajın hangi adım olduğunu 53 numaralı seçenekteki tek bayt söyler, başlıktaki ayrı bir alan değil.
- Adres kiralıktır: istemci ilk zamanlayıcıda kendi sunucusuna, ikincisinde herhangi bir sunucuya dönerek kirayı tazeler.
- Arananın adresi sabit olmalı: yazıcı, kamera ve sunucu gibi kendisine bağlanılan cihazlar sabit adres ister; en temizi adresi cihaza değil sunucuya yazmaktır.
- Ev kutusu dört iştir: modem, router, switch ve access point aynı kasada birleşmiştir; default gateway olarak yazılan adres o kasanındır.
- Kutu da kiracıdır: WAN portunda kendisi bir DHCP istemcisidir ve genel adresini operatörden kiralar; ev aboneliğinde o adres dinamiktir, sabiti ayrı bir üründür.
Artık makinen adresi nereden aldığını ve dışarı çıkarken hangi kapıya yöneleceğini biliyor. Geriye tek bir soru kalıyor. Paketin hedefi elinde; makinen o hedefin bu ağda olmadığına nasıl karar verdi?
37. bölüme devam et: Adresin Anatomisi