Microsoft’un Grafik arayüzü bulunmayan ve daha az kaynak tüketen işletim Core sistemini komut satırı aracı ile yapılandırmak bazen zahmetli ve ön bilgi gerektirici olabilir. Bununla birlikte maliyet ve performans açısından tercih sebebi olması komut satırı aracını daha sık kullanmak gerektiğini göstermektedir. Bu makalemde Windows Server 2008 Core işletim sistemi üzerinde Dynamic Host Configüration Protocol (DHCP) Hizmetinin konfigürasyonu hakkında uygulamalı bilgiler vermeye çalışacağım.
Resim 1
İlk olarak DHCP Servisinin kurulumu ile başlayacağız. Bunun için gerekli yetkilere sahip bir kullanıcı hesabı ile (ör: Domain Admin) Ocsetup DHCPServerCore komutunu çalıştıralım (Resim 1)
Resim 2
Kurulum işlemi gerçekleştikten sonra DHCP Servisi çalışmaya başlamamış ve Pasif durumdadır. Sistemin her boot işlemi ile birlikte DHCP Servisinin de çalışması gerekmektedir. Bunun için sc config dhcpserver start= auto komutunu çalıştırmak yeterlidir. Artık DHCP Servisinin çalışmasını sağlayabiliriz. Servisin hizmet vermeye başlaması için net start dhcpserver komutunu çalıştırmanız yeterlidir (Resim 2).
Resim 3
DHCP Servisinin çalıştığından ve her sistem başlangıcında çalışmaya başlayacağından emin olmak için sc query dhcpserver komutu ile Resim 3’teki çıktıyı alıyor olmamız gerekir.
Servisin çalıştığından emin olduktan sonra bir başka bilgisayardan MMC 3.0 kullanmak şartı ile bağlantı kurulabilir ve arayüzden (GUI) konfigürasyon yapılabilir. Tabii ki zoru seven yöneticiler olarak (ya da mecburiyetten) komut satırı aracı ile konfigürasyon yapmak tercih sebebi olabilir. Bu nedenle komut satırı aracını kullanarak diğer konfigürasyonları yapacağız.
Resim 4
Burada bir hatırlatma yapmak istiyorum; başlangıçta belirttiğim üzere DHCP Server’ımız bir domain üyesi olduğu için domain controller tarafından yetkilendirilmeden görevini yerine getiremeyecektir. Yetkilendirme için netsh add server w2k8core 192.168.1.10 komutunu kullanacağız. Burada w2k8core server’ın adı, 192.168.1.10 ip’sidir (Resim 4).
Resim 5
DHCP Server’ın işlevini yerine getirmesi için en az bir Scope’a ihtiyacı vardır. Yeni bir scope oluşturmak için netsh dhcp server 192.168.1.10 add scope 192.168.1.0 255.255.255.0 Scope1 komutunu kullanıyoruz. Burada 192.168.1.0 /24 subnet’inden ip konfigürasyonu dağıtmasını ve scope ismi olarak da Scope1 kullanmasını sağlıyoruz (Resim 5).
Resim 6
Dağıtılacak ip konfigürasyonu için oluşturduğumuz scope için bir ip aralığı belirtmemiz gerekiyor. Tercihim 192.168.1.0 /24 Subnet’inin tamamını kullanmak. Bunun için kullanılacak komut da şöyle olacaktır: netsh dhcp server 192.168.1.10 scope 192.168.1.0 add iprange 192.168.1.1 192.168.1.254 (Resim 6).
Resim 7
Verdiğimiz ip aralığı, server’lar için kullanılan statik ip adreslerini de kapsıyorsa exclude range tanımlamamız gerekecektir. Bunun için netsh dhcp server 192.168.1.10 scope 192.168.1.0 add excluderange 192.168.1.1 192.168.1.10 komutunu çalıştırmamız gerekir. Böylelikle Subnet’in ilk 10 ip adresinin dağıtılmaması gerektiğini belirtmiş oluyoruz (Resim 7).
Resim 8 ve 9
Belirlediğimiz ip adres aralığı ile birlikte bir kaç adres daha belirtmemiz gerecektir. Bunlar DNS, WINS, Default Gateway vs. olabilir. Örneğin Default Gateway olan bir Router’a ait ip adresinin de dağıtılan ip configürasyonu içerisinde yer almasını istiyorsak netsh dhcp server 192.168.1.10 scope 192.168.1.0 set optionvalue 003 ipaddress 192.168.1.1 komutunu çalıştırmamız gerekecektir. Bu komut içinde bulunan option value 003 değeri Router’a karşılık gelmektedir (Resim 8). Bir başka değer olarak 006 girilirse DNS Server’ın ip adresi belirtilebilir (Resim 9). Bu değerlerle ilgili bilgileri IANA’nın resmi sitesinden öğrenebilme imkânımız bulunmaktadır. Bu bilgiye http://www.iana.org/assignments/bootp-dhcp-parameters/ adresinden ulaşabilmeniz mümkündür.
Resim 10
Scope ile ilgili temel konfigürasyonları tamamladıktan sonra belirlediğimiz ip adreslerinin client bilgisayarlara dağıltılabilmesi için scope’un aktif konuma getirilmesi gerekmektedir. Bunun için netsh dhcp server 192.168.1.10 scope 192.168.1.0 set state 1 komutunu çalıştırmak yeterlidir. Bu işlemden sonra DHCP Server’ımız görevine fiilen başlamış olacaktır (Resim 10)
Resim 11
DHCP Server’ın ve aktif hâle getirdiğimiz scope’un çalıştığını test etmenin en kolay yolu client bilgisayarın belirlediğimiz ip konfigürasyonunu alıp almadığından emin olmaktır. Bunun için client bilgisayarın ip adres konfigürasyonu otomatik (obtain) konumda olması yeterlidir. Tabi işleri hızlandırmak adına ipconfig /release ve ardından ipconfig /renew komutlarını da çalıştırmamız gerekebilir. Son olarak tüm ip konfigürasyonunu ayrıntıları ile görüntülemek için ipconfig /all komutunu kullanmak yeterli olacaktır. Scope’ta belirtilmiş (Exclude Range dışında kalan) ilk ip (192.168.1.11) client bilgisayara verilmiştir (Resim 11).
Resim 12
Client bilgisayarlara verilen ip konfigürasyonunu DHCP Server’ımızdan da görebiliriz. Bunun için netsh dhcp server 192.168.1.10 scope 192.168.1.0 show clients komutunu kullanmak yeterlidir (Resim 12)
Resim 13
Normal şartlarda bir ip konfigürasyonu 8 günlüğüne client bilgisayarlar için tahsis edilir. Bazı durumlarda bu kira süresini değiştirmek gerekli olabilir. Bunun için 192.168.1.10 scope 192.168.1.0 set optionvalue 51 DWORD “86400” komutunu çalıştırmamız yeterlidir. Burada 86400 sayısı saniye birimi olup 24 saate denk gelir. Dilediğiniz değeri saniye türünden yazabilirsiniz. Yaptığımız bu değişiklik ile ip konfigürasyonunu isteyen ilk client bilgisayar etkilenecektir (Resim 13).
Resim 14
Client tarafında ip konfigürasyonunu yenilediğimizde Resim 14’te görünen sonucu elde ederiz.
Resim 15
Ortamda bulunan client bilgisayarlardan bazılarının sürekli olarak aynı ip konfigürasyonuna sahip olmasını istiyorsak her client bilgisayar için bir rezervasyon yapmamız gerekecektir. Bunun için client bilgisayarın mac adresine ihtiyacımız olacaktır. DHCP server üzerinden client bilgisayarın mac adresini daha önce belirttiğim şekilde (bkz. Resim 12)öğrenebiliriz. Daha sonra dhcp server 192.168.1.10 scope 192.168.1.0 add reservedip 192.168.1.50 000C294E1449 XPCLNT komutu ile rezervasyon işlemini gerçekleştirebiliriz. Burada 192.168.1.50 ip adresi 000C294E1449 mac adresli client bilgisayara tahsis edilmek üzere kullanılmış, kayıt ismi olarak da XPCLNT verilmiştir (Resim 15).
Resim 16
Client bilgisayar taradında ip konfigürasyonunu yenilediğimizde rezerve ettiğimiz ip adresinin verilmiş olduğunu görüyoruz (Resim 16).
Resim 17
Bazı durumlarda ortamdaki client bilgisyarlara farklı ip konfigürasyonları dağıtmak gerekebilir. Örneğin Windows 2000 öncesi bilgisayarların WINS ihityacını karşılamak için sadece W2K öncesi bilgisayarlara özel class atamaları yapılabilir. Bununla birlikte farklı default Gateway veya DNS server adresi vermek de gerekebilir. Bu işlemi gerçekleştirebilmek için DHCP Server’da bir user veya vendor class oluşturup, bu class’a ait farklı opsiyonları tanımladıktan sonra client tarafında yaratmış olduğumuz class’ı belirlememiz gerekecektir.
Öncelikler Server tarafında bir user class oluşturup bu class’a ait bir opsiyon tanımlayalım. Netsh dhcp server 192.168.1.10 add class MyUserClass TestClass1 54657374636C61737331 0 komutu amacımıza ulaşmamızı sağlayacaktır. Burada MyUserClass Class’ın adını, TestClass1 ise Class String’ini göstermektedir. Belirlenen sayı ise binary datasını (ASCII-CE3U2), sondaki 0 (sıfır) değeri ise user class olduğunu göstermektedir. Binary Data, girilen ASCII değerine göre (TestClass1) değişiklik gösterecektir (Resim 17).
Resim 18
Belirlediğimiz User Class’ı Scope içerisinide farklı bir değerle kullanarak aktif hale getireceğiz. Örneğin WINS server’ın ip addresini bu class için kullanabiliriz. Bunun için; Netsh dhcp server 192.168.1.10 set optionvalue 044 ipaddress user=MyUserClass 10.4.0.10 komutunu çalıştırmamız yeterlidir. Burada 044 WINS/NetBIOS Name Server’ın opsiyon değeri, 10.4.0.10 ise ip adresini göstermektedir. Normal option value girişinden farklı olarak user parametresi ile oluşturmuş olduğumuz class adını tanımladık (Resim 18).
Resim 19
Sıra geldi Client bilgisayar taradında user class string değerini tanımlamaya. Bunun için ipconfig /setclassid “Local Area Connection” TestClass1 komutunu çalıştırmamız yeterli olacaktır (Resim 19). Bu işlemi her client bilgisayar için manuel olarak tanımlayabileceğimiz gibi domain ortamında bir batch script’i Group Policy ile startup script olarak da tanımlayabiliriz. Tercih size kalmış…
Resim 20
Artık Client bilgisayardan testimizi yapabiliriz. Ip konfigürasyonu yenilemek test için yeterli olacaktır. Son olarak ip konfigürasyonunun tamamını listelediğimzde Resim 20’deki gibi bir sonuç elde ederiz.
Resim 21
Şimdi ki uygulamamızda DHCP Server’ımza bir adet de ipv6 scope oluşturacağız. Bu uygulama için gerekli komut ve parametreleri v4 ile hemen hemen aynıdır. Sadece farklı olan şey versiyon 6 ip adresi… Sonrasında netsh dhcp server fec0::10 v6 add scope fec0:: ScopeV6 Version6Scope 1 komutu ile v6 scope’unu oluşturmuş olacağız. Burada fec0::10 DHCP Server’ın ipv6 adresi, fec0:: scope adresi, ScopeV6 scope adı ve Version6Scope ise açıklama olarak girilmiştir. Sondaki 1 sayısı da tercih numarasıdır. (Resim 21). Ipv6 scope için bir ip aralığı (iprange) belirtmemize gerek yoktur. Zira DHCPv6 zaten buna müsaade etmemektedir. Fakat bir istisna aralığı (exclusion range) oluşturabilirsiniz.
Resim 22
Oluşturduğumuz scope için bir optionvalue tanımlamak için netsh dhcp server fec0::10 v6 scope fec0:: set optionvalue 00023 ipv6address fec::10 komutunu girmek yeterlidir. Burada 00023 değeri DNS server opsiyon değeri, fec0::10 ise ipv6 adresidir (Resim 22).
Diğer konfigürasyonlar da ipv4 için yaptığımız komutlar ile benzer olduğundan tekrar yazma gereği duymuyorum. Sanıyorum ki siz de çok rahat bir şekilde DHCPv6 işlemlerini gerçekleştirebilirsiniz.
Resim 23
Ipv6 konfigürasyonundan sonra client bilgisayarlarda stateless mode’un pasif hâle getirilmesi gerekir ki ipv6 konfigürasyonunu DHCP Server’dan alabilsin. Aksi halinde sadece DNS Server adresini ve kendi ürettiği Link-Local (fe80 ile başlayan ip’ler) ip adresini alacaktır. İşlemi tamamlamak için netsh interface ipv6 interface “Local Area Connection” advertise=enable managed=enable komutunu girmemiz yeterli olacaktır (Resim 23)
Resim 24
Client tarafında yaptığımız konfigürasyondan sonra ipv6 konfigürasyonlarını alıp almadığını test etmek amacı ile meşhur komutumuz ipconfig /release6 ve sonrasında ipconfig /renew6 sayesinde Resim 24’teki çıktıyı alıyor olacağız. Sonuç başarılı…
Resim 25
Son olarak DHCP Server’da yaptığımız tüm işlemlerin yedeğini alacağız. Bunun için C: bölümünde bir klasör oluşturmak ve netsh dhcp server 192.168.1.10 backup “C:BackupFilesDHCP” komutunu girmek yeterlidir. Yedekten geri dönmek için backup parametresi yerine restore yazmak yeterli olacaktır (Resim 25).
Görüldüğü üzere grafik arayüz olmadan da DHCP server konfigürasyonu rahatlıkla yapılabilmektedir. Bir çok işlem için bir başka bilgisayarın aracı olmasına gerek kalmadan server yönetimini gerçekleştirebilmemiz mümkündür.
Bir başka makalede görüşmek dileği ile….
Seymen URAL
Kaynak: Microsoft Technet