Merhaba,
Active Directory replication’dan bahsedeceğim. AD replicatiın 4 group altında sınıflandırılır.
1) Multimaster
Tüm DC’lerde değişiklik yapılır.
2) Pull Replication
Replikasyon her zaman Pull olarak çalışır. Source DC destination DC’ye değişiklikleri göndermez, destination DC source DC’den değişiklikleri alır.
3) Store and Forward
Sadece değişiklik yapılan attribute’ler belirlenir ve diğer DC’lere update edilir.
4) State Based Replication
Sadece değişiklik yapılan attribute’ler replike edildiği için herhangi bir conflict durumu söz konusu olmaz.
Directory Partition Replicas:
Schema Partition’ında Attribute ve Classes’lar bulunur.Fores wide’dır.Bir Forest altında birden fazla domain olabilir. Bu domain’lerin hepsini kapsıyorsa buna Forest wide denir.
Configuration Partition’ında Forest’in configurasyon’u ile ilgili bilgiler bulunur.Forest wide’dır.
Domain Partition’ında Userlar, Computer’lar ve Group Policy’ler bulunur. Domain wide’dır. Sadece bir domain’i kapsıyorsa buna Domain wide denir.
Application Partition’ında 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’dır.
Changes to Attributes:
Bir DC’de yapılan herhangi bir değişiklik Attribute düzeyinde yapılır. Tüm değişiklikler replikasyon zamanında alınır ve zamana bağlı değildir. DC’ler Kerberos v 5 kullanır.
Effect of Schema Changes on Replication:
DC’ler arası schema’ın versiyon’unun aynı olması gerekmektedir. Eğer schema versiyon’ları aynı değilse replikasyon bloklanır ve schema versiyon’u aynı olana kadar replike etmez. Schema versiyon’ları aynı olduğu zaman replikasyon yeniden programlanır.
Change Notification:
Bir DC’deki object’de herhangi bir değişiklik yapıldığında buna change notification denir. Aynı 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üşer.15 saniye sonra DC’ler bu bilgiyi replike eder ve bir sonraki replikasyon gecikmesi 3 saniye olur.
Gecikme süreleri aşağıdaki 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 arasında replikasyon zamanı geldiğinde replike edilir.Replikasyon süresi konfigure edilebilir. Bu süre en düşük 15 dk yapılabilir.
Ayrıca change notification ADSI Edit’den aşağıdaki değerler ile enable edilebilir. Böylelikle herhangi bir object’de değişiklik olduğunda change notification aynı site içindeymiş gibi hareket eder.
ADSI Edit içerisinden Configuration Partition içinde aşağıdaki değerler 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 yapılan değişiklik, taşıma ve silme gibi işlemlerin hepsi Originating Update olarak adlandırılır. Originating update’in yapıldığı DC’ye Originating DC denir.
Active Directory içinden herhangi bir object silindiğinde isDeleted attribute’ü TRUE olur ve silinen attribute Directory Partititon içinde Deleted Objects Container’ına taşınır. Bu container gizlidir sadece ADSI Edit’den bakılabilir.
Update Sequence Number (USNs)
Object’de bir değişik değişiklik yapıldığında Update Sequence Number’i artar.Bu artış bir bir olur. Her DC üzerinde 64 bit local USN counter vardır. USN counter object’de değişiklik yapıldığında o object’in USN numarasını arttırır.
Aşağıdaki komut ile object’in USN numaralarına bakabiliriz
repadmin /showobjmeta DCLIST
<object_DN>
Her DC’nin bir Object GUID (DSA GUID) numarası vardır. Replikasyon sırasında DC’ler arasında Object GUID numarası kullanılır. Invocation ID ( Database GUID) Active Directory kurulurken Invocation ID oluşur ve bu ID her Active Directory kurulduğunda değişir.Ayrıca restore sonrasında Object GUID numarası değişmiyorken Invocation ID değişmektedir.
Bir DC üzerinde bir object oluşturduğumuzda ve bu object Source DC üzerinden Destination DC’ye replike olup, destination DC üzerinde bu object’in password’ü değiştirildiğinde tekrar Source DC’ye replike edildiğinde oluşan attribute’lerin USN değerlerini aşağıda bulabilirsiniz.
Replication Request Filtering
Replication Filter demek, sadece değişiklik yapılan attribute’ün replike edilmesi demektir.
Bu iki listede bulunur.
1) Up-to-Dateness Vector
Tüm DC’lerin directory partition’larındaki attribute’lerin en son aldıkları USN numaralarını bulundurur.
2) High Watermark (direct up-to-dateness vector)
Bir attribute Source DC’den Destination DC’ye replike edildiğinde en son aldığı USN numarasına High Watermark değeri denir.
Up-to-Dateness vector ve High Watermark birlikte çalışırlar.Destination DC change notification’ı Source DC’den almak istediği zaman up-to-dateness vector ve high watermark değerlerini Source DC’ye gönderir. Source DC bu değerleri kendinde bulunan Up-to-dateness vector ve high watermark değerleri ile karşılaştırır.Bu değerler eşit ise ve Source DC’de bulunan değer düşük ise replike etmez. Eğer Destination DC’de bulunan değer düşük ise replike eder.
Böylelikle sonsuz replikasyon engellenmiş olur.
Up-to-dateness vector’e aşağıdaki komut ile bakılabilir.
Repadmin /showvector
Multimaster Conflict Resolution Policy
Eğer ayrı site’larda bulunan DC’ler üzerinde bir attribute aynı anda değiştirildiyse ve versiyon numaraları 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 kazanır.
Varolan isimli bir object oluşturulduğunda varolan object ismi "CN=ABC" ise 2. oluşturulan object ismi "CN=ABC*CNF:<GUID>" olarak değiştirir ve eski olan isim silinir.
Replication of Linked and Nonlinked Attribute
Bir object’e bağlı olarak bazı back link’ler eklenebilir. Bunlar object’in membership’leri olabilir.Back link limit’i 1,200 values’dur. Bu değerden fazla back link eklenmez.
Replication of Deletions
Bir object silindiğinde isDeleted attribute’ü 1 olur ve object Deleted Object Container’ina taşınır.Tombstone life time süresi kadar durur.
Her DC’nin ve her object’in bir tombstone life time değeri vardır. Bu zaman dolunca DC tekrar demote\promote edilir. Object’ler için ise silindikten sonra tombstone life time süresi başlar. Süresi dolduğunda garbage collection tarafından silinir.
Lingering Objects
A object’inin DC1 ve DC2 üzerinde olduğunu düşünelim. Herhangi bir sebepten dolayı DC2 kapatıldığında DC1 üzerinden A object’si silindiğinde tombstone life time’a düşer. Tombstone life time süresi kadar bekleyip ordanda silindiğini düşünürsek, DC2 üzerinde eski tarhli object hala vardır. DC2 açıldığında bu object’i replikasyon etmeye çalışırsa directory partition üzerinde bazı lingering object’ler oluşur ve replikasyon engellenir.
Event ID:1988
Bu durumda öncelikle aşağıdaki komut ile lingering object’ler silinir.
/removelingeringobjects <Dest_DC_LIST> <Source DC GUID> <NC>
[/ADVISORY_MODE]
Eğer yukarıdaki komut ile lingering object’leri silmeyi başaramazsak 2. Bir yöntem olarak aşağıdaki 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 yapmasına izin verir ve default olarak (0)’dır.
Eğer biz Strict replication değerini (1)’den (0)’a değiştirirsek lingering object’lerin replikasyon yapmasına izin veririz. Bu durumda loose replication değeri (1) olur.
Böylelikle lingering object’lerin replikasyon yapmasına izin vermiş oluruz.
Biz bu yöntemi zor durumda kaldığımız zaman uygulamayı öneriyoruz. Bunun nedeni bu işlemi yaptığımız zaman replikasyonu zorlamış oluyoruz diğer DC’ler üzerine de lingering object’ler yayılabilir.
Registry değerini aşağıda bulabilirsiniz.
Default(daily)The value for the 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 alınır ve DC herhangi bir hata ile karşılaştığında bu hatayı onarmak için backup’dan restore edilir ve diğer DC’lerden değişiklikleri aldığı için non-authoritative restore denir.
Authoritative Restore
Non-authoritative restore’da silinen bir object geri gelmez. Eğer silinen bir object’i tekrar oluşturmak istiyorsak authoritative restore yapılır. Bu işlem için ilk önce non-authoritative restore işlemi yapılır. Backup’dan restore edilir. Daha sonra restart etmeden ntdsutil içerisinden authoritative restore komut’ları ile silinen object yeniden oluşturulur. Bu işlemden sonra restart işlemi yapılır.
Silinen ve restore edilen bir user’in back link’lerinin yani membership’lerinin gelmesi için ldifde dosyası kullanılarak import edilir.
Active Directory Replication Topolojy
Active Directory replication topology’sini ve connection object’sini aynı site içerisinde KCC oluşturur. ISTG farklı site’lar için her site içinden rastgele bir DC seçerek connection object’i
oluşturur.
KCC her DC üzerinde vardır ve her 15 dk’da bir çalışır.Connection object’i oluşturur siler. Object’leri AD databaze içinden okur ve yazar.
Inter-site connection object’leri içinse ISTG bu görevi yapar.
Aşağıdaki ekran görüntüsünde detaylı örneklendirilmiştir.KCC Active Directory database’i ile konuşma ihtiyacı hisseder ve KCC’nin AD Database’ine ulaşmasını sağlayan servis DSA servisidir.
Active Directory database’indeki kayıtların manage edilmesini sağlayan servis ise ESE servisidir.
DSA:Ntdsa.dll
Extensible Storage Engine (ESE):Esent.dll
KCC RPC kullanır. KCC diğer DC’ler üzerindeki KCC’lerin replikasyon sırasında aldığı hataları RPC ile log’lar. KCC farklı site’da bulunan KCC ile haberleşmez. Forest’in Konfigurasyon’u Configuration Partition içinde Global Data içinde bulunur. KCC Global Data içinden Forest Configuration ile ilgili bilgilere ulaşır.
KCC’nin ve ISTG’nin oluşturduğu topology’leri aşağıda bulabilirsiniz.
Her site konfigurasyon’u içinde bir connection object’leri, Server’lar, directory kurulum sırasında oluşan NTDS settings object’leri, Subnet’ler, Site link’ler ,Site link bridges ve cross-reference object’ler bulunur.
Kendimiz site link oluşturup site link bridge yapabiliriz. Böylelikle istediğimiz site’lar için bridge yapabiliriz. Cross-reference object bir Active Directory kurulurken oluşur ve replikasyon sırasında cross-reference object değeri ile DC’lerin AD database’ine ulaşılır.
Replication Between Sites
Default olarak her site’dan bir tane bridge server ISTG tarafından seçilir.Eğer default olarak her site’dan bir DC seçilmesini istemiyorsak manuel connection object’i oluşturup bridgehead server seçilebilir. Küçük yapılı şirketlerde default olarak her site’dan bir tane DC seçilmesi önerilebilir ancak büyük yapılı şirketlerde bu gereksiz network trafiğine neden olur.
Aşağıdaki komut ile bridgehead server’ları görebiliriz.
repadmin /bridgeheads
Ayrıca bridgehead server olduğunda bir DC’nin aşağıdaki attribute’leri değişir.
ISTG bridgeheadTransportList attribute
(Back link)bridgeheadServerListBl
Site Link Settings
DC’lerin hangi DC ile replikasyon yapmasını belirleyen site linkdir. Bu site link üzerinden connection object’leri oluşur.
Schedules; Replikasyon zamanı geldiğinde hangi saat’ler arasında replikasyon yapılacağı belirlenebilir.
Schedule aynı site içinde default olarak 1 saat’dir. Eğer change notification yoksa aynı site içinde DC’ler saat başı replikasyon yaparlar.
Replikasyon her zaman cost değeri düşük olan connection object’i üzerinden yapılır.
Site’lar arası replikasyon defeult olarak 180 dk’dır. Bu aralık en düşük 15 dk olabilir.
Örnek olarak A-B-C site’larının olduğunu düşünürsek, Bridge all site seçeneği default olarak geldiği gibi enable’sa A-B arasında ve B-C arasında connection object’leri varsa ama A-C arasında connection object’i yoksa yinede A site’inda bulunan bir DC C site’ında bulunan bir DC ile replikasyon yapabilir.
Replikasyon zamanı ise A-B arasında 13:00 am\16:00 pm 90 dk’da bir, B-C arasında 12:00 am\15:00 pm 60 dk’da bir yapılıyorsa A-C arasında yüksek olan interval yani 90 dk’da bir saat olarak ise kesişen saat’ler arasında yani 12:00 am\15:00 pm arasında replikasyon yapılabilir.
Bridge All Site link seçeneği default oalrak açıktır ancak bu seçenek gereksiz network trafiğini engellemek için disable edilebilir. Bu işlem bazı DFS problem’lerine neden olabilir ancak aşağıdaki komut ile disable edersek herhangi bir sorun oluşmaz.
W2K3 SP1 : repadmin /siteoptions W2K3_BRIDGES_REQUIRED
Ayrıca KCC herhangi bir DC’ye ulaşamazsa otomatik olarak başka bir DC’ye yönlendirir.
Aşağıdaki örneklerde detaylı olarak görebilirsiniz.
Global Catalog Replication
Global catalog olan DC tüm site’larda bulunan DC’lerin domain partition’larını okur. Bir attribute’e ulaşılacağı zaman global catalog içerisinden ulaşılır. 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 kaydı oluşur. Ayrıca isMemberOfPartialAttributeSet attribute’ü schema içinde TRUE olur.Böylelikle diğer DC’lerin domain partition’larını global catalog olan DC okuyabilir.
Aşağıdaki şekilden detaylı bilgiye ulaşabilirsiniz.
Urgent Replication
Bazı değişiklikler urgent replication olarak adlandırılır. Bunlar aşağıdaki değişikliklerdir. Bu değişiklikler olduğunda replikasyon süresi beklenmeden değişiklik replike edilir. Site’lar arasında ve aynı site içerisinde de bu şekildedir.
Replication Tools and Settings
Aşağıdaki komutlar ve yöntemler ile replikasyon’da oluşan problemleri ve replikasyon ile ilgili detaylı bilgiyi görebilirsiniz.
1) Repadmin
2) Replmon
3) DCDiag
4) NTDSUtil
5) Events and Registry Entries
6) Network Ports and Protocols
Aşağıdaki komut server’in replikasyon partner’i ve replikasyon tarihleri ile ilgili detaylı bilgi verir.
repadmin /showrepl server1.microsoft.com
Aşağıdaki komut ile iki DC arasında replikasyon’u tetikleyebiliriz.
repadmin /replicate rootdc01.contoso.com rootdns.microsoft.com dc=contoso,dc=com
Aşağıdaki komut ile bir DC’nin tüm DC’ler ile replikasyon’unu tetikleyebiliriz.
repadmin /syncall server1.microsoft.com dc=contoso,dc=com
Aşağıdaki komut ile USN numaralarını ve detaylı bilgiye ulaşabilirsiniz.
repadmin /showutdvec . dc=contoso,dc=com server2.microsoft.com
Aşağıdaki komut ile tüm DC’ler arasındaki replikasyon özetlerine ulaşabiliriz.
repadmin /replsummary
Teşekkürler,
Sinem Erdem