Windows Server 2016 TP2 DNS Politikaları – Bölüm 2

Microsoft’un yeni nesil işletim sistemi olacak olan Windows Server vNext ile gelen yenilikleri incelemeye devam ediyoruz. İki bölümden oluşan “DNS Politikaları (DNS Policies)” konusunu incelediğimiz makale serimizin ikinci bölümü ile devam ediyoruz. Makalemizin ilk bölümünde de belirttiğimiz gibi DNS Politikaları Windows Server 2016 Technical Preview 2 (TP2) ile gelen yeni bir özellik. Kullanım amacı, bir DNS sunucunun kendisine gelen DNS sorgularına nasıl cevap vereceğini belirlemek ya da DNS trafiğini filtrelemek ya da yönetmek. Bir diğer ifade ile istemcilerin DNS sorgularının merkezi olarak politika-tabanlı kurallarla yönetimini sağlamak.

Makalemizin bu bölümünde ilk bölümde giriş yaptığımız DNS politikaları ile ilgili farklı kullanım senaryolarına ilişkin aşağıdaki örneklemeleri yapıyor olacağız:

DNS Sorgularına Filtreleme Uygulamaları

DNS Politikalar İle Uygulama Yük Dengeleme ve Paylaşım Uygulamaları

Makalemin ilk bölümüne ulaşmak için

http://www.cozumpark.com/blogs/windows_server/archive/2015/06/14/windows-server-2016-tp2-dns-politikalari-bolum-1.aspx

DNS Sorgularına Filtreleme Uygulamaları:

DNS Politikalarını şu anki Windows Server 2016 TP2 sürümünde sadece PowerShell CLI’dan uygulanabildiğini makalemizin ilk bölümünde bahsettik. Dolayısıyla uygulamalarımıza da PowerShell CLI uygulamasını açarak devam ediyoruz. Bu başlık altında DNS sorgularına filtreleme uygulamalarını inceliyoruz.

İlk örneğimizde; belli bir domaine göre DNS sorguların bloklanmasını gerçekleştirelim. Özellikle DNS sistem yöneticilerinin zararlı ya da organizasyon standartlarına uygun olmayan DNS belli domainler için DNS sunuculara gelen istekleri bloklamak isteyebilirsiniz. Bunu DNS politikaları ile kolaylıkla bloklayabiliriz. Bu işlem için de “Add-DnsServerQueryResolutionPolicy” isimli cmdlet aşağıdaki şekilde kullanılarak cozumpark.local ile biten DNS domaini için gelen DNS sorgu istekleri bloklanmış olur. Burada kuralımızı herhangi bir subnet ya da DNS zone parametresi belirtmeden uyguladık. Bu şekilde uygulanan politikalara “Sunucu Seviyesinde DNS Politikaları (Server-Level DNS Policies)” adını veriyoruz. Sunucu seviyesinde uygulanan DNS politikaları DNS sorgularında ilk uygulanan kurallardır. Uygulanan komuta dikkat edersek Action parametresine “IGNORE” aksiyonu aldırarak gelen isteklerin yanıt dönmeden sonlandırılması (DROP) sağlanmış oluyor.

DNS sunucu üzerindeki bu politika sonrasında istemci üzerinde testrecord.cozumpark.local için istekte bulunduğumuzda hata aldığımızı görüyoruz.

İkinci örneğimizde; belli bir ip subnetine göre DNS sorguların bloklanmasını gerçekleştirelim. Bu tip kullanım da özellikle virüs, trojan ya da solucan gibi zararlı yazılımların bulaşmış olduğu belli subnetlerden DNS sunucuya gelen isteklerin bloklanması için kullanılabilir. Bu işlem için de “Add-DnsServerClientSubnet” isimli cmdlet aşağıdaki şekilde kullanılarak Subnet parametresi ile belirtilen 192.168.2.0/24 subnet yapısından gelen DNS sorgu istekleri bloklanmış olur. Bu komutun uygulanabilmesi için öncelikle bu subnetin tanımlanmış olması gerekiyor. Subnet tanımlama işlemleri için makalemizin ilk bölümünü inceleyebilirsiniz.

Bu örneğimizi biraz daha genişleterek belirtilen subnetlerden yine sadece belli domainler için gelen DNS sorguları bloklansın isterseniz de FQDN parametresini de ekleyerek aşağıdaki komutu uygulayabilirsiniz:

Bu komut sonrasında Subnet1’den gelen ve cozumpark.local ile biten DNS sorguları bloklanmış olacaktır.

Üçüncü örneğimizde; belli bir sorgu tipine göre DNS sorgularının bloklanmasını gerçekleştirelim. Bu işlem için de “Add-DnsServerQueryResolutionPolicy” isimli cmdlet aşağıdaki şekilde kullanılarak ANY tipindeki yani tüm kayıt tipleri için gelen DNS sorgu istekleri bloklanmış olur.

Yukarıdaki komut içerisinde –Qtype parametresi içerisinde ANY yerine SRV,MX vb. kayıt tipi de belirtilebilir.

Dördüncü örneğimizde de; DNS sunucumuzun sadece belli bir domain için gelen sorgulara cevap verip, bunun dışındaki sorguları bloklaması için de aşağıdaki şekilde görülen komutu çalıştırıyoruz.

Komuta dikkat ederseniz –FQDN parametresinde EQ (Equal yani “eşittir”) yerine NE (Not Equal yani “eşit değildir”) ibaresi kullanıldı. Bu komut sonrasında ismi cozumpark.local ile bitmeyen tüm DNS sorguları bloklanmış olacaktır.

Beşinci örneğimizde de; DNS sunucumuzun sadece belli bir subnetten gelen sorgulara cevap verip, bunun dışındaki sorguları bloklaması için de aşağıdaki şekilde görülen komutu çalıştırıyoruz:

Örneğimize dikkat ederseniz AllowPolicy isimli sunucu seviyesinde oluşturduğumuz bir politika ile Subnet1 subneti dışındaki tüm subnetlerden gelen istekler bloklanıyor.

Altıncı örneğimizde de; DNS sunucumuzun sadece belli DNS kayıt tipleri için gelen sorgulara cevap verip, bunun dışındaki sorguları bloklaması için de aşağıdaki şekilde görülen komutu çalıştırıyoruz:

Komuta dikkat edersek AllowPolicyQType isimli bir politika ile A, AAAA,MX,NS ve SOA dışındaki DNS kayıtları için DNS sunucumuzun 192.168.1.200 ip adresli ağ kartına gelen istekler bloklanmış olacaktır.

Uygulama Yük Dengeleme ve Paylaşım Uygulamaları:

DNS politikaları ile uygulama sunucularında yük dengeleme ya da yük paylaşım senaryoları da tasarlanarak uygulanabilir.  Örneğin; aşağıdaki şekilde görüldüğü gibi cozumpark.com web adresi İstanbul, Ankara ve İzmir lokasyonlarındaki üç farklı veri merkezinden ve farklı ip adreslerinden yayın yaptığını düşünelim. Bu lokasyonlardan en yoğun istek alanı İstanbul veri merkezi ve buna paralel olarak da sunucu altyapısı daha güçlü bir mimaride tasarlanmış. Bu tasarıma göre isteklerin yarısı İstanbul veri merkezindeki sunucular üzerinden diğer yarısı da Ankara ve İzmir veri merkezlerindeki sunucular arasında paylaşılarak servis vermesini planlıyoruz.

Windows Server işletim sisteminin önceki versiyonlarında böyle bir tasarımı DNS katmanında gerçeklemek ve uygulamak mümkün değildi. DNS katmanında gerçeklenen en iyi model DNS round-robin çözümünü uygulamaktı. Fakat bu çözüm bizim yukarıda istediğimiz tasarımın uygulanması için yeterli değil. Windows Server 2016 ile gelen DNS politikaları ile uygulama sunucuları istenilen oranda DNS katmanında yük paylaşımına tabi tutmak mümkün. Bu senaryoyu hayata geçirmek için aşağıdaki aksiyonların sırayla yerine getirilmesi gerekir:

Zone Havuzlarının Oluşturulması

Zone Havuzlarına DNS Kayıtlarının Eklenmesi

DNS Politikalarının Oluşturulması

 

Zone Havuzlarının Oluşturulması:

Öncelikle İstanbul, Ankara ve İzmir için ilgili zone havuzlarını oluşturuyoruz. Zone havuzu o zone için benzersiz olan tanımdır. Bir DNS zone için birden fazla zone havuzu oluşturabilirsiniz. Her zone havuzu içerisinde kendisine özgü DNS kayıtlarını tanımlayabilirsiniz. Diğer yandan aynı kayıt birden fazla zone havuzu içerisinde de farklı ip adresleri ile tanımlanabilir.

Zone Havuzlarına DNS Kayıtlarının Eklenmesi:

Şimdi de web sunucumuza ait ip adresi kaydının zone havuzu içerisine ekliyoruz. IstanbulZoneScope içerisine İstanbul veri merkezinden yayın yapacak www.cozumpark.com için 192.168.1.205 ip adresli kaydımızı; AnkaraZoneScope içerisine Ankara veri merkezinden yayın yapacak www.cozumpark.com için 172.16.1.205 ip adresli kaydımızı; IzmirZoneScope içerisine de İzmir veri merkezinden yayın yapacak www.cozumpark.com için 10.1.1.205 ip adresli kaydımızı tanımlıyoruz.

DNS Politikalarının Oluşturulması

DNS sisteminde politika yazmak için gerekli bölümler yani zone havuzları tanımlandıktan sonra sıra geldi gelen istekleri bu zone havuzlarına paylaştıracak ya da yükü dağıtacak politikamızı yazmaya. Bu politika sayesinde www.cozumpark.com için gelen isteklerin %50’si İstanbul veri merkezindeki ip adresi tarafından karşılanırken, geriye kalan %50 yük de Ankara ve İzmir ip adresleri arasında eşit olarak DNS sunucu vasıtasıyla paylaştırılacak.

Yukarıdaki uygulanan komutta ZoneScope parametresi ile DNS sunucusunun <ZoneScope>,<weight> kombinasyonunda yapılandırılmıştır. Bu parametreye yapılan tanım ile DNS sunucuya www.cozumpark.com için gelen her dört sorgu için DNS sunucumuz ilk iki sorguya İstanbul veri merkezindeki web sunucunun ip adresini gönderirken, üçüncü sorgu için Ankara veri merkezindeki web sunucusunun ip adresini, dördüncü sorgu için de İzmir veri merkezindeki web sunucusunun ip adresini gönderecektir. Bu şekilde yüzlerce farklı politika tanımlayıp farklı veri merkezleri arasında yük dengelemesi sağlayacak şekilde istenilen kurallar yazılabilir. Yazılan DNS politikaları dinamik olarak devreye girecektir, DNS Server servisini yeniden başlatmaya gerek kalmayacaktır.

Split-Brain (Split-Horizon) Senaryosu:

DNS politikaları DNS zone yapılarında yaşanan split-brain ya da split-horizon senaryolarının yönetimi için de tasarlanarak uygulanabilir. Split-brain ya da split-horizon, bir DNS zone için birden fazla versiyon (bir tanesi iç kullanıcılar için diğeri de dış dünyadaki kullanıcılar için) bulunması durumunda gerçekleşen senaryodur. Bir başka ifade ile aynı DNS alan adı (zone) için yapılan DNS sorgulamasında istek yapan ip adresine göre DNS sunucu tarafından farklı ip adreslerinin geri dönülmesi durumu split-brain ya da split-horizon olarak ifade edilir.

Aynı DNS Alanı (Zone) İçin İki Farklı Versiyon

Örneğin; www.cozumpark.com web sitesi için; iç kullanıcılara hizmet vermek için 192.168.1.205 lokal ip adresinden, dış kullanıcılar yani dış dünya için de 188.132.200.15 numaralı gerçek ip üzerinden yayın yapacak şekilde iki farklı versiyona sahip olalım. DNS politikalarının olmadığını düşündüğümüzde yani Windows Server 2016 öncesi versiyonlarda bu ihtiyacı karşılamak için iki farklı Windows Server DNS sunucu üzerinde bu DNS alanları (zone) konumlandırılarak ayrı ayrı yönetilmesi gerekir. Windows Server 2016 ile gelen DNS politikaları sayesinde tek bir Windows Server DNS sunucu üzerinde host edilebilir durumdadır.

Eğer cozumpark.com dns alanını host eden DNS sunucusunun iki farklı Ethernet arabirimi bulunuyorsa; bir tane iç ağa bağlı 192.168.1.200 ip adresine sahip, bir tane de dış dünyaya bağlı 188.132.200.15 ip adresine sahip durumda ise böyle bir senaryo için oluşturulacak DNS politika adımlarını aşağıda bulabilirsiniz:

Zone Havuzlarının Oluşturulması

Zone Havuzlarına Kayıtların Eklenmesi

Politikaların Oluşturulması

 

Zone Havuzlarının Oluşturulması:

Öncelikle Internal isimli zone havuzunu oluşturuyoruz. Bu zone havuzu içerisinde www.cozumpark.com için iç kullanıcıların erişim yapacağı versiyon olacaktır.

Varsayılan durumda DNS sunucu üzerinde aynı alan adından (zone) bir zone havuzu mevcuttur. Bu zone havuzu aynı zamanda www.cozumpark.com adresi için dış erişim adresini de host ediyor olacak.

Zone Havuzlarına Kayıtların Eklenmesi

Bu adımda da web sunucuya ait iç ve dış erişim DNS kayıtlarının ilgili ip adresleri ile zone havuzuna eklenmesini gerçekleştireceğiz:

İkinci komuta dikkat ederseniz –ZoneScope parametresi kullanmadık. Çünkü bu kayıt varayılan zone havuzuna ekleniyor. Bu şekilde kullanım normal zone yapısına kayıt yapmakla aynıdır. Zaten bu işlemden sonra DNS konsolunu açarsanız DNS zone içerisinde –ZoneScope parametresi kullanmadan açılan kaydı göreceksiniz.

DNS Politikalarının Oluşturulması

Yukarıdaki adımlardan sonra sıra geldi DNS politikasını oluşturmaya. Aşağıdaki şekilde görüldüğü gibi SplitBrainZonePolicy isimli sunucumuzun iç ağa bağlı 192.168.1.200 ip adresine gelen cozumpark.com isteklerine izin veren bir politika yazdık.

Bu kural sonrasında DNS sunucusuna iç ağdan gelen sorgulara www.cozumpark.com için 192.168.1.205 olarak cevap dönerken, dış dünyaya bağlı Ethernet arabirimine gelen www.cozumpark.com istekleri için de dış dünyada tanımlı 188.132.200.15 ip adresini cevap olarak gönderecektir. 

ÖZETLE :

Microsoft’un yeni nesil işletim sistemi olacak olan Windows Server 2016 geliştirme sürecinde “Windows Server Technical Preview 2” sürümü ile gelen yeniliklerden “DNS Politikaları” konusunu incelediğimiz iki bölümden oluşan makale serimizin sonuna geldik. Windows Server 2016 çıkışı için henüz çok erken olsa da sizlerle şimdilik görünen yenilikleri paylaşmaya devam ediyoruz. Ürün şu an için geliştirme aşamasında olduğundan dolayı anlattığımız özelliklerde ya da arayüzlerde ileriki sürümlerde farklılıklar ya da özelliklerin kaldırılması, eklenmesi gerçekleşebilir. Biz de zaman içerisinde çıkacak yeni sürümlerdeki yenilikleri paylaşmaya çalışacağız. Windows Server Technical Preview 2 yeniliklerini incelemeye devam edeceğimiz yeni makalelerde görüşmek üzere esenkalın.

Exit mobile version