DHCP (Dynamic Host Configuration Protocol - Dinamik Makine Yapılandırma Protokolü)

Eyl 06, 2013
DHCP Tanımı ve Kullanım Amaçları

Dinamik Makine Yapılandırma Protokolü (DHCP), bir TCP/IP ağı üzerindeki her bir makineye dinamik olarak IP dağıtmak ve diğer yapılandırma ayarlarının yönetimini kolaylaştırmak için kullanılan bir IP standartıdır.
TCP/IP protokolü ile çalışan bir ağ üzerindeki her bilgisayarın kendine özgü bir IP adresi olmalıdır. IP adresi ve alt ağ maskesi (subnetmask), ana makineyi  (host) ve bağlı olunan alt ağı belirlediği için; bir bilgisayar farklı bir alt ağa taşındığında IP adresinin de değişmesi gerekir. DHCP sunucusu, kurulduğu yerel ağ içerisindeki makinelere dinamik olarak IP dağıtır. Böylelikle, hem o ağ içerisinde kullanılan bir IP adresinin tekrar kullanılarak IP çakışmalarına neden olması önlenir hem de yapılandırma ayarlarının elle girilmesinden oluşabilecek hata ve zaman kaybı minimuma indirilir. DHCP, "istemci-sunucu (client-server)" modeline dayanan bir protokoldür. DHCP sunucusu veritabanı içerisinde; gerekli yapılandırma parametreleri, istemcilere ayrılmış belirli bir IP bloğuna ait geçerli adresler ve sunucular tarafından tutulan kira süreleri bulunur.

DHCP Kavramları

  • Kapsam (Scope):  Bir ağ üzerinde, istemcilere dağıtılmak üzere oluşturulan IP havuzudur. Bir kapsam alanı,DHCP hizmeti sunulan tek bir fiziksel alt ağı tanımlar ve istemcilere gerekli yapılandırma ayarları ile IP adreslerinin gönderilmesinde sunucuya başlıca yolu sağlar. Bir ağ üzerinde tanımlı alt ağlar fiziksel altyapıya göre belirlenir ve yönetim kolaylığı sağlamak amacıyla gruplandırılır. Kapsamlar sayesinde de bu gruplandırılmış alt ağlar dhcp sunucusu üzerinde tanımlanabilir.
  • Üstkapsam (Superscope):  Aynı fiziksel alt ağda bulunan birden çok kapsamın yönetimsel olarak gruplandırılmasıdır. Birlikte etkinleştirilebilecek kapsamların listesini içerir.
  • Dışlama Aralığı (Exclusion Range): Kapsam içerisindeki, istemcilere sunulmamak üzere ayrılmış sınırlı IP adresleridir.
  • Adres Havuzu (Addres Range): Tanımlanmış bir kapsam üzerinde, dışlama aralığına ait IP adreslerinin çıkarılmasıyla oluşan, kullanılabilir IP adresleri havuzudur. İstemcilere dinamik olarak IP ataması bu havuz üzerinden yapılır.
  • Kira (Lease):  İstemci bilgisayar için atanan IP adresinin, DHCP sunucusu tarafından belirlenen kullanım süresidir. Bu süre belirlendiğinde kira etkin duruma getirilmiş olur ve kira süresi dolmadan bu sürenin yenilenmesi gerekir. Yenilenmezse ya da silinirse kira etkinliği sona erer. İstemcinin kirayı ne sıklıkta yenilemesi gerektiği ise kira süresi ile ilgilidir.
  • Ayırma (Reservation):  Bir alt ağ içerisindeki  bir makinenin her zaman aynı IP adresini kullanmasını sağlamak amacıyla kalıcı bir adres kira ataması oluşturulmasıdır.
  • Seçenek Türleri (Scope Options):  Her kapsam için etkinleştirilmesi gereken; DNS, WINS, varsayılan ağgeçidi gibi ortak kullanılan bazı seçenekler için atanabilen istemci yapılandırma ayarlarıdır.

DHCP Sunucu ile İstemci Durumundaki Bir Makinenin Haberleşmesi (Kira Oluşum Süreci)

Bir istemci makine TCP/IP ağı üzerinde çalışmaya başlayınca, DHCP sunucu ile haberleşerek ondan TCP/IP parametrelerini alır. Sunucu ve istemci aralarında şu paketlerle haberleşirler:

  • Dhcpdiscover: DHCP istemci bilgisayar tarafından ağa gönderilen ilk pakettir. Bu paket genel yayım (broadcast) olarak tüm ağa gönderilir. Bu paketin kaynak IP adresi kısmında istemci henüz bir IP adresine sahip olmadığı için 0.0.0.0 adresi bulunur. Hedef IP adresinde ise 255.255.255.255 bulunur. Bu pakette istemci makinenin MAC adresi, kaynak MAC adresi kısmında bulunur. İstemci makine bu mesaja gerekli cevabı alamadığı zaman periyodik olarak bu mesajı yayınlamaya devam eder.
    Bu mesaj 342 veya 590 byte uzunluğunda olabilir (eski sürümlerinde 590 baytdır). İlk 14 bayt Ethernet başlık bölümünü içerir. Daha sonraki 20 bayt'ta ise kaynak ve hedef IP adresleri bulunur. Sonraki 8 bayt ise UDP başlık kısmıdır. Burada UDP kaynak ve hedef port adresleri bulunur. Daha sonra ise "Dhcpdiscover" mesajının parametreleri gelir. Bu mesajda MAC adresi bulunduğundan eğer istemci makine için bir IP adresi tahsis edilmiş ise bu MAC adresini tanıyarak önceden tanımlı bu adresi gönderir.
  • Dhcpoffer: DHCP sunucu "discover" mesajını alınca adres alanında kullanılmamış bir IP adresi seçerek bunu bu mesaj ile istemci makineye gönderir. Bu pakette henüz istemci makinenin IP adresi bulunmadığından broadcast olarak yayınlanır. Bu mesajda ayrıca alt ağ maskesi, varsayılan ağ geçidi gibi parametreler de bulunur. Bu mesajın hedef MAC adresi kısmında istemci makinenin MAC adresi bulunur.
    Bu mesaj 342 bayt uzunluğundadır. İlk 14 bayt ethernet başlık kısmıdır. Daha sonraki 20 bayt IP başlık kısmıdır. Bu mesaj da broadcast olarak yayınlandığından hedef IP adresi 255.255.255.255'dir. Burada dikkat edilecek husus kaynak makine IP adresi kısmında DHCP sunucusunun IP adresinin bulunmasıdır. Daha sonra ise 8 baytlık UDP başlık kısmı gelir. Geri kalan 300 baytlık kısımda ise "Dhcpoffer" paketinin parametreleri gelir.
  • Dhcprequest: İstemci makine "Dhcpoffer" mesajını alınca gerekli parametreleri kabul ettiğini gösteren bu mesajı broadcast olarak yayınlar. DHCP, istemci makine "Dhcpoffer" mesajını alamazsa 2., 4., 8. ve 16. saniyelerde birer "Dhcpdiscover" mesajı daha gönderir. Yine cevap alamazsa her 5 dakikada periyodik olarak birer tane daha gönderir.
    Bu mesajda "Dhcpdiscover" mesajı gibi 342 veya 590 bayt uzunluğundadır. Bu mesaj istemci makinenin sunucu makine IP'sini bilmesine rağmen yine broadcast olarak yayınlanır. Bu pakette yine kaynak makinenin IP adresi kısmında 0.0.0.0 bulunur; çünkü istemci makine gönderilen IP adresini kabul ettiğini söyler; fakat bu IP adresini kullanabilmesi için DHCP sunucusundan "Dhcpnack" paketini alması gerekir.
  • Dhcpnack: IP adres önerisini kabul eden istemci makineye DHCP sunucusu tarafından gönderilir. İstemci bu mesajı alamadan makine TCP/IP protokolünü kullanamaz.
    Bu mesaj 342 bayt uzunluğundadır. Bu mesaj da broadcast olarak yayınlanır. Hedef IP adresi kısmında 255.255.255.255 bulunur. Kaynak adresi olarak da DHCP sunucunun IP adresi bulunur. UDP başlık kısmından sonra ise bu mesajın parametreleri gelir. IP adresinin ne kadar süre ile bu istemci tarafından kullanılacağı gibi bilgiler bu mesaj içerisinde bulunur.

   

IP adresinin kullanım süresi bittiği zaman son iki paket yine sunucu ile istemci arasında haberleşmeyi sağlar. Tek bir fark vardır. Bu da bu iki mesaj bu sefer broadcast olarak yayınlanmaz. İstemci ve sunucu makine birbirlerinin IP adreslerini bildiğinden bu mesajları doğrudan birbirlerine yollarlar. Tüm bu işlemler yapıldıktan sonra "ipconfig" komutu ile makinenin TCP/IP yapılandırması görülebilir. Bu komut all parametresi ile çalıştırıldığında network kartı ile ilgili bilgiler de görülebilir.

DHCP Sunucularını Yönetme

Yetkilendirme (Authorize):  DHCP servisini kurmak, sunucunun çalışması için yeterli değildir. Sunucunun bir etki alanında hizmet vermesini sağlayabilmek için yetkilendirme yapmak ve kapsam oluşturmak gerekir. Windows Server ailesi, aktif dizin hizmeti ile tümleşik çalışabilen bir yapıya sahip olduğundan, ağ üzerindeki bilgisayarlara aktif dizin servisi üzerinden yetkilendirme yapılır. Böylelikle, yetkisiz bir DHCP sunucusunun ağa giriş yapması engellenebilir.  DHCP sunucularının yetkilendirilebilmeleri ve hizmet dağıtabilmeleri için, aktif dizin yapısı üzerinde etki alanı denetleyicileri veya etki alanı üyesi sunucular olarak belirlenmesi gerekir. Aktif dizin üzerinde tanımlı yetkili bir sunucu olmaması durumunda ise herhangi bir etki alanına ya da kuruluşa bağlı olmayan bir sunucu da DHCP sunucusu olarak kullanılabilir ancak bu önerilmemektedir.

Kapsamları Yapılandırma:
Kapsamlar DHCP veritabanına eklenmeden önce, hangi alt ağdaki IP aralığını kullanacağı tanımlanmalı ve gerekli dışlama aralıkları belirtilir. Daha sonra, DHCP konsolu yardımıyla kapsam adı, kullanılan alt ağ maskesi, belirtilen IP aralığı ve kira süresi bilgileri girilerek kapsamlar sunucu veritabanı üzerinde oluşturulur. Aynı zamanda, daha önce oluşturulmuş bir kapsam da ayrıca yeniden yapılandırılabilir; ek dışlama aralıkları belirlenebilir, gerektikçe yeni ayırtmalar yapılabilir, kira süresinin uzunluğu değiştirilebilir ve seçenekler düzenlenip yeni seçenekler atanabilir.

DNS Sunucularının DHCP ile Kullanımı

Bir DHCP ağı yaratıldığı zaman, otomatik olarak da birleşik bir DNS alanı yaratılmış olur . DHCP ile DNS’in aynı veritabanı üzerinde tümleşik kullanılması ile de, istemci ya da sunuculardaki herhangi bir yapılandırma değişikliği, DHCP tarafından desteklenen dinamik güncelleştirme sayesinde  otomatik olarak algılanabilir. Dinamik güncelleştirme ile, DHCP sunucusu, DNS veritabanı üzerinde tutulan A(Host-Ana makine) ve PTR(Pointer-İşaretçi) kayıtlarındaki değişikliği alır ve kaydeder. Böylelikle, istemciler üzerindeki yetkilendirme ya da sunucular üzerindeki yapılandırma değişikliklerinin her bir sunucu üzerinde tek tek elle  ayarlanmasına gerek kalmaz.

Microsoft DHCP Servisinin Kurulması

DHCP'nin yüklenmesi için Denetim Masası (Control Panel) -> Ağ Servisleri (Network Services) seçilir. Buradan Ekle (Add) düğmesine tıklandığında Microsoft DHCP Servisi seçilerek kurum tamamlanır. DHCP servisi kurulduktan sonra Başlat (Start) -> Programlar (Programs) -> Yönetimsel Araçlar (Administrator Tools) altında DHCP Manager oluşturulur. Bu program kullanılarak DHCP sunucu üzerinde istenilen ayarlar yapılır. DHCP sunucu için özel parametre ayarları yapılabilir.

Bu servis kurulduktan sonra kayıt parametrelerini System -> Current -> CurrentControlSet -> Services -> DHCP Server -> Parameters anahtarında saklar. DHCP Manager programı kullanılarak DHCP Servisine erişilemiyorsa Denetim Masası Servisleri'nde bu servisin çalışıp çalışmadığı kontrol edilmelidir. DHCP Manager kullanılarak bu servise erişilemiyorsa "The RPC server is unavailable" (RCP sunucusuna erişilememektedir) mesajı ile karşılaşılır. Bu servisi çalıştırmanın başka bir yolu da komut satırında "net start dhcp" komutunu çalıştırmaktır.

DHCP istemci makinelerin yapılandırması oldukça basittir. Bu makinelerde yapılması gereken Denetim Masası(Control Panel) -> Ağ(Network) -> Protokoller(Protocols) -> TCP/IP -> Özellikler(Properties) de DHCP kullanarak, "DHCP sunucusundan bir IP adresi al." (Obtain an IP adress from a DHCP server) seçili duruma getirmektir. Eğer bu parametre seçili değilse istemci makine sabit bir IP adresi girilmesini bekleyecektir.

DHCP Sunucusunun Veritabanı Dosyaları

DHCP sunucu kurulduktan sonra bu servisin veritabanı dosyaları, otomatik olarak oluşturulan systemroot -> System32 -> Dhcp dizini altına kopyalanır. Bu veritabanı dosyaları şunlardır:

  • Dhcp.mdb: DHCP sunucunun veritabanı dosyasıdır.
  • Dhcp.tmp: Bu geçici dosya DHCP sunucusu tarafından takas dosyası olarak kullanılır.
  • Dhcp.log: DHCP sunucusunun yaptığı işlerin log dosyasıdır.

DHCP sunucunun veritabanı dosyaları dinamiktir. İstemcilere IP adresi atandıkça ya da bu istemciler sahip oldukları IP adreslerini bıraktıkça kendini günceller.

DHCP Sunucusunun Güncellenmesi

Kullanılan işletim sisteminin sürümü değiştiği zaman DHCP veritabanı da yeni biçimine çevrilmelidir. Yeni servis ilk çalıştığında sistem yöneticisinin onayı alınarak çevirme işlemi başlar (jetconv.exe). Bu işleyiş, başka servisler tarafından ilk çevirme işleminde başlatılır, ikinci kez başlatılamaz. Bütün yüklenmiş servislerin (DHCP, WINS) veritabanı çevirme işlemini yapar. Çevirme işlemi bittikten sonra eski veritabanı dosyaları mevcut dizin altında 351db alt dizini açılarak oraya kopyalanır. Bu dizin DHCP sunucu için şu biçimdedir: systemroot -> System32 -> dhcp -> 351db'dir. Bu işlemi komut satırından yapmak için "upg351db" komutu kullanılabilir.DHCP sunucu veritabanı yeniden onarılabilir. Bu veritabanını yeniden düzenlemek için ilk adımda DHCP sunucu veritabanı dosyalarının birer kopyası alınır. Daha sonra orijinal rehberde dhcp.mdb dosyası dışındaki dosyalar silinir. Alınan yedeklerden bozulmamış bir dhcp.mdb dosyası buraya kopyalanır. En son olarak DHCP servisi yeniden başlatılır.


Farklı alt ağlar olduğunda

Söz konusu ağda, farklı ağlar var ise her bir alt ağ için farklı bir DHCP sunucu kurmak bir çözüm olabilir. Diğer bir çözüm de şudur: Alt ağlardan birine bir DHCP sunucusu, diğer alt ağlara ise DHCP Röle Ajanı (Relay Agent) servisi kurulur. Bu servisin kurulmasında yine Denetim Masası (Control panel) -> Ağ (Network) -> Servisler(Services) seçilip buradan DHCP Röle Ajanı (Relay Agent) servisi seçilerek yapılır. DHCP Röle Ajanı servisinin kurulu olduğu makineler DHCP servisinin kurulu olduğu makinenin IP adresini bilmek zorundadır. Aynı zamanda DHCP Röle Ajanı kurulu olan makine de sabit bir IP adresi olmak zorundadır. DHCP sunucusu da her bir alt ağ için ayrı bir adres alanı tanımlanır. DHCP Relay Agent, makineye IP adresi için bir istek geldiği zaman bu isteği DHCP sunucusuna gönderir (DHCP Server, makinenin IP adresini bilmektedir.). DHCP sunucu gelen istekte kaynak (DHCP Röle Ajanı) makinenin IP adresine bakarak uygun olan adres alanından bir IP adresi verir.