ERETEK
BİLGİ SİSTEMLERİ

Windows Server DHCP Failover: Hot Standby ve Load Balance Seçimi

Windows Server DHCP failover: load balance ve hot standby seçimi, MCLT ve partner down, PowerShell kurulumu, şube senaryoları, relay ve unutulan replikasyon.

Bu makalede8 bölüm
Teknik özet
Teknoloji
Windows Server DHCP, DHCP failover, MCLT, DHCP relay, PowerShell DhcpServer modülü
Konu
DHCP hizmetinin iki sunucuyla yedekli çalıştırılması
Seviye
Orta
Ön koşullar
  • Windows Server DHCP rolü yönetimi
  • VLAN ve DHCP relay temel bilgisi
  • İki sunucunun AD’de yetkilendirilmiş olması

DHCP sunucusu durduğunda ilk saat kimse fark etmez; istemciler kira süresi dolana kadar çalışır. Sonra yeni bağlanan cihazlar adres alamaz, kirası yenilenemeyen istemciler birer birer düşer ve arıza kayıtları saatler içinde birikir. Windows Server DHCP failover, iki sunucunun kira bilgisini paylaşmasıyla bu tek arıza noktasını kaldırır. Aşağıda iki modu, MCLT ve durum geçişlerini, PowerShell ile kurulumu, şubelerde mod seçimini ve işletimde en sık atlanan replikasyon adımını anlatıyoruz.

DHCP yedekliliği seçenekleri

Windows ortamında DHCP’yi yedekli yapmanın üç yolu var:

Yöntem Kira bilgisi paylaşımı Altyapı ihtiyacı Not
Split-scope Yok İki bağımsız sunucu Havuz bölünür, tipik oran 80/20
DHCP failover Var İki sunucu, TCP 647 Windows Server 2012 ve sonrası, yalnız IPv4
Failover Cluster üzerinde DHCP Paylaşımlı disk Küme ve paylaşımlı depolama Tek veritabanı, daha karmaşık

Split-scope basittir ama sunuculardan biri durduğunda diğeri yalnızca kendi payındaki adresleri dağıtabilir. Diğer sunucunun verdiği kiraları tanımadığı için onları yenileyemez; kirası dolan istemci yeni adres almak zorunda kalır. Küme tabanlı DHCP ise paylaşımlı depolamayı tek arıza noktası olarak bırakır ve yalnız DHCP için küme kurmak çoğu ortamda orantısız bir yüktür. Failover, ek sunucu ve sistem altyapısı gerektirmeden kira veritabanını iki sunucuda eşzamanlı tutar. Çoğu ortamda varsayılan tercih budur.

Failover modları: load balance ve hot standby

Load balance modunda iki sunucu da istemcilere aktif hizmet verir. Hangi istemciye hangi sunucunun yanıt vereceğini, istemci kimliğinin (MAC adresi) özetine dayanan bir algoritma belirler (RFC 3074). Varsayılan dağılım yüzde 50’dir, istenirse değiştirilir. İki sunucu da aynı ağdaki istekleri alır; normal durumda yalnızca sorumlu olduğu istemcilere yanıt verir.

Hot standby modunda bir sunucu aktif, diğeri beklemededir. Bekleyen sunucu normalde istemcilere yanıt vermez; havuzun bir kısmı (varsayılan yüzde 5) ona ayrılır ve aktif sunucuyla iletişim kesildiğinde yeni istemcilere bu yedek havuzdan adres verir.

Özellik Load balance Hot standby
Normal durumda yanıt İki sunucu da Yalnızca aktif sunucu
Havuz paylaşımı Oranla (vars. 50/50) Yedek yüzdesi (vars. 5)
Uygun senaryo İki sunucu aynı lokasyonda Merkezde yedek, şubede aktif
WAN bağımlılığı Ortak uzaktaysa istemcilerin bir kısmı WAN üzerinden hizmet alır Aktif sunucu yerelse yok

MCLT ve durum geçişleri

Maximum Client Lead Time (MCLT), bir sunucunun bir kirayı ortağının bildiğinden ne kadar ileri uzatabileceğinin üst sınırıdır; varsayılanı 1 saattir. İki sunucu birbirinden haber alamadığında aynı adresin iki istemciye verilmesini bu sınır önler. Sahada şaşırtan bir yan etkisi var: failover’daki sunucu yeni istemciye ilk kirayı MCLT süresiyle verir. Ortak güncellendikten sonraki yenilemede kapsamın tam kira süresi uygulanır. Yani “kira süresi neden bir saat görünüyor” sorusunun cevabı genellikle hata değil, MCLT’dir.

İlişkinin temel durumları:

  • Normal: Sunucular iletişimdedir ve kira güncellemelerini birbirine bildirir.
  • Communication Interrupted: Ortağa ulaşılamıyor. Sunucu mevcut kiraları yenileyebilir; yeni istemcilere yalnızca kendi payındaki (hot standby’da bekleyen sunucu için yedek havuzdaki) adresleri verir. Ortağın gerçekten mi durduğunu, yoksa yalnız bağlantının mı koptuğunu ayırt edemez.
  • Partner Down: Ortağın gerçekten devre dışı olduğu kabul edilir. Bu duruma geçildikten sonra MCLT süresi dolunca sunucu tüm havuzun kontrolünü alır.
  • Recover / Recover Wait / Recover Done: Ortak geri döndüğünde kira veritabanları yeniden eşitlenir, ilişki Normal’e döner.

Communication Interrupted’dan Partner Down’a geçiş varsayılan olarak yönetici müdahalesi ister. State switchover interval (PowerShell’de -AutoStateTransition ve -StateSwitchInterval) etkinleştirilirse geçiş belirlenen süre sonunda otomatik yapılır. Otomatik geçişin bir riski var: ağ bölünmesinde (iki sunucu çalışırken aradaki bağlantı kopar) iki sunucu da Partner Down’a geçebilir. Aralığı, ağ kesintilerinin tipik süresinden uzun seçin. İki sunucu da patron olursa adres çakışır.

Kurulum adımları ve PowerShell

Önkoşullar: iki sunucuda DHCP rolü kurulu ve AD’de yetkilendirilmiş olmalı, aralarında TCP 647 açık olmalı, saatleri eşit olmalı. Microsoft belgelerine göre iki sunucu arasındaki saat farkı bir dakikayı aşarsa failover yapılandırması hata verir; ikisinin de etki alanı zaman hiyerarşisinden eşitlendiğini doğrulayın. Kapsamlar yalnızca birincil sunucuda bulunmalı; ilişki kurulurken ortağa kopyalanır. Aşağıdaki örnekteki sunucu adlarını, kapsamları ve süreleri ortamınıza göre uyarlayın.

# Load balance: aynı lokasyondaki iki sunucu
Add-DhcpServerv4Failover -ComputerName dhcp01.contoso.local -Name "DHCP01-DHCP02" `
  -PartnerServer dhcp02.contoso.local -ScopeId 10.10.10.0, 10.10.20.0 `
  -LoadBalancePercent 50 -MaxClientLeadTime 01:00:00 `
  -AutoStateTransition $true -StateSwitchInterval 02:00:00 `
  -SharedSecret "Uzun-ve-rastgele-bir-paylasilan-anahtar"

# Hot standby: şube sunucusu aktif, merkez sunucusu yedek
Add-DhcpServerv4Failover -ComputerName dhcp-izmir.contoso.local -Name "IZMIR-MERKEZ" `
  -PartnerServer dhcp01.contoso.local -ScopeId 10.30.10.0 `
  -ServerRole Active -ReservePercent 5 -MaxClientLeadTime 01:00:00 `
  -SharedSecret "Baska-bir-paylasilan-anahtar"

# Mevcut ilişkiye yeni kapsam eklemek
Add-DhcpServerv4FailoverScope -ComputerName dhcp01.contoso.local -Name "DHCP01-DHCP02" -ScopeId 10.10.30.0

# Durum kontrolü
Get-DhcpServerv4Failover -ComputerName dhcp01.contoso.local |
  Select-Object Name, PartnerServer, Mode, State, LoadBalancePercent, ReservePercent, MaxClientLeadTime

Parametrelerin tamamı Add-DhcpServerv4Failover belgesinde. Paylaşılan anahtar (shared secret) failover iletilerinin doğrulanmasında kullanılır; her ilişki için ayrı ve güçlü bir değer seçip parola kasasında saklayın. Kurulumdan sonra DNS dinamik güncelleme kimlik bilgilerini iki sunucuda aynı hesapla tanımlayın; aksi halde bir sunucunun oluşturduğu kaydı diğeri güncelleyemez. Ayrıntı Active Directory DNS yapılandırması yazısında.

Şube senaryolarında mod seçimi

Belirleyici soru tek: WAN bağlantısı koptuğunda şubedeki istemciler adresi hangi sunucudan alacak?

Senaryo Önerilen yapı Gerekçe
Tek lokasyon, iki sunucu Load balance Yük paylaşılır, iki sunucu eşit
Şubede yerel sunucu var Hot standby; şube aktif, merkez yedek WAN kesintisinde hizmet yerelde sürer
Şubede sunucu yok Merkezde iki sunucu, load balance Relay ile iki sunucuya da ulaşılır
Çok sayıda şube Her şube için ayrı hot standby ilişkisi, tek merkez yedek Merkez sunucu birden çok ilişkide yedek olabilir

Şubede sunucu yoksa WAN koptuğunda DHCP zaten erişilemez olur. Bu durumda yedeklilik ancak şubedeki ağ cihazında küçük bir yedek havuzla ya da kısa kesintileri tolere edecek kadar uzun kira süreleriyle sağlanır. Bu bir mimari karardır; kesinti toleransına göre verilir.

Her durumda istemci VLAN’larındaki relay tanımı iki sunucuyu da içermeli. Sahada en sık gördüğümüz failover arızası budur: failover ilişkisi Normal görünür ama switch yalnız birine relay yapar. Cisco IOS’ta VLAN arayüzünde iki ip helper-address satırı bulunur:

interface Vlan10
 ip address 10.10.10.1 255.255.255.0
 ip helper-address 10.10.0.21
 ip helper-address 10.10.0.22

DHCP snooping kullanılan ağlarda iki sunucuya giden yolun trusted işaretlendiğini de kontrol edin. Ağ tarafının ayrıntısı için DHCP relay ve DHCP snooping yapılandırması yazısına bakın.

Kapsam değişikliklerinin replikasyonu

Failover kira bilgisini sürekli eşitler, ama yapılandırma değişikliklerini otomatik eşitlemez. Bir sunucuda rezervasyon eklemek, seçenek değeri değiştirmek veya dışlama aralığı tanımlamak ortağa yansımaz. İşletimdeki en yaygın hata: rezervasyon yalnızca bir sunucuda vardır, istemci diğer sunucudan farklı adres alır ve yazıcı ya da kamera bir sabah “kaybolur”.

# Tüm ilişkiyi replike etmek
Invoke-DhcpServerv4FailoverReplication -ComputerName dhcp01.contoso.local -Name "DHCP01-DHCP02" -Force

# Yalnızca belirli bir kapsamı replike etmek
Invoke-DhcpServerv4FailoverReplication -ComputerName dhcp01.contoso.local -ScopeId 10.10.20.0 -Force

Replikasyon komutu, çalıştırıldığı sunucudaki yapılandırmayı ortağın üzerine yazar. Değişiklikleri hep aynı sunucuda yapın. Kapsam düzeyindeki seçenekler, rezervasyonlar, dışlamalar ve kapsam ilkeleri replike edilir; sunucu düzeyindeki seçenekler, MAC filtreleri ve sunucu düzeyindeki ayarlar ise iki sunucuda ayrı ayrı yapılandırılır.

İzleme ve sorun giderme

Failover ilişkisi sessizce Communication Interrupted’da kalabilir ve kimse fark etmeden günlerce tek sunucuyla çalışılır. Yedeklilik o günlerde yoktur. İzleme şunları kapsamalı:

  • İlişki durumu Normal değilse alarm üretin (Get-DhcpServerv4Failover çıktısındaki State alanı).
  • Kapsam doluluğunu iki sunucuda da izleyin: Get-DhcpServerv4ScopeStatistics -ComputerName dhcp01.contoso.local. Ortaklardan biri devre dışıyken çalışan sunucu Partner Down’a geçene kadar yalnızca kendi payını dağıtabilir; doluluğu yüksek kapsamlarda yeterli boş adres bırakın.
  • Olay günlüğünde DHCP Server kaynaklı uyarıları toplayın: Get-WinEvent -ProviderName "Microsoft-Windows-DHCP-Server" -MaxEvents 50.
  • Kira geçmişi için %windir%\System32\dhcp altındaki denetim günlükleri (DhcpSrvLog-*.log) kullanılabilir.

Bir sunucu planlı olarak uzun süre kapatılacaksa (donanım değişimi, yeniden kurulum), çalışan sunucuyu elle Partner Down’a almak tüm havuzun kullanılmasını sağlar: Set-DhcpServerv4Failover -ComputerName dhcp01.contoso.local -Name "DHCP01-DHCP02" -PartnerDown. Sunucu kalıcı olarak kaldırılacaksa önce ilişkiyi Remove-DhcpServerv4Failover ile silin; kapsamlar komutu çalıştırdığınız sunucuda kalır.

DHCP bir DC üzerinde çalışıyorsa DC değişimi, failover’a geçmek için doğal bir fırsattır; süreç domain controller değişimi ve FSMO taşıma yazısında. İlişki durumunu ve kapsam doluluğunu düzenli izlemek isteyen ekipler bu kontrolleri teknik destek ve periyodik bakım kapsamına alabilir; genel altyapı işletimi için sunucu ve bulut yönetimi sayfasına bakın.

Sık sorulan sorular

DHCP failover IPv6 kapsamlarını da kapsar mı?

Hayır. Windows Server DHCP failover yalnızca IPv4 kapsamlarını destekler. DHCPv6’da yedeklilik genellikle iki sunucuda aynı önekten farklı aralıklar dağıtarak veya durum bilgisiz (stateless) yapılandırmayla sağlanır.

Bir sunucu kapandığında diğeri hemen tüm adres havuzunu kullanır mı?

Hayır. Sunucu önce Communication Interrupted durumuna geçer ve yalnızca kendi payındaki adresleri dağıtır. Partner Down durumuna geçildikten sonra MCLT süresi dolunca tüm havuzu kullanmaya başlar.

Failover’daki iki sunucu farklı Windows Server sürümlerinde olabilir mi?

Failover Windows Server 2012 ve sonraki sürümler arasında kurulabilir. Yine de iki ortağı aynı sürüm ve güncelleme düzeyinde tutmak davranış farklarını ve sorun giderme yükünü azaltır.

Rezervasyon eklediğimde diğer sunucuya otomatik geçer mi?

Hayır. Rezervasyon, seçenek ve dışlama değişiklikleri otomatik çoğaltılmaz. Değişikliği yaptığınız sunucuda ilişkiyi veya kapsamı replike etmeniz gerekir.

Teknik özet
Teknoloji
Windows Server DHCP, DHCP failover, MCLT, DHCP relay, PowerShell DhcpServer modülü
Konu
DHCP hizmetinin iki sunucuyla yedekli çalıştırılması
Seviye
Orta
Ön koşullar
  • Windows Server DHCP rolü yönetimi
  • VLAN ve DHCP relay temel bilgisi
  • İki sunucunun AD’de yetkilendirilmiş olması
Eretek uzman desteği

Bu konuyu kendi altyapınızda birlikte ele alalım.

Mevcut yapınızı inceliyor, riskleri ve uygulanabilir adımları yazılı bir planla öneriyoruz.