barisnetblog.space — Windows Server'da DHCP Kurulumu, Kapsamlar ve DHCP Failover
Windows Server 21 Ekim 2026 5 dk okuma 5 görüntülenme

Windows Server'da DHCP Kurulumu, Kapsamlar ve DHCP Failover

firma.local domain'ine DHCP rolünü ekliyoruz. AD yetkilendirmesi, kapsam ve seçenekler, dışlama ve rezervasyonlar, DNS güncellemeleri ve iki sunucu arasında DHCP failover bu rehberde.

Önceki yazıda firma.local domain'inde OU yapısını kurup ilk GPO'larımızı oluşturmuştuk. Bilgisayarları merkezden yönetebiliyoruz, ancak her istemciye elle IP adresi vermek sürdürülebilir değil. Bu yazıda DC01 üzerine DHCP rolünü kuracak, Active Directory'de yetkilendirecek, kapsamları ve seçenekleri tanımlayacak ve son olarak DC02 ile yüksek erişilebilirlik için DHCP failover yapılandıracağız.

Laboratuvar Ortamı

Seri boyunca şu adres planını kullanacağız:

  • DC01: 192.168.1.10, ilk domain controller, DNS ve DHCP
  • DC02: 192.168.1.11, ikinci DHCP sunucusu (bir sonraki yazıda domain controller'a yükselteceğiz)
  • FS01: 192.168.1.20, dosya sunucusu
  • Ağ geçidi: 192.168.1.1
  • İstemci aralığı: 192.168.1.100 - 192.168.1.200

DHCP sunucusunun kendisi mutlaka statik IP kullanmalıdır. Failover partneri olacak sunucunun domain controller olması gerekmez, domain üyesi olması yeterlidir.

DHCP Rolünü Kurmak

DC01 üzerinde yönetici PowerShell açın ve rolü yönetim araçlarıyla birlikte kurun:

PowerShell
Install-WindowsFeature -Name DHCP -IncludeManagementTools

Kurulumdan sonra DHCP hizmetinin kullandığı yerel güvenlik gruplarını (DHCP Administrators ve DHCP Users) oluşturun ve hizmeti yeniden başlatın:

Komut İstemi
netsh dhcp add securitygroups
PowerShell
Restart-Service -Name DHCPServer

Active Directory'de Yetkilendirme

Domain ortamında bir Windows DHCP sunucusu, AD'de yetkilendirilmeden adres dağıtmaz. Bu özellik, ağa birinin kurduğu "sahte" (rogue) bir Windows DHCP sunucusunun istemcilere yanlış adres vermesini engeller. Yetkilendirme için Enterprise Admins üyesi olmanız gerekir:

PowerShell
Add-DhcpServerInDC -DnsName "dc01.firma.local" -IPAddress 192.168.1.10
Get-DhcpServerInDC

Server Manager, kurulum sonrası yapılandırmanın tamamlanmadığını gösteren sarı uyarıyı göstermeye devam ediyorsa şu kayıt değerini güncelleyin:

PowerShell
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\ServerManager\Roles\12" -Name "ConfigurationState" -Value 2

Kapsam (Scope) Oluşturmak

Kapsam, DHCP sunucusunun bir alt ağda dağıtacağı adres havuzudur. 192.168.1.0/24 ağı için 8 günlük kira süresine sahip bir kapsam oluşturalım:

PowerShell
Add-DhcpServerv4Scope -Name "LAN-Merkez" -StartRange 192.168.1.100 -EndRange 192.168.1.200 `
    -SubnetMask 255.255.255.0 -LeaseDuration 8.00:00:00 -State Active

Oluşan kapsamın kimliği (ScopeId) ağ adresidir, yani 192.168.1.0. Sonraki tüm komutlarda bu değeri kullanacağız.

Kapsam Seçenekleri

İstemcilerin yalnızca IP adresine değil, ağ geçidi, DNS sunucusu ve DNS soneki bilgisine de ihtiyacı vardır:

PowerShell
Set-DhcpServerv4OptionValue -ScopeId 192.168.1.0 -Router 192.168.1.1 `
    -DnsServer 192.168.1.10 -DnsDomain "firma.local"

Seçenekleri sunucu seviyesinde de tanımlayabilirsiniz; kapsam seviyesi her zaman sunucu seviyesini ezer. Birden fazla kapsamınız varsa DNS gibi ortak değerleri sunucu seviyesinde, ağ geçidini ise kapsam seviyesinde tutmak yönetimi kolaylaştırır. İkinci DC hazır olduğunda -DnsServer 192.168.1.10, 192.168.1.11 olarak güncelleyeceğiz.

Dışlama ve Rezervasyon

Kapsam içindeki bazı adresleri statik cihazlar için ayırmak istiyorsanız dışlama (exclusion) tanımlayın:

PowerShell
Add-DhcpServerv4ExclusionRange -ScopeId 192.168.1.0 -StartRange 192.168.1.100 -EndRange 192.168.1.109

Yazıcı gibi her zaman aynı adresi alması gereken cihazlar için ise MAC adresine göre rezervasyon yapın:

PowerShell
Add-DhcpServerv4Reservation -ScopeId 192.168.1.0 -IPAddress 192.168.1.150 `
    -ClientId "00-15-5D-01-02-03" -Name "YAZICI01" -Description "Muhasebe yazicisi"

Rezervasyonun avantajı, cihazın IP ayarlarının yine merkezden yönetilmesidir. Ağ geçidi veya DNS değiştiğinde cihazlara tek tek gitmeniz gerekmez.

DNS Dinamik Güncelleme Ayarları

DHCP sunucusu, istemciler adına DNS kayıtlarını oluşturup kira süresi bittiğinde silebilir. Bu, DNS'te eski kayıtların birikmesini önler:

PowerShell
Set-DhcpServerv4DnsSetting -ComputerName "dc01.firma.local" -DynamicUpdates "Always" `
    -DeleteDnsRRonLeaseExpiry $true

DHCP bir domain controller üzerinde çalışıyorsa, DNS kayıtlarını DC'nin bilgisayar hesabı yerine ayrı bir kullanıcı hesabıyla kaydetmesi önerilir. Bunun için yetkisiz, standart bir domain kullanıcısı oluşturup tanımlayın:

PowerShell
$kimlik = Get-Credential -Message "DHCP DNS kayit hesabi" -UserName "FIRMA\svc-dhcpdns"
Set-DhcpServerDnsCredential -Credential $kimlik -ComputerName "dc01.firma.local"

DHCP Failover Yapılandırmak

Tek bir DHCP sunucusu, kapandığında yeni bağlanan hiçbir cihazın adres alamaması demektir. Windows Server'ın DHCP failover özelliği, iki sunucunun aynı kapsamı ve kira bilgilerini paylaşmasını sağlar. İki mod vardır:

  • Load Balance: İki sunucu da istemcilere aktif olarak hizmet verir, yük varsayılan olarak %50-%50 paylaşılır. Aynı lokasyondaki sunucular için idealdir.
  • Hot Standby: Bir sunucu aktif, diğeri yedektir. Yedek sunucu adres havuzunun küçük bir bölümünü (varsayılan %5) ayırır. Şube senaryoları için uygundur.

Önce DC02 üzerinde rolü kurun. Failover partnerini ayrıca yetkilendirmeyi unutmayın:

PowerShell
Install-WindowsFeature -Name DHCP -IncludeManagementTools -ComputerName "dc02.firma.local"
Add-DhcpServerInDC -DnsName "dc02.firma.local" -IPAddress 192.168.1.11

DC01'de yaptığımız gibi DC02'de de DHCP güvenlik gruplarını oluşturup hizmeti yeniden başlatın:

PowerShell
Invoke-Command -ComputerName "dc02.firma.local" -ScriptBlock {
    netsh dhcp add securitygroups
    Restart-Service -Name DHCPServer
}

Ardından DC01 üzerinde Load Balance modunda failover ilişkisini oluşturun. Kapsam, seçenekleri ve rezervasyonlarıyla birlikte DC02'ye otomatik olarak kopyalanır:

PowerShell
Add-DhcpServerv4Failover -ComputerName "dc01.firma.local" -PartnerServer "dc02.firma.local" `
    -Name "DC01-DC02-Failover" -ScopeId 192.168.1.0 -LoadBalancePercent 50 `
    -MaxClientLeadTime 01:00:00 -AutoStateTransition $true -StateSwitchInterval 01:00:00 `
    -SharedSecret "Guclu-Bir-Paylasilan-Anahtar"

Hot Standby tercih ediyorsanız -LoadBalancePercent yerine -ServerRole Active -ReservePercent 5 parametrelerini kullanın. MaxClientLeadTime (MCLT), partner erişilemez olduğunda bir sunucunun kirayı ne kadar süre uzatabileceğini belirler.

İlişkinin durumunu kontrol edin:

PowerShell
Get-DhcpServerv4Failover -ComputerName "dc01.firma.local" |
    Select-Object Name, PartnerServer, Mode, State, LoadBalancePercent

Her iki sunucuda da State değeri Normal olmalıdır. Failover yalnızca kira bilgilerini senkronize eder; kapsam seçeneklerinde veya rezervasyonlarda yaptığınız sonraki değişiklikleri partnere elle aktarmanız gerekir:

PowerShell
Invoke-DhcpServerv4FailoverReplication -ComputerName "dc01.firma.local" -Name "DC01-DC02-Failover" -Force

İstemci Tarafında Test

PC01 üzerinde mevcut kirayı bırakıp yeni adres isteyin:

Komut İstemi
ipconfig /release
ipconfig /renew
ipconfig /all

ipconfig /all çıktısında DHCP Server, DNS Servers ve Lease Obtained alanlarını kontrol edin. Sunucu tarafında dağıtılan kiraları listelemek için:

PowerShell
Get-DhcpServerv4Lease -ScopeId 192.168.1.0 | Select-Object IPAddress, HostName, ClientId, AddressState
Get-DhcpServerv4ScopeStatistics -ScopeId 192.168.1.0

DHCP Yapılandırmasını Yedeklemek

DHCP veritabanı varsayılan olarak her 60 dakikada bir C:\Windows\System32\dhcp\backup klasörüne otomatik yedeklenir. Yine de sunucuyu yeniden kurmanız veya rolü başka bir sunucuya taşımanız gerektiğinde, kapsamları, seçenekleri, rezervasyonları ve kiraları tek bir dosyaya dışa aktarmak çok daha pratiktir:

PowerShell
Export-DhcpServer -ComputerName "dc01.firma.local" -File "D:\Yedek\dhcp-dc01.xml" -Leases -Force
Backup-DhcpServer -ComputerName "dc01.firma.local" -Path "D:\Yedek\DHCP"

Yeni bir sunucuya geri almak için Import-DhcpServer komutunu kullanabilirsiniz. Ayrıca DHCP sunucusu C:\Windows\System32\dhcp altında haftanın her günü için DhcpSrvLog-Mon.log, DhcpSrvLog-Tue.log gibi denetim günlükleri tutar. Bu dosyalar bir hafta sonra üzerine yazılır, uzun süre saklamak istiyorsanız başka bir yere kopyalayın. "Bu cihaz hangi saatte hangi IP'yi aldı?" sorusunun cevabı bu dosyalardadır; güvenlik olaylarını incelerken çok işinize yarar.

Kapsam doluluk oranını düzenli takip edin. Adreslerin %90'ından fazlası kullanılıyorsa kira süresini kısaltmayı veya kapsamı genişletmeyi düşünün. Misafir ağı gibi cihazların sık değiştiği ağlarda 8 gün yerine 1 günlük kira süresi daha uygundur.

Sık Karşılaşılan Hatalar

  • Sunucunun adres dağıtmaması: Büyük olasılıkla AD'de yetkilendirilmemiştir. Get-DhcpServerInDC ile kontrol edin ve System olay günlüğünde DHCP-Server kaynaklı, sunucunun yetkilendirilmediğini bildiren olayları arayın.
  • Failover durumunun `CommunicationInterrupted` kalması: İki sunucu arasında TCP 647 portunun açık olduğunu ve saatlerin bir dakikadan fazla farklı olmadığını kontrol edin.
  • Rezervasyonun partnerde çalışmaması: Failover ilişkisi kurulduktan sonra eklenen rezervasyonlar otomatik kopyalanmaz. Invoke-DhcpServerv4FailoverReplication çalıştırın.
  • İstemcilerin internete çıkamaması: Option 003 (Router) kapsamda tanımlı olmayabilir. Kapsam ve sunucu seçeneklerini birlikte kontrol edin.
  • DNS'te eski kayıtların birikmesi: DeleteDnsRRonLeaseExpiry ayarını açın ve DNS tarafında scavenging yapılandırın.
  • Farklı VLAN'daki istemcilerin adres alamaması: Router veya L3 switch üzerinde DHCP relay (ip helper-address) tanımlı değildir.

Bir sonraki yazıda DC02'yi ikinci domain controller'a yükseltecek ve replikasyonu repadmin ile dcdiag kullanarak doğrulayacağız.

Okuma görünümü 5 görüntülenme