Posted in

DNS Politikaları: Farklı Subnetlere Farklı Cevaplar

Merhabalar,

Bu yazımızda Windows Server 2016 ile tanıtılan ve Server 2025 sürümünde daha da olgunlaşan DNS Policy (DNS Politikaları) özelliğini kaleme alıyor olacağız. Klasik DNS davranışının ötesine geçerek isteklerin geldiği istemciye göre özelleştirilmiş yanıtlar verme imkanı sunar. Artık DNS sunucusu sadece kayıt neyse onu döndürmekle yetinmiyor; istemcinin IP’sine, subnet’ine, sorgu türüne, günün saatine, hatta gelen sorgunun TCP mi UDP mi olduğuna bakarak farklı cevaplar verebiliyor.

Bu, özellikle aşağıdaki senaryolarda BT yöneticilerine büyük esneklik sağlıyor:

  • Aynı alan adı için farklı ofis lokasyonlarına göre farklı IP adresi döndürme

  • Coğrafi olarak yakın sunuculara yönlendirme (geo-distribution)

  • İç ağ ve dış ağ kullanıcıları için farklı DNS cevapları üretme

  • DNS sorgularının belirli kurallara göre engellenmesi veya yönlendirilmesi

Kullanım Senaryoları

DNS Policy özelliğini kullanarak aşağıdaki gibi gelişmiş senaryoları hayata geçirebilirsiniz:

Senaryo Adı Açıklama
Split-Brain DNS Aynı alan adı için iç ve dış kullanıcılara farklı IP’ler döndürülmesi
Geo-Location Routing İstemcinin bölgesine göre en yakın veri merkezine yönlendirme
İzole Edilmiş Test Ortamı Belirli subnet’lerden gelen istemcilere staging/test sunucularının IP’si verilmesi
Gelişmiş Güvenlik Belirli ülkelerden gelen DNS sorgularını reddetme ya da alternatif IP’lere yönlendirme

Bu senaryolar, DNS sorgularına filtre uygulayarak, belirli istemcilerden gelen sorguların reddedilmesi veya farklı şekillerde yönlendirilmesi sağlanarak kullanılabilir. O zaman şu soruya da cevap verelim.

DNS Sorgu Filtrelemesi Nedir?

DNS sorgu filtrelemesi, DNS sunucusuna gelen isteklerin kaynak IP adresine, kayıt türüne veya sorgulanan alan adına göre işlenmesini kontrol etmeye yarar. Böylece:

  • İstenilen istemcilerin istenilen domain’leri çözmemesi sağlanabilir,

  • Belirli zamanlarda gelen sorgular filtrelenebilir,

  • Potansiyel tehdit oluşturabilecek sorgular engellenebilir.

Bu, özellikle DNS tabanlı veri sızıntısı (DNS exfiltration) veya DNS üzerinden kötü amaçlı yazılım iletişimi gibi senaryoları engellemek için çok kritik bir kontrol katmanıdır.


DNS Sorgularını Filtrelemenin Kullanım Alanları

  1. Dış istemcilerin hassas iç domain’leri sorgulamasını engellemek

  2. İç kullanıcıların belirli tipteki kayıtları (örneğin TXT) sorgulamasını sınırlandırmak

  3. İstemci subnet’ine göre çözümleme davranışını değiştirmek

  4. Kötü niyetli IP’lere DNS hizmeti sunmamak

🎯 Uygulamalı Örnek

Kurumsal bir kurumda görev alırken, ortamda bulunan NAC ve AccessPointler sebebiyle farklı yerleşkedeki (farklı subnetlerdeki) client’lara kendi subnetindeki AP ‘lerin (farklı AP adresleri) ip adresleri döndürülmesi gerekiyordu. Biz örneğimizde aynı DNS sunucusun üzerinden aynı sorguya farklı clientlerda farklı cevaplar döndüğünü göreceğiz.

Ortamımızda Windows Server 2025 AD ortamı mevcuttur ve DNS hizmeti Domain Controller üzerinde koşmaktadır.

DNS Server IPs

Senaryomuz şu:

Aynı DNS sunucusu üzerinde tanımlı olan www.m3g.intra için,

  • 10.10.10.0/24 subnet’inden gelen istemcilere 192.168.10.10

  • 10.20.20.0/24 subnet’inden gelen istemcilere 172.18.20.20 cevabı verilecek.

Yapılandırmalar için DNS sunucumuz üzerinde oturum açarak Powershell penceresini açıyoruz.

Add-DnsServerClienSubnet -Name “VLAN01” -IPv4Subnet “10.10.10.0/24” -PassThru

Add-DnsServerClienSubnet -Name “VLAN02” -IPv4Subnet “10.20.20.0/24” -PassThru

komutlarını çalıştırarak kullanacağımız subnetleri DNS sunucu üzerinde tanımlıyoruz.

Add-DnsServerClient Subnet komutu ile DNS subnetlerimisi tanımlıyoruz.

DNS Politikamızda kullanacağımız zone için o zone ‘a ait scope ‘ları belirlemek için,

Add-DnsServerZoneScope -ZoneName “m3g.intra” -Name “VLAN01_ZoneScope”

Add-DnsServerZoneScope -ZoneName “m3g.intra” -Name “VLAN02_ZoneScope”

komutlarını kullanıyoruz. Dilerseniz Get-DnsServerZone komutunu kullanarak DNS Sunucu üzerindeki zone ‘ları görebilirsiniz. Sadece zone ‘a ait scope ‘ları görmek isterseniz, Get-DnsServerZoneScope -ZoneName “m3g.intra” komutu ile listeyelebilirsiniz.

Add-DnsServerZoneScope komutu ile hangi DNS zone için scope belirlediğimizi belirtiyoruz.

Bu tanımlamalar sonrası artık dns sorguları için politikamızı belirleyebiliriz.

Add-DnsServerQueryResolutionPolicy -Name “VLAN01_Policy” -Action ALLOW -ClientSubnet “eq,VLAN01” -ZoneName “m3g.intra” -ZoneScope “VLAN01_ZoneScope”

Add-DnsServerQueryResolutionPolicy -Name “VLAN02_Policy” -Action ALLOW -ClientSubnet “eq,VLAN02” -ZoneName “m3g.intra” -ZoneScope “VLAN02_ZoneScope”

komutlarını kullanarak query politikamızı belirliyoruz. Yukarıdaki dns sorgu filtresinde -Action parametresi DENY ve IGNORE değerlerini alabilir. Ayrıca ClientSubnet parametresinde ben eq (equal) eşitliğini kullandım fakat ne (not equal) seçilerek de ortamınıza uygun filtreler yazılabilir.

Add-DnsServerQueryResolutionPolicy komutu ile query politikamızı belirliyoruz.

Yukarıdaki komut setleri ile, subnet tanımlaması yapıldı, scope tanımlaması yapıldı, politika tanımlaması yapıldı. Artık tek adım kaldı o da ilgili dns kaydının oluşturulması. Bunun için aşağıdaki komutları kullanabilirsiniz.

Add-DnsServerResourceRecord -ZoneName “m3g.intra” -ZoneScope “VLAN01_ZoneScope” -A -Name “www” -IPv4Address “192.168.10.10” -PassThru

Add-DnsServerResourceRecord -ZoneName “m3g.intra” -ZoneScope “VLAN02_ZoneScope” -A -Name “www” -IPv4Address “172.18.20.20” -PassThru

Üstteki komut ile, İlgili zone ‘a hangi zone scope ‘u için hangi kaydı girdiğimizi ve hangi adrese gitmesi gerektiğini belirtiyoruz. Komutları kullanarak aldığımız çıktı aşağıdaki ekran görüntüsündeki gibi olmalıdır.

Add-DnsServerResourceRecord komutu ile DNS sunucumuzda ilgili zone 'a kayıt ekliyoruz.

Şimdi client01 ve client02 makineleri üzerinden nslookup www.m3g.intra sorgusunu çalıştırarak inceleyelim.

  • Client01

Client01 üzerinden dns sorgu sonucu


  • Client02

Client02 üzerinden dns sorgu sonucu

Görüldüğü üzere farklı ip bloglarındaki farklı cihazlara aynı DNS sunucusu üzerinden aynı DNS sorgusuna farklı ip adresleri dönmüştür. Yukarıdaki bahsedilen özellikler ve ilgili senaryolar kapsamında çok farklı şekilde kullanım olasılıkları mevcuttur.

Dikkat Edilmesi Gerekenler

  • Filtreler yanlış yapılandırıldığında, bazı uygulamalar beklenmedik şekilde çalışabilir veya çalışmayabilir.

  • Politikalar sıralıdır; ilk eşleşen politika uygulanır.

  • Yapılandırma sonrası test ortamında deneme yapılmadan canlıya geçilmemelidir.

  • dnscmd <dnsServerName> /config /loglevel 0x1000000 komutu ile DNS debug loglarını açarak ilgili paketleri takip edebilirsiniz. Komut ile ilgili detay bilgiyi microsoft dokümanından edinebilirsiniz.

Sonuç

Windows Server DNS altyapısında, sorgu filtreleme politikaları ile geleneksel DNS hizmetini çok daha güçlü bir hale getirmek mümkündür. Bu sayede ağ güvenliğiniz artar, kaynaklar daha verimli kullanılır ve sadece yetkili kullanıcıların belirli DNS sorgularına ulaşması sağlanır.

Eğer kurumunuzda DNS tabanlı bir segmentasyon veya güvenlik kontrolü düşünüyorsanız, bu özelliği kesinlikle değerlendirmelisiniz.

🔚 Farklı bir senaryo olarak Coğrafi konum bazlı DNS trafiği yönlendirme konusunu daha sonra başka bir yazımızda ele alabiliriz.

Faydalı olması dileğiyle.

DNS Policy ve diğer yapılandırma seçenekleri için, ilgili microsoft dokümanına link üzerinden erişebilirsiniz.

4 thoughts on “DNS Politikaları: Farklı Subnetlere Farklı Cevaplar

  1. Çok faydalı bir yazı olmuş, teşekkürler..

    1. Çok teşekkür ederim Ertan hocam. Siz değerli meslektaşlarımın görüşleri benim için ayrı bir yer tutmaktadır.

  2. RecepYuksel says:

    Eline sağlık, çok faydalı bir makale.

Leave a Reply

Your email address will not be published. Required fields are marked *