What is DNS Aging and Scavenging?

Bu eğitimde, Windows DNS Sunucularında DNS eskimesini ve temizlemeyi ayarlamaya yönelik adım adım talimatları göstereceğim. Ancak bu işleme başlamadan önce bunun neden çok önemli olduğunu anlamamız gerekir. DNS üzerinde bir çok kayıt türü (A, CNAME, MX, PTR) mevcuttur. DNS üzerindeki elle açtığınız kayıtlar statik olarak adlandırılır ve siz silmediğiniz sürece kalıcı olarak silinmez. Dinamik kayıtlar ise sistem kendisi oluşturabilmektedir. Bunun sebebi Active Directory Integrated DNS üzerindeki zone ayarlarında Dynamic Updates aktif olduğu için gerçekleşir.
Active Directory üzerinde kurulu DNS var ise buna Active Directory Integrated DNS denilmektedir.

Aşağıdaki durumlarda Dynamic Updates devreye girer ve otomatik olarak A kaydı açılır veya güncellenir.
- Bilgisayar açılırken
- Bilgisayar Domaine Join edilirken
- Cihaz IP değiştirdiğinde
- IP yenileme işlemleri (renew & release)
Ancak burada anlatılmak istenilen, bu A kayıtların neden oluştuğu, nelere sebep olacağı ve nasıl silinebileceğidir. DNS üzerinde kayıtların güncelliği son derece önemlidir. Çok az değişikliğin olduğu veya hiç değişikliğin olmadığı küçük ortamlarda bu muhtemelen bu fark edilemez ve büyük bir sorun çıkmaz. Ancak büyük yapılarda eski DNS kayıtları temizlenmezse DNS büyük bir karmaşaya dönüşebilir ve Active Directory üzerinde çözümleme sorunlarına yol açabilir.
Normal şartlarda bir bilgisayar nasıl Domaine dahil ediliyor ise, aynı şekilde domainden çıkarılması gerekir. Ancak çoğu teknik personel bunu bilmez veya umursamadığı için direk imaj veya format atar. Bu yüzden sorunlar en çok client bilgisayarlarda görülmektedir. Sunucu sistemlerinin kurulum genelde belli prosedürlere uygun yapıldığı için bu sorunlar gözükmemektedir. Sonuç olarak bir cihaz artık kullanılmayacak ise öncelikle workgroup alınması gerekmektedir.
Workgroup'a alınma işlemi gerçekleşmediği için, eski makine adı dns üzerinde kayıtlı iken yeni bir makineyi ama aynı isimle ortama dahil edilir ve belanın kapısı çalınmış olur. Artık yeni makine eski dns kaydının sahibi değildir, bu nedenle bu kaydı güncelleyemez. Günün sonunda dns üzerinde bu makine için bir kayıt vardır. Ancak ip adresi ile makine aynı kişi değildir.
Sorunun nasıl oluştuğundan bahsettik. Bu sorun bize dönüşü nasıl olacaktır diye sorarsanız, merkezi yönetiminiz yani GPO, SCCM vb. hiç bir şey düzgün ve stabil çalışmayacaktır. Varsayılan olarak DNS sunucusu bu kayıtları silmez. Bu bilgilerden sonra artık temizleme aşamasına geçebiliriz. Bu işleme, DNS Aging and Scavenging denilmektedir. Dinamik olarak kayıtlı eski DNS kayıtlarının temizlenmesini otomatikleştirecek bir Windows DNS Sunucusu özelliğidir. Bu işlem için en önemli şey zamandır. Temizleme işlemi zaman damgaları(timestamp) üzerinde çalışır. Mantık olarak şu tarihten öncesine kadar güncelleme almayan kayıtları sil demiş oluyoruz. Timestamp değeri, bu kayıtın en son güncellendiği tarihi göstermektedir. Dns sunucu üzerinde veya herhangi bir kayıta tıklayarak görebilirsiniz. Kayıtlara tıklayarak timestamp değerini görmek için, View kısmından Advanced seçeneğini işaretlemeniz gerekmektedir.

Artık Aging ve Scavenging işlemlerine geçebiliriz. Eğer eski kayıtları DNS üzerinden silinmesini istiyorsanız bu ayarları açmak zorundasınız. Bu ayar DNS üzerindeki belirli bir zone veya tüm zone’lar için aktif edilebilir. İlgili zone üzerinde Properties seçeneğine tıklayın ve Aging butonuna basın.
Bu işlemi yalnızca birincil DNS sunucusunda ayarlayın. Sunucular kendi arasında Replikasyon olduğu için Scavenging işlemini tüm DNS sunucularınızda yapmanıza gerek kalmaz.

Açılan pencerede ilgili ayarlardan kısaca bahsedelim.
- Scavenge stale resource records → Eski kayıtların temizlenmesi için buranın işaretlenmesi gerekmektedir.
- No-refresh interval → DNS kaydı oluştuktan sonra kaç gün boyunca gelen aynı güncelleme isteklerinin dikkate alınmayacağının süresini belirttiğimiz ayardır. Makinalar normal şartlarda(yukarıda bahsedilen güncelleme işlemleri hariç) 24 saatte bir Dynamic Updates gerçekleştirir. Buradaki amaç, kaydın sürekli yenilenmesini engelleyerek gereksiz replikasyon datası oluşmasını önlemektir.
Domain Controller her 60dk bir Dynamic Updates gerçekleştir.
- Refresh interval → Bu iki aralığın toplam süresi, bir kaydın temizlenmeden önce DNS veritabanında ne kadar süreyle bulunabileceğini belirler. Örneğin, aşağıdaki gibi her iki aralığı da 7 güne ayarlanırsa, bu kayıtların temizlenmeden önce 14 güne kadar var olabileceği anlamına gelir.

Yukarıda dikkat edilmesi gereken bir nokta, no-refresh interval ve refresh interval birleşimi, DHCP kiralama sürenize eşit veya bundan daha az olmalıdır. Örneğin, DHCP kiralama süreniz 14 gün ise her iki aralığı da 7 güne ayarlamanız yeterli olacaktır.
Son olarak bu kayıtların silinmesi manuel veya otomatik olarak yapılabilmektedir. Manuel yapmak için DNS Server’a sağ tıklayıp Scavenge Stale Resource Records’a basmanız yeterlidir.

Bu işlemi belli periyotlar ile DNS sunucusunun otomatik yapması için,DNS Server’a sağ tıklayıp properties seçeneğini seçin. Açılan pencerede, Advanced sekmesini açın ve Enable automatic Scavenging of Stale records işaret kutusunu işaretleyerek istediğiniz periyodu girin.

Sonuçları görmek için, Event Viewer üzerinden DNS loglarınıza bakmanız yeterlidir.
- 2501 Event ID silinen dns kayıtları hakkında bilgi verir.
- 2502 Event ID silinmeyen dns kayıtları hakkında bilgi verir.

Son olarak, daha iyi anlaşılması için bir örnek verelim. Mehmet.com zone üzerinde info adında bir A kaydı olduğunu düşünelim. Zone için, norefresh ve refresh time süresini 5 gün olarak seçip, scavenging time ise 5 gün olarak ayarladınız. Kayıt 10 gün sonra yenilenmezse eski olarak işaretlenir. Scavenging 5 günde bir kontrol ettiği için bu süre zarfında kayıt silinecektir. Ancak kayıt örneğin 5. günde yenilenirse, yenilenmeme aralığından başlayarak 10 günlük yeni bir dönem yeniden başlayacaktır.
Scavenging süresini 5 güne ayarlarsanız temizleme hizmetinin her 5 günde bir çalışacağı anlamına gelir. Bir sonraki temizleme döngüsünün ne zaman çalışacağını bilmek için PowerShell kullanabilirsiniz.
