Active Directory Replication

 

Merhaba,

Active Directory replication’dan bahsedecegim. AD replicatiin 4 group altinda siniflandirilir.

1) Multimaster

Tüm DC’lerde degisiklik yapilir.

2) Pull Replication

Replikasyon her zaman Pull olarak çalisir. Source DC destination DC’ye degisiklikleri göndermez, destination DC source DC’den degisiklikleri alir.

3) Store and Forward

Sadece degisiklik yapilan attribute’ler belirlenir ve diger DC’lere update edilir.

4) State Based Replication

Sadece degisiklik yapilan attribute’ler replike edildigi için herhangi bir conflict durumu söz konusu olmaz.

Directory Partition Replicas:

clip_image002

Schema Partition’inda Attribute ve Classes’lar bulunur.Fores wide’dir.Bir Forest altinda birden fazla domain olabilir. Bu domain’lerin hepsini kapsiyorsa buna Forest wide denir.

Configuration Partition’inda Forest’in configurasyon’u ile ilgili bilgiler bulunur.Forest wide’dir.

Domain Partition’inda Userlar, Computer’lar ve Group Policy’ler bulunur. Domain wide’dir. Sadece bir domain’i kapsiyorsa buna Domain wide denir.

Application Partition’inda DNS ile ilgili data’lar bulunur. Domain wide veya Forest wide olabilir.

Bir DC Global Catalog ise Partial Replike Set edilir ve Read Only Partition’dir.

Changes to Attributes:

Bir DC’de yapilan herhangi bir degisiklik Attribute düzeyinde yapilir. Tüm degisiklikler replikasyon zamaninda alinir ve zamana bagli degildir. DC’ler Kerberos v 5 kullanir.

Effect of Schema Changes on Replication:

DC’ler arasi schema’in versiyon’unun ayni olmasi gerekmektedir. Eger schema versiyon’lari ayni degilse replikasyon bloklanir ve schema versiyon’u ayni olana kadar replike etmez. Schema versiyon’lari ayni oldugu zaman replikasyon yeniden programlanir.

Change Notification:

Bir DC’deki object’de herhangi bir degisiklik yapildiginda buna change notification denir. Ayni site içindeki DC’lere change notification broadcast olarak gönderilir. DC’ler 15 saniye kendini kilitler ve bu bilgiyi almaz bu arada DC’lere event düser.15 saniye sonra DC’ler bu bilgiyi replike eder ve bir sonraki replikasyon gecikmesi 3 saniye olur.

Gecikme süreleri asagidaki Attribute’lerden düzenlenebilir.

• The value for initial change notification delay is stored in the

msDS-Replication-Notify-First-DSA-Delay attribute.

• The value for subsequent notification delay is stored in the

msDS-Replication-Notify-Subsequent-DSA-Delay attribute.

Change Notification Between Sites:

Change notification site’lar arasinda replikasyon zamani geldiginde replike edilir.Replikasyon süresi konfigure edilebilir. Bu süre en düsük 15 dk yapilabilir.

Ayrica change notification ADSI Edit’den asagidaki degerler ile enable edilebilir. Böylelikle herhangi bir object’de degisiklik oldugunda change notification ayni site içindeymis gibi hareket eder.

ADSI Edit içerisinden Configuration Partition içinde asagidaki degerler verilebilir.

CN=Configuration,DC=ForestRootDomainName and CN=Sites.

Expand the CN=Inter-Site Transports container, and then click CN=IP.

If the Value(s) box displays <not set>

0100 (existing value)

0001 (value that enables change notification)

0101 (adds enable change notification to the existing setting)

Originating Update:

Bir Object üzerinde yapilan degisiklik, tasima ve silme gibi islemlerin hepsi Originating Update olarak adlandirilir. Originating update’in yapildigi DC’ye Originating DC denir.

Active Directory içinden herhangi bir object silindiginde isDeleted attribute’ü TRUE olur ve silinen attribute Directory Partititon içinde Deleted Objects Container’ina tasinir. Bu container gizlidir sadece ADSI Edit’den bakilabilir.

Update Sequence Number (USNs)

Object’de bir degisik degisiklik yapildiginda Update Sequence Number’i artar.Bu artis bir bir olur. Her DC üzerinde 64 bit local USN counter vardir. USN counter object’de degisiklik yapildiginda o object’in USN numarasini arttirir.

Asagidaki komut ile object’in USN numaralarina bakabiliriz

repadmin /showobjmeta DCLIST

<object_DN>

Her DC’nin bir Object GUID (DSA GUID) numarasi vardir. Replikasyon sirasinda DC’ler arasinda Object GUID numarasi kullanilir. Invocation ID ( Database GUID) Active Directory kurulurken Invocation ID olusur ve bu ID her Active Directory kuruldugunda degisir.Ayrica restore sonrasinda Object GUID numarasi degismiyorken Invocation ID degismektedir.

Bir DC üzerinde bir object olusturdugumuzda ve bu object Source DC üzerinden Destination DC’ye replike olup, destination DC üzerinde bu object’in password’ü degistirildiginde tekrar Source DC’ye replike edildiginde olusan attribute’lerin USN degerlerini asagida bulabilirsiniz.

clip_image004

clip_image006

clip_image008

clip_image010

Replication Request Filtering

Replication Filter demek, sadece degisiklik yapilan attribute’ün replike edilmesi demektir.

Bu iki listede bulunur.

1) Up-to-Dateness Vector

Tüm DC’lerin directory partition’larindaki attribute’lerin en son aldiklari USN numaralarini bulundurur.

2) High Watermark (direct up-to-dateness vector)

Bir attribute Source DC’den Destination DC’ye replike edildiginde en son aldigi USN numarasina High Watermark degeri denir.

Up-to-Dateness vector ve High Watermark birlikte çalisirlar.Destination DC change notification’i Source DC’den almak istedigi zaman up-to-dateness vector ve high watermark degerlerini Source DC’ye gönderir. Source DC bu degerleri kendinde bulunan Up-to-dateness vector ve high watermark degerleri ile karsilastirir.Bu degerler esit ise ve Source DC’de bulunan deger düsük ise replike etmez. Eger Destination DC’de bulunan deger düsük ise replike eder.

Böylelikle sonsuz replikasyon engellenmis olur.

Up-to-dateness vector’e asagidaki komut ile bakilabilir.

Repadmin /showvector

Multimaster Conflict Resolution Policy

Eger ayri site’larda bulunan DC’ler üzerinde bir attribute ayni anda degistirildiyse ve versiyon numaralari her iki attribute’ünde 1 ise 2 olur. Bu durumda time stamp devreye girer en güncel olan attribute replike edilir. En yeni olan her zaman kazanir.

Varolan isimli bir object olusturuldugunda varolan object ismi "CN=ABC" ise 2. olusturulan object ismi "CN=ABC*CNF:<GUID>" olarak degistirir ve eski olan isim silinir.

Replication of Linked and Nonlinked Attribute

Bir object’e bagli olarak bazi back link’ler eklenebilir. Bunlar object’in membership’leri olabilir.Back link limit’i 1,200 values’dur. Bu degerden fazla back link eklenmez.

Replication of Deletions

Bir object silindiginde isDeleted attribute’ü 1 olur ve object Deleted Object Container’ina tasinir.Tombstone life time süresi kadar durur.

Her DC’nin ve her object’in bir tombstone life time degeri vardir. Bu zaman dolunca DC tekrar demote\promote edilir. Object’ler için ise silindikten sonra tombstone life time süresi baslar. Süresi doldugunda garbage collection tarafindan silinir.

Lingering Objects

A object’inin DC1 ve DC2 üzerinde oldugunu düsünelim. Herhangi bir sebepten dolayi DC2 kapatildiginda DC1 üzerinden A object’si silindiginde tombstone life time’a düser. Tombstone life time süresi kadar bekleyip ordanda silindigini düsünürsek, DC2 üzerinde eski tarhli object hala vardir. DC2 açildiginda bu object’i replikasyon etmeye çalisirsa directory partition üzerinde bazi lingering object’ler olusur ve replikasyon engellenir.

Event ID:1988

Bu durumda öncelikle asagidaki komut ile lingering object’ler silinir.

/removelingeringobjects <Dest_DC_LIST> <Source DC GUID> <NC>

[/ADVISORY_MODE]

Eger yukaridaki komut ile lingering object’leri silmeyi basaramazsak 2. Bir yöntem olarak asagidaki yöntem’i deneyebilirsiniz.

1) Strict-prevents lingering object replication

Strict replication lingering object’lerin replikasyonunu engellemektedir ve default olarak (1)’dir.

2) Loose-allows lingering object replication

Loose replication lingering object’lerin replikasyon yapmasina izin verir ve default olarak (0)’dir.

Eger biz Strict replication degerini (1)’den (0)’a degistirirsek lingering object’lerin replikasyon yapmasina izin veririz. Bu durumda loose replication degeri (1) olur.

Böylelikle lingering object’lerin replikasyon yapmasina izin vermis oluruz.

Biz bu yöntemi zor durumda kaldigimiz zaman uygulamayi öneriyoruz. Bunun nedeni bu islemi yaptigimiz zaman replikasyonu zorlamis oluyoruz diger DC’ler üzerine de lingering object’ler yayilabilir.

Registry degerini asagida bulabilirsiniz.

Default(daily) The value forthe backup latency interval is stored as a REG_DWORD value, in the Backup Latency

Threshold (days) entry, in

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters.

The value for the consistency setting is stored in the Strict Replication Consistency entry,

in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters.

The values are as follows:

• Value: 1 (Set to 0 to disable)

• Default: 1 (enabled) in a new Windows Server 2003 forest, otherwise 0.

• Data type: REG_DWORD

AD Replication on a Restored Domain Controller

Non-authoritative Restore

Bir DC’nin system state backup’i alinir ve DC herhangi bir hata ile karsilastiginda bu hatayi onarmak için backup’dan restore edilir ve diger DC’lerden degisiklikleri aldigi için non-authoritative restore denir.

Authoritative Restore

Non-authoritative restore’da silinen bir object geri gelmez. Eger silinen bir object’i tekrar olusturmak istiyorsak authoritative restore yapilir. Bu islem için ilk önce non-authoritative restore islemi yapilir. Backup’dan restore edilir. Daha sonra restart etmeden ntdsutil içerisinden authoritative restore komut’lari ile silinen object yeniden olusturulur. Bu islemden sonra restart islemi yapilir.

Silinen ve restore edilen bir user’in back link’lerinin yani membership’lerinin gelmesi için ldifde dosyasi kullanilarak import edilir.

Active Directory Replication Topolojy

Active Directory replication topology’sini ve connection object’sini ayni site içerisinde KCC olusturur. ISTG farkli site’lar için her site içinden rastgele bir DC seçerek connection object’i

olusturur.

KCC her DC üzerinde vardir ve her 15 dk’da bir çalisir.Connection object’i olusturur siler. Object’leri AD databaze içinden okur ve yazar.

Inter-site connection object’leri içinse ISTG bu görevi yapar.

Asagidaki ekran görüntüsünde detayli örneklendirilmistir.KCC Active Directory database’i ile konusma ihtiyaci hisseder ve KCC’nin AD Database’ine ulasmasini saglayan servis DSA servisidir.

Active Directory database’indeki kayitlarin manage edilmesini saglayan servis ise ESE servisidir.

clip_image012

DSA:Ntdsa.dll

Extensible Storage Engine (ESE):Esent.dll

KCC RPC kullanir. KCC diger DC’ler üzerindeki KCC’lerin replikasyon sirasinda aldigi hatalari RPC ile log’lar. KCC farkli site’da bulunan KCC ile haberlesmez. Forest’in Konfigurasyon’u Configuration Partition içinde Global Data içinde bulunur. KCC Global Data içinden Forest Configuration ile ilgili bilgilere ulasir.

KCC’nin ve ISTG’nin olusturdugu topology’leri asagida bulabilirsiniz.

clip_image014

Her site konfigurasyon’u içinde bir connection object’leri, Server’lar, directory kurulum sirasinda olusan NTDS settings object’leri, Subnet’ler, Site link’ler ,Site link bridges ve cross-reference object’ler bulunur.

Kendimiz site link olusturup site link bridge yapabiliriz. Böylelikle istedigimiz site’lar için bridge yapabiliriz. Cross-reference object bir Active Directory kurulurken olusur ve replikasyon sirasinda cross-reference object degeri ile DC’lerin AD database’ine ulasilir.

Replication Between Sites

Default olarak her site’dan bir tane bridge server ISTG tarafindan seçilir.Eger default olarak her site’dan bir DC seçilmesini istemiyorsak manuel connection object’i olusturup bridgehead server seçilebilir. Küçük yapili sirketlerde default olarak her site’dan bir tane DC seçilmesi önerilebilir ancak büyük yapili sirketlerde bu gereksiz network trafigine neden olur.

Asagidaki komut ile bridgehead server’lari görebiliriz.

repadmin /bridgeheads

Ayrica bridgehead server oldugunda bir DC’nin asagidaki attribute’leri degisir.

ISTG bridgeheadTransportList attribute

(Back link) bridgeheadServerListBl

Site Link Settings

DC’lerin hangi DC ile replikasyon yapmasini belirleyen site linkdir. Bu site link üzerinden connection object’leri olusur.

Schedules; Replikasyon zamani geldiginde hangi saat’ler arasinda replikasyon yapilacagi belirlenebilir.

Schedule ayni site içinde default olarak 1 saat’dir. Eger change notification yoksa ayni site içinde DC’ler saat basi replikasyon yaparlar.

Replikasyon her zaman cost degeri düsük olan connection object’i üzerinden yapilir.

Site’lar arasi replikasyon defeult olarak 180 dk’dir. Bu aralik en düsük 15 dk olabilir.

Örnek olarak A-B-C site’larinin oldugunu düsünürsek, Bridge all site seçenegi default olarak geldigi gibi enable’sa A-B arasinda ve B-C arasinda connection object’leri varsa ama A-C arasinda connection object’i yoksa yinede A site’inda bulunan bir DC C site’inda bulunan bir DC ile replikasyon yapabilir.

Replikasyon zamani ise A-B arasinda 13:00 am\16:00 pm 90 dk’da bir, B-C arasinda 12:00 am\15:00 pm 60 dk’da bir yapiliyorsa A-C arasinda yüksek olan interval yani 90 dk’da bir saat olarak ise kesisen saat’ler arasinda yani 12:00 am\15:00 pm arasinda replikasyon yapilabilir.

Bridge All Site link seçenegi default oalrak açiktir ancak bu seçenek gereksiz network trafigini engellemek için disable edilebilir. Bu islem bazi DFS problem’lerine neden olabilir ancak asagidaki komut ile disable edersek herhangi bir sorun olusmaz.

W2K3 SP1 : repadmin /siteoptions W2K3_BRIDGES_REQUIRED

Ayrica KCC herhangi bir DC’ye ulasamazsa otomatik olarak baska bir DC’ye yönlendirir.

Asagidaki örneklerde detayli olarak görebilirsiniz.

clip_image016

clip_image018

Global Catalog Replication

Global catalog olan DC tüm site’larda bulunan DC’lerin domain partition’larini okur. Bir attribute’e ulasilacagi zaman global catalog içerisinden ulasilir. Ortamda tek bir DC varsa global catalog’dur ancak birden fazla DC varsa global catalog seçilebilir.Glocal catalog olan DC’nin isGlobalCatalogReady attribute’ü enable olur ve DNS içinde SRV kaydi olusur. Ayrica isMemberOfPartialAttributeSet attribute’ü schema içinde TRUE olur.Böylelikle diger DC’lerin domain partition’larini global catalog olan DC okuyabilir.

Asagidaki sekilden detayli bilgiye ulasabilirsiniz.

clip_image020

Urgent Replication

Bazi degisiklikler urgent replication olarak adlandirilir. Bunlar asagidaki degisikliklerdir. Bu degisiklikler oldugunda replikasyon süresi beklenmeden degisiklik replike edilir. Site’lar arasinda ve ayni site içerisinde de bu sekildedir.

clip_image022

Replication Tools and Settings

Asagidaki komutlar ve yöntemler ile replikasyon’da olusan problemleri ve replikasyon ile ilgili detayli bilgiyi görebilirsiniz.

1) Repadmin

2) Replmon

3) DCDiag

4) NTDSUtil

5) Events and Registry Entries

6) Network Ports and Protocols

Asagidaki komut server’in replikasyon partner’i ve replikasyon tarihleri ile ilgili detayli bilgi verir.

repadmin /showrepl server1.microsoft.com

Asagidaki komut ile iki DC arasinda replikasyon’u tetikleyebiliriz.

repadmin /replicate rootdc01.contoso.com rootdns.microsoft.com dc=contoso,dc=com

Asagidaki komut ile bir DC’nin tüm DC’ler ile replikasyon’unu tetikleyebiliriz.

repadmin /syncall server1.microsoft.com dc=contoso,dc=com

Asagidaki komut ile USN numaralarini ve detayli bilgiye ulasabilirsiniz.

repadmin /showutdvec . dc=contoso,dc=com server2.microsoft.com

Asagidaki komut ile tüm DC’ler arasindaki replikasyon özetlerine ulasabiliriz.

repadmin /replsummary

Tesekkürler,

Sinem Erdem