Bir dizüstü bilgisayarı ağa taktığınızda saniyeler içinde IP adresi, ağ geçidi ve DNS sunucusu bilgisi gelir. Kimse elle bir şey girmez. Bunu yapan DHCP’dir ve arkasındaki mekanizma dört mesajdan ibarettir.
Dört adım: DORA
Sürecin adı, adımların baş harflerinden gelir.
Discover (keşif). İstemcinin henüz IP adresi yoktur, dolayısıyla kime soracağını da bilmez. Yayın (broadcast) yapar: “ağda DHCP sunucusu var mı?”
Offer (teklif). Sunucu havuzundan boş bir adres seçer ve teklif eder. Ağda birden çok sunucu varsa birden çok teklif gelebilir.
Request (istek). İstemci gelen tekliflerden birini seçer ve yine yayınla duyurur: “şu sunucudan şu adresi alıyorum”. Yayın olmasının nedeni, teklif veren diğer sunucuların da adreslerini serbest bırakabilmesidir.
Acknowledge (onay). Seçilen sunucu adresi kaydeder ve onaylar. Onayla birlikte yalnızca adres değil, ağ geçidi, DNS sunucuları, alan adı ve varsa diğer seçenekler de gelir.
Bu dört adım genelde bir saniyenin altında biter.
Kira: adres sizin değil, ödünç
DHCP adresi vermez, kiralar. Her adresin bir kira süresi vardır ve süre dolduğunda adres havuza döner.
İstemci beklemez: kiranın yarısı dolduğunda (T1) yenileme ister. Sunucu yanıt vermezse, kiranın yüzde 87,5’inde (T2) başka bir sunucuya sorar. Hiçbiri yanıt vermezse süre dolar ve istemci adresi bırakır.
Bunun pratik sonucu önemlidir: DHCP sunucusu çökse bile ağ hemen durmaz. Mevcut cihazlar kiraları bitene kadar çalışmayı sürdürür. Uzun kira, kesintiyi fark etmenizi geciktirir — bu, uzun kiranın tek gerçek yararıdır.
Havuzu tüketen kira süresidir
Sezgiye aykırı olan nokta şudur: havuzu tüketen şey eşzamanlı cihaz sayısı değil, kira süresidir. Ağdan ayrılan cihaz adresini kirası bitene kadar bırakmaz; düzgün bir bırakma mesajı gönderen istemci azınlıktadır.
Misafir kablosuz ağında sekiz günlük öntanımlı kira, gün içinde iki yüz kişinin uğradığı bir ofiste 254 adreslik bir ağı bitirir. Aynı ağ iki saatlik kirayla rahat çalışır.
Bu ilişkiyi sayıya dökmek ve havuza sığan en uzun kirayı hesaplamak için DHCP kapsam planlayıcı aracını kullanabilirsiniz. Adres bloklarının nasıl bölüneceği ise IP adres planı rehberinde.
Sunucu başka alt ağdaysa
Keşif mesajı bir yayındır ve yayınlar yönlendiricileri geçmez. Yani DHCP sunucunuz farklı bir alt ağdaysa istemci onu hiç bulamaz.
Çözüm, yönlendiricide DHCP aktarımı tanımlamaktır — Cisco dünyasında ip helper-address olarak bilinir. Yönlendirici, yayını alıp sunucuya tek adresli (unicast) olarak iletir.
Bu, “DHCP çalışmıyor” vakalarının en yaygın nedenidir ve sorun neredeyse hiç DHCP sunucusunda değildir. Yeni bir VLAN açıldığında aktarım satırını eklemeyi unutmak yeterlidir. Aynı nedenle, yük devretme kullanıyorsanız yönlendiricide iki aktarım adresi bulunmalıdır.
Yük devretmenin nasıl kurulacağı DHCP yük devretme rehberinde ayrıntılı.
Ayırma ile sabit adres aynı şey değil
İki yöntem karıştırılır ve karıştırıldığında çakışma üretir.
Ayırma (reservation) bir DHCP kirasıdır: sunucu, belirli bir MAC adresine hep aynı IP’yi verir. Adres havuzun içinde olmalıdır, çünkü dağıtan yine sunucudur.
Sabit adres cihaza elle girilir. Sunucunun bundan haberi yoktur; bu yüzden o adres havuzun dışında kalmalıdır. Havuzun içinde bırakılırsa sunucu aynı adresi başka bir cihaza verir ve iki cihaz çakışır.
Bu çakışmayı yakalamak için sunucuda çakışma algılamayı bir iki denemeye ayarlamak işe yarar: sunucu adresi dağıtmadan önce ping atar.
Seçenekler: adresten fazlası
DHCP yalnızca IP dağıtmaz. Ağ geçidi, DNS sunucuları, NTP sunucusu, alan adı soneki ve ağdan önyükleme bilgileri de aynı onay mesajıyla gelir.
Saat sunucusunu buradan dağıtmak yaygındır ama etki alanı ortamında dikkat gerektirir; hiyerarşinin nasıl kurulacağı NTP saat planlayıcı aracında anlatılıyor.
Ağdan önyükleme (PXE) yapılacaksa 66 ve 67 numaralı seçenekler devreye girer ve UEFI ile eski BIOS istemcileri farklı dosya ister — tek bir değer ikisini karşılamaz.
Kısaca
DHCP dört mesajlık basit bir protokoldür ama iki yerde sürpriz yapar: kira süresi havuzu sessizce tüketir, ve yayın tabanlı olduğu için yönlendirici arkasında aktarım gerekir. Bir “IP alamıyor” vakasında önce bu ikisine bakın.
Alt ağın kendisini hesaplamak için alt ağ hesaplayıcı, kavramın temeli için alt ağ nedir yazısına bakabilirsiniz.