Group Policy Slow Links Detection Nedir?
Bildiğiniz gibi GPO objeleri makine ve kullanıcı olmak üzere iki temel AD objesine uygulanmaktadır.
Makine GPO ayarları bilgisayar yeniden başlatıldığında, kullanıcı GPO ayarları ise log-on sürecinde uygulanmaktadır. Tabi ki bu durumların istisnalıları bulunmaktadır. Örneği bir log-off script tanımlanmış ise kullanıcı için bu GPO log-on değil log-off sırasında uygulanır. Aynı şekilde shutdown için de benzer ayarlar yapılmış olabilir. Ancak bu genel geçer bir kabul olup kullanıcı policy değişiklikleri için log-off ve log-on istenir, makine gpo değişiklikleri için de yeniden başlatma.
Bunların dışında birde GPO tarafında background refresh süresi dediğimiz ve 90 – 120 dakika arasında kullanıcı ve makine policyleri tazelenir. Eğer GPO tarafında bir değişiklik var ise bu değişiklik uygulanır. Eğer bir değişiklik yok ise uygulanmaz ( bunun tek istisnası security ayarlarıdır. Security ayarları değişiklik olmasa bile 16 saat te bir uygulanmaktadır ).
Yukarıdaki anlatılanlar varsayılan ayarlar olup siz isterseniz her GPO tazeleme süresi sonrasında değişiklik olsun olmasına GPO’ nun yeniden uygulanmasını da ayarlayabilirsiniz. Ancak bu varsayılan bir ayar değildir.
“Process even if the Group Policy objects have not changed”
Ama bu durumun sistem üzerine ciddi bir yük bindireceğini unutmayın. Bu daha çok yerel admin hakkına sahip olan kullanıcıların sizin GPO ayarlarını değiştirdiği ortamlar için uygundur.
Yine, bir GPO objesini incelediğiniz zaman içerisinde pek çok farklı ayarlar ile ilgili bölümler göreceksiniz.
Registry policy processing
Internet Explorer maintenance
Software Installation policy
Folder Redirection policy
Scripts policy
Security policy
Internet Protocol Security (IPsec) policy
Wireless policy
EFS Recovery policy
Disk Quota Policy
Peki, bu kadar temel bilgiden sonra gelelim asıl konumuza. Bir GPO içerisinde pek çok ayar olabilir, ancak sizin şirket organizasyonunuzda VPN ile veya yavaş bir bağlantı ile domain ortamına bağlanan bir takım makine ve kullanıcılar için GPO üzerinde bir ayar bulunmaktadır.
GPO tarafında, kullanıcının daha hızlı logon olması ve bu tür yavaş bağlantılarda tüm GPO ayarlarının yüklenmesi yerine sadece kritik olan ayarların yüklenmesini sağlayan bu özelliğe “Slow link detection” denmektedir.
Aşağıdaki yolu izleyerek bir GPO için bu ayara ulaşabilirsiniz;
Computer Configuration\Policies\Administrative Templates\System\Group Policy altında
Group Policy slow link detection
Varsayılan olarak 500kbps olan bu değeri “0” sıfır yaparsanız eğer bu ayarı devre dışı bırakmış olursunuz. Yani aradaki network bant genişliği ne olursa olsun mutlaka tüm GPO ayarları uygulanmak için çalışır.
Eğer buraya bir değer girerseniz ve bu değerden düşük bir network bant genişliği var ise aşağıdaki ayarlar uygulanmaz.
Internet Explorer maintenance
Software Installation policy
Folder Redirection policy
Scripts policy
Internet Protocol Security (IPsec) policy
Wireless policy
Disk Quota Policy
Aşağıdaki POlicyler ise mutlaka uygulanır;
Registry policy processing
Security policy
EFS Recovery policy
İsterseniz yukarıdaki her bir Client Side Extension CSE için bu davranışı detaylı olarak kontrol edebilirsiniz.
Client Site Extension ları aşağıdaki yol yardımı ile bulabilirsiniz
Kayıt defteri içerisinde;
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon\GPExtensions
Buradan herhangi bir Extension seçerseniz yukarıdaki gibi alt değerleri görebilirsiniz.
Burada örneğin “Folder Redirection” dan sorumlu CSE bilgilerini görüyoruz. Burada “NoSlowLink” isminde bir anahtar var. Bu anahtar 1 ise eğer, slowlink tespit edilmesi durumunda bu CSE aktif olmayacaktır.
Aşağıda ise Security için CSE bilgilerini görüyoruz.
Dikkat ederseniz burada “NoSlowLink” isminde bir anahtar yoktur. Yani her türlü uygulanacak bir CSE olarak görebiliyoruz.
Peki, bu network bant genişliği nasıl hesaplanıyor?
Windows Vista ve önceki işletim sistemlerinde BW hesaplamak için ICMP kullanılmaktaydı. Temel olarak ping paketleri ile BW hesaplanıyordu. Algoritma detayları için aşağıdaki linki kullanabilirsiniz
http://technet.microsoft.com/tr-tr/library/cc728359(v=ws.10).aspx
Ancak ping için malum firewall tarafında yasaklama olması durumunda şube makineleri için değer her seferinde sıfır çıkıyor ve bu nedenle uzak ofisler için temel gpo ayarları dışındaki ayarlar uygulanmamaktaydı. Bu nedenle bu sistem Windows Vista ile beraber değiştirildi. Yani artık güncel işletim sistemlerinde artık bu NLA ile hesaplanıyor.
Network Location Awareness (NLA). Bu network katmanı servisi sayesinde, GPO gibi uygulamalar network kartından network hakkında bilgi alabilmektedir. Bu bilgileri tabiki NLA kendi algoritmasına göre hazırlamaktadır. NLA sayesinde mevcut bir network kartı üzerindeki trafik izlenebilmektedir. Bu sayede DC ile olan arasındaki BW hesaplaması için bir önceki yöntemde olduğu gibi ek bir network trafiği yapmaya gerek yoktur. İlk yöntemde önce sıfır byte bir ping paketi, sonra 2048byte bir ping paketi gönderiyor ve hesaplamalar yapıyordu. Artık bu şekilde bir trafik yok. İkinci önemli özellik ise ICMP kullanılmıyor. Yani firewall ve benzeri bir neden ile yanlış bir BW değeri alma söz konusu değil.
Bu mekanizma peki nasıl çalışıyor?
Group Policy servisi GPO uygulanabilmesi için uygun bir domain controller bulmak zorundadır. Bunun ise DCLocator servisi sayesinde yapar. Aslında bu bilgi muhtemelen bu servisin cache’ in bulunmaktadır. Yani istemci tarafta öncesinde DC ihtiyacı başka bir servis tarafından istenmiştir. GPO servisi 3 kez DC ye bağlanmayı dener. İlk olarak dclocator dan aldığı yani cahe den aldığı bilgiye ulaşmaya çalışır. Sonraki iki denemede ise DCLocator servisini yeniden discover işlemi için zorlar. Cache veya yeniden tespit ile alınan Domain Controller bilgisi içerisinde IP adresi bulunmaktadır. GPO servisi bu ip adresi yardımı üzerinden bandwith hesaplamaktadır.
Bu hesaplama sırasında aşağıdaki adımlar gerçekleştirilir.
Authentication
Aslında bu süreç DCLocator sırasında gerçekleşiyor. Bu sırada kimlik bilgisi olarak aktif logon olan kullanıcı ve makine security context bilgileri kullanılmaktadır
Determine network name
GPO servisi IPHelper API kullanarak DC ile iletişime geçecek en doğru network interface’ I seçer. Bunu yaparken ek bir network trafiği oluşturmaz.
Bu bilgilere aşağıdaki yol üzerinden ulaşabilirsiniz
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Group Policy\History
Bizim için önemli olan kayıtlar, “NetworkName” ve “DCName” dir.
Site query
GPO servisi, netlogon servisini kullanarak Client site discovery dediğimiz işlemi gerçekleştirir. Client site discovery, istemci makineden DC ye yapılan bir RPC isteğidir.
İstemci makinedeki netlogon servisi, makinenin site ismini cache olarak saklar. Bu değer için cache süresi 5 dakikadır.
Determine scope of management
Kullanıcı veya makine için uygulanacak GPO objelerinin belirlenmesi gerekmektedir.
GPO servisi DN yardımı ile OU ve domain bilgisini alır ve bunun üzerine uygulanacak GPO listesine ulaşır.
Örnek
DN için soldan başlar ve sağa doğru ilerler. En son DC değerine kadar gelir.
Distinguished Name:
cn=hakan,OU=Operasyon,OU=IT,DC=turkiye,DC=cozumpark,DC=local
List:
OU=Operasyon,OU=IT,DC=turkiye,DC=cozumpark,DC=local
OU=IT,DC=turkiye,DC=cozumpark,DC=local
DC=turkiye,DC=cozumpark,DC=local
GPO servisi, Bu OU ve domainler için bağlı olan yani linki olan GPO objelerinin listesini LDAP üzerinden öğrenir.
Bu LDAP isteğinde 4 temel bilgi alınır; base, scope, filter, ve attributes
Örnek bir çıktı ise aşağıdaki gibidir;
BaseDN: domain
Scope: Sub Tree
Filter: (|(distinguishedname=OU=xxx)( more OUs)(ends domainNC DC=))
Attributes: gpLink, gpOptions, ntSecurityDescriptor
Example: Scope of management LDAP search
BaseDN: DC=turkiye,DC=cozumpark,DC=com
Scope: SubTree
Filter: (|(distinguishedname= OU=Operasyon,OU=IT,DC=turkiye,DC=cozumpark,DC=local
)
(distinguishedname = OU=IT,DC=turkiye,DC=cozumpark,DC=local
)
(distinguishedname = DC=turkiye,DC=cozumpark,DC=local
))
Attributes:gPlink,gPoptions,nTSecurityDescriptor
Evet, tüm bu süreçlerin sonunda artık GPO servisi network durumunu öğrenmeye hazırdır. GPO servisi NLA’ a BW değeri sorar ve bu aldığı değer ile kendi üzerinde saklı olan değeri karşılaştırır.
HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Winlogon
Altında, GroupPolicyMinTransferRate
Bu değere göre düşük veya yüksek hızlı çıkması sonrası da bu bilgiyi aşağıdaki kayıt dizinine yazar.
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Group Policy\History
Altındaki IsSlowLink. Değer 1 ise hız 500kb den düşük (GroupPolicyMinTransferRate değerinin 500kbps olduğunu varsayıyorum ), 0 ise hızlı demektir.
Evet, bu makalemin de sonuna geldim. Umuyorum faydalı bir makale olmuştur. Bir sonraki makalemde görüşmek üzere esen kalın.
Kaynak