Windows server 2008 Core Üzerinde Dhcp Servisinin Kurulumu

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.

image001

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)

image002

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).

image003

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.

 

image004

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).

 

image005

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).

 

image006

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).

 

image007

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).

 

image008

image009

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 https://www.iana.org/assignments/bootp-dhcp-parameters/ adresinden ulaşabilmeniz mümkündür.

 

image010

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)

 

image011

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).

image012

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)

 

image013

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).

 

image014

Resim 14

Client tarafında ip konfigürasyonunu yenilediğimizde Resim 14’te görünen sonucu elde ederiz.

 

image015

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).

 

image016

Resim 16

Client bilgisayar taradında ip konfigürasyonunu yenilediğimizde rezerve ettiğimiz ip adresinin verilmiş olduğunu görüyoruz (Resim 16).

 

image017

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).

 

image018

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).

 

image019

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ış…

 

image020

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.

 

image021

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.

 

image022

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.

 

image023

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)

 

image024

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ı…

 

image025

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:\BackupFiles\DHCP” 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