02/12/2018

DHCP Protocol ve ilginç özellikleri

Yine yakınlarda olacak sınav için DHCP protokolü RFC lerine göz atıyordum. İki ilginç nokta önemlli geldi.
1 ncisi DHCP protokolü ile yapılabilecekler 2 ncisi protokolün çalışma mantığı.
Her ikisine burada değineceğim.
Öncelikle bir DHCP server ve client kurulumu yapmamız ve sonra server a kuralları eklememiz lazım. Bunu Linx ile yapacağım ancak
yazımın tamamlanması biraz zaman alacak o nedenle aşağıya tanıtıcı ve hatırlatıcı notlarımı ekliyorum.
Bu konuyla ilgili asıl kaynak tabii ki RFC dokümanları. DHCP de diğerleri gibi zamanla olgunlaşmış bir protokol. Ancak RFC yi okuyunca karşıma çıkan ilginç bir konuyada değinmek istiyorum. DHCP ve BOOTP protokolünden bağımsız olarak Sun Microsystem in Solaris 8 ve solaris 10 sistemlerinde çalışmıştım. Bu sistemlerin en ilginç ve güzel özelliklerinden biriside mesela çöken server veya client aslında hemen hemen hiç dert olmuyordu çünkü açılışta NVRAM’de (x86 da ki BIOS gibi ama komut satırı olan ve daha çok işlem yapılabilen versiyonu gibi düşünün) “boot net” yazıp entera basıyorduk ve makina boyutuna göre 5-15 dk arasında tamamen kurulmuş olarak hazır hale geliyordu. Bizim girdi yapmamıza gerek kalmıyordu. Bunun için önceden bir kurulu sistemi alıp bir imajını çıkarıyorduk (flar image) onu başka bir sisteme kaydediyorduk ve gerekli bir kaç ayarı yaptıktan sonra hazır hale geliyordu. Protokol bunu yapmasada bunu referans olarak göstermesi ilginç geldi. Sun sistemlerinin bunu 1997 de yapabildiğini düşünün bir.
Neyse gel gelelim DHCP protokolüne.
DHCP protokolünün geliştirilmesinde ki isterleri önce bir yazalım.
1_ Sistem yöneticileri lokal kaynaklara erişimi kontrol edebilmeliler
2_ Client lar lokal kaynaklara erişim için gerekli konfigürasyonları manuel girdi olmadan otomatik yapabilmeliler.
3_ Normal şartlarda sistem yöenticileri normal clientlere tek tek girdi yapmak zorunda olmamalılar.
4_ DHCP her subnet te bir server a ihtiyaç duymamalı routerlar arası aktarılabilmeli.
5_ DHCP clientları birden fazla cevaba hazır olmalılar bazı networklerde birden çok DHCP server i olabilir.
6_ DHCP static olarak konfiüre edilmiş clientlarla da birarada çalışabilmeli.
7_ Mevcut BOOTP clientlarına da servis sağlayabilmeli.
8_ DHCP aynı adresin birden çok client tarafından kullanılmayacağını garanti etmeli.
9_ DHCP konfigürasyonları rebootlar arası clientlarda aynı kalabilmeli. DHCP serverleri clientlara mümkün olduğınca aynı konfigürasyonları göndermeli.
10 _DHCP serverları reboot edildiğinde DHCP clientları konfigürasyonlarını koruyabilmeliler.
11_ Yeni eklenen clientlar otomatik konfigürasyonları alabilmeliler.
12_ Bazı clientlara sabit ve kalıcı ayarları desteklemelidir.
UDP protokolü ile yapılan DHCP haberleşmesinde normal durumda mesaj akışı şekilde ki gibi oluyor.

Sisteme yeni bağlanan client içinde bazı önceden mevcut olan konfigürasyonlar ile DHCPDISCOVER mesajı gönderiyor. IP si olmadığından ve DHCP serveri bilmediğinden bunu broadcast olarak yapıyor.
Server bu discover mesajını alıp inceliyor olması gereken konfigürasyonlar ile DHCPOFFER mesajını gönderiyor.
Client OFFER mesajını alıp kabul ederek DHCPREQUEST gönderiyor. Yani bu ayarları bana reserver et kullanacağım diyor.
Daha sonra server DHCPACK yani anlaşıldı mesajı gönderiyor böylece o IP o clienta atanmış oluyor ve server bunu başkasına önermiyor. Aynı IP isteği ile gelen başka DHCPDISCOVER mesajlarına başka IP tahsis ediyor.
Normal kapanan bilgisayar IPyi kullanmayacağını bildiren DHCPRELEASE emsajını gönderiyor. Anormal kapanmalarda IP timeout olduğu için release oluyor.
DHCPNAK mesajını gönderen client başlangıç konumuna dönüp yeniden bağlantı ile yeni IP isteği gönderir.
Genel algoritma akışı aşaığıda ki gibidir.

Şimdilik biraz ip ucu gibi
2_ DHCP ile gönderilebilecek ayarların listesi
3_ çalışma mantığı şeması
4_ örnek hazırlama linux2linux with wireshark
Linkler
https://tools.ietf.org/html/rfc2131 — DHCP RFC si
http://www.networksorcery.com/enp/rfc/rfc4388.txt — alakalı bir konu
http://www.networksorcery.com/enp/rfc/rfc1533.txt — extensions Eski versiyonu 1993
http://www.networksorcery.com/enp/rfc/rfc2132.txt — extensions Son versiyonu 1997
4_ http://www.networksorcery.com/enp/rfc/rfc3203.txt

Leave a Reply