İki DC neden farklı? Replication metadata, çatışma ve yakınsama
İki DC’nin farklı değer göstermesi her zaman arıza değildir. Değişikliğin version ve originating stamp bilgisiyle local USN’yi ayır; gecikme ile çatışmanın nasıl farklı sonuçlar verdiğini gör.
1. Core Mechanism / Temel mekanizma
10.02 değişikliğin yayılmasını anlattı. Burada aynı objectGUID’ye sahip nesnenin tek değerli department alanını iki replica’da karşılaştırıyoruz. SYSVOL, linked-value ve naming conflict bu modelin farklı kuralları olan komşu konularıdır.
Arabirimler ve belirtimler
- dwVersion: originating değişiklikte artar; replication tek başına yeni version üretmez.
- ftimeLastOriginatingChange: son originating değişikliğin zamanı; varış zamanı değildir.
- uuidLastOriginatingDsaInvocationID: son değişikliği üreten database instance’ı; kullanıcı kimliği değildir.
- usnOriginatingChange kaynak instance’ın; usnLocalChange gözlem yapılan replica’nın numarasıdır.
Bir değer, bir değişiklik damgası
department=Finance değişikliği DC-A’da yapıldı. Attribute version artar; origin zamanı ve invocation ID kaydedilir. DC-B bu değişikliği aldığında origin bilgilerini korur. Kendi database’ine uyguladığı işlem için local USN farklıdır.
Tablodaki origin-A/B yalnız eğitim etiketleridir. Native alan eşlemesini yukarıda görebilirsin; tablo gerçek API dump’ı değildir. Metadata değişikliği üreten DC instance’ını gösterir; onu başlatan kişi için ayrı audit geçmişi gerekir.
9000 mı yeni, 14000 mi?
DC-A localUSN=9000 ve DC-B localUSN=14000 karşılaştırmasını küresel zaman çizgisi gibi kullanamazsın. Numaralar farklı database instance’larının yerel sıralamasına aittir. Aynı değişiklik iki DC’de farklı local USN alabilir.
Önce objectGUID, attribute ve naming context’in gerçekten aynı olduğundan emin ol. Sonra originating metadata’yı karşılaştır. Farklı nesne veya non-replicated attribute için yakınsama beklemek, yanlış soruyu çözmeye çalışmaktır.
Çatışmada yalnız saate bakılmaz
Örnekte A’daki version=4, originTime=09:00; B’deki version=3, originTime=09:05. Daha yüksek version önce karşılaştırılır; bu nedenle burada Finance seçilir. “En son görünen saat kazanır” kuralı bu sonucu yanlış tahmin eder.
Aynı version’da originating zaman karşılaştırılır; o da eşitse originating DSA için deterministic tie-break vardır. Bu son karşılaştırmanın UUID sıralamasını eğitim etiketleriyle taklit etmiyoruz. Eşit version/zaman örneği modelde açıklanması gereken bir sınır olarak kalır.
Yakınsama ile uygulama durumunu ayır
Yeni yazımlar durursa ve ilgili değişiklikler replica’lara başarıyla taşınırsa bu tek attribute örneği ortak değere yakınsar. Aynı anda bütün forest’ın tek snapshot’ı oluşmuş sayılmaz. Multi-object okuma, aralarında yeni değişiklikler olan nesneleri birlikte gösterebilir.
Directory değeri eşitlendiğinde eski token, Kerberos ticket veya açık SMB session yeniden yaratılmaz. 08.01’deki context yaşı ile buradaki replica yaşı farklıdır. Kapanışta hem directory görünümü hem yeni kaynak davranışı doğrulanmalıdır.
Her attribute replike edilmez
department eşitlenmişken badPwdCount farklı olabilir. badPwdCount domain içindeki her DC’de ayrı tutulur ve replike edilmez. Bu sayaç için iki DC’nin farklı değer göstermesi, department metadata’sıyla aynı yakınsama beklentisine tabi değildir.
Durum ve veri akışı
- Aynı objectGUID, attribute ve naming context için iki snapshot al.
- DC-A’daki originating write version ve origin stamp üretir.
- Replication gecikirse DC-B önceki değeri göstermeyi sürdürebilir.
- Çatışmada version, sonra originating time karşılaştırılır; eşitlikte ayrı tie-break gerekir.
- Kazanan değişiklik diğer DC’ye uygulanırken origin bilgisi korunur, local USN değişir.
- Yakınsama yalnız ilgili directory durumunu eşitler; kişi audit’i ve session ayrı kalır.
2. Exploitation / İstismar
Broken trust assumption
Tek DC’nin görünümünü forest gerçeği, en büyük local USN’yi de en yeni değişiklik sanmak.
Technical prerequisites
- Etki iddiası için ilgili target, effective hak ve observed context belirlenmiş olmalıdır.
Exploitation mechanism / İstismar mekanizması
Yanlış karşılaştırma, meşru değişikliği geri alma veya yanlış replica’ya güvenme kararına yol açabilir. Metadata origin bilgisini taşır; bunu kullanıcıya ya da kötü niyete çevirmek ayrı audit kanıtı olmadan mümkün değildir.
Etkili değer ile actor aynı soru değildir
Bir yazımın kazandığını görmek onun onaylı olduğunu söylemez. Tersine gecikmiş bir replica görmek de kasıtlı engelleme kanıtı değildir. İzin ve change-owner kayıtlarını outcome’dan ayrı değerlendir.
Kuralı yanlış veri türüne genişletme
Bu örnek tek değerli department içindir. Group membership linked-value metadata’sı veya aynı adla nesne oluşturma çatışması için aynı tabloyu kopyalamak doğru değildir.
3. Defense & Detection / Savunma ve tespit
Telemetry scope
- ObjectGUID, attribute, naming context, DC instance ve snapshot zamanını kaydet. Partner ve son başarılı replication bilgisi teşhisi daraltır; kullanıcı atfı için audit ayrı incelenir.
Events and relevant fields
- Olay kayıtları yalnız uygun üretim/toplama koşullarında kendi producer’ının kararını gösterir; bütün erişim zincirini kanıtlamaz.
Kanıtın kapsamını koru
ObjectGUID, attribute, naming context, DC instance ve snapshot zamanını kaydet. Partner ve son başarılı replication bilgisi teşhisi daraltır; kullanıcı atfı için audit ayrı incelenir.
Üretim ve toplama kapsamını bilmeden eksik olayı negatif kanıt sayma. Yeni davranışı ilgili owner’ın gözlemiyle doğrula.
Detection logic · XPath
*[System[(EventID=5136)]]Query assumptions
- Bu seçim yalnız uygun Windows Security log’larındaki aday olayları seçer. Dersin JSON gözlem tablosu Windows event değildir.
- ObjectGUID, attribute, naming context, DC instance ve snapshot zamanını kaydet. Partner ve son başarılı replication bilgisi teşhisi daraltır; kullanıcı atfı için audit ayrı incelenir.
False positives
- Meşru değişiklikler, cache/context kullanımı veya geçici bağlantı sorunu aynı belirtiyi üretebilir; bu seçim saldırı kararı vermez.
Hardening
- Replication bağımlılıklarını, partner erişimini ve saat sağlığını aynı olayın farklı koşulları olarak kontrol et.
- Tek replica ile kapanış yapma; ilgili NC ve nesnenin karşılıklı görünümünü doğrula.
- Değişiklik onayı ile audit kaynağını uzlaştır; metadata’dan kişi adı üretme.
Örnekler üzerinde oku / Read the examples
ÖRNEĞİ BİRLİKTE OKUYALIM
EĞİTİM İÇİN HAZIRLANDIBu gözlem bize neyi söylüyor?
Senaryonun gözlem tablosu · sentetik JSON
4A’daki version 4, B’de 3. Bu çatışmada önce version karşılaştırılır; B’nin saatinin daha geç olması yeterli değildir.
1400014000 yalnız DC-B’nin yerel sırasıdır. DC-A’daki 9000 ile karşılaştırarak hangi değişikliğin kazanacağını bulamazsın.
Aynı belirtiyi farklı nedenler üretebilir. Bu tabloyu dersteki karar sınırlarıyla birlikte karşılaştır.
Bu JSON bir eğitim kaydıdır; Windows çıktısı veya çalıştırılabilir istek değildir.
Bu örneğin kapsamı
Bu tablo eğitim için hazırlanmıştır; Windows Event, API veya gerçek sistem çıktısı değildir. Native alanlarla ilişkisi ve çıkarım sınırı yukarıdaki derste açıklanır.
Ham kaydı aç · MODEL-JSON
{
"kind": "teaching-record",
"synthetic": true,
"scenario": "N02",
"attribute": "department",
"objectIdentity": "toy-17",
"DC-A": {
"value": "Finance",
"version": 4,
"originTime": "2026-10-01T09:00:00Z",
"originInvocationId": "origin-A",
"originUSN": 80,
"localUSN": 9000
},
"DC-B": {
"value": "Ops",
"version": 3,
"originTime": "2026-10-01T09:05:00Z",
"originInvocationId": "origin-B",
"originUSN": 120,
"localUSN": 14000
}
}İki yanlış kanı / Two reality checks
- Sanılan: Local USN büyükse değer daha yenidir.
- Gerçekte: Local USN yalnız kendi database instance’ında sıralama sağlar. Replica’lar arasında origin stamp karşılaştırılır.
- Sanılan: DC’ler eşitlendi; eski session da günceldir.
- Gerçekte: Directory replication token, ticket ve uygulama session’ını yeniden üretmez. Yeni context davranışı ayrı doğrulanır.
SIRA SENDE
Bu hikâyeyi sen çöz.
Bilgiyi hatırlamaktan bir adım ileri: koşulu değiştir, kanıtı oku, kararın nedenini anlat.
1 / 3 · SONUCU TAHMİN ET
DC01 local USN 9000, DC02 local USN 14000. Bu iki sayı neyi kanıtlar?
Bir ipucu
Numaraların ait olduğu database instance’larını düşün.
Cevabın gerekçesini oku
Her database’in yerel sıralamasını; küresel yenilik sırasını değil.
Aynı değişiklik replica’larda farklı local USN alabilir.
2 / 3 · KANITI OKU
Bu tek değerli department çatışmasında hangi değer önce gelir?
- DC01 department
- Finance
- DC01 dwVersion
- 4
- DC01 ftimeLastOriginatingChange
- 2026-10-08T09:00:00Z
- DC02 department
- Sales
- DC02 dwVersion
- 3
- DC02 ftimeLastOriginatingChange
- 2026-10-08T09:05:00Z
Bir ipucu
Önce version, eşitse originating time.
Cevabın gerekçesini oku
Finance; version 4, version 3’ten önce karşılaştırılır.
Daha geç saat, daha düşük version’ı bu karşılaştırmada kazandırmaz.
3 / 3 · KENDİN ANLAT
DC01 ve DC02 yakınsadığında Tunahan’ın açık WS01 session’ı neden otomatik yenilenmiş sayılmaz?
Bir ipucu
Directory kopyası ile oluşturulmuş token/ticket/session’ı ayır.
Cevabın gerekçesini oku
Replication ilgili directory değerini eşitler; daha önce yaratılmış token, ticket ve SMB session’ı yeniden üretmez. Yeni context ve FS01 davranışı ayrıca doğrulanmalıdır.
- Replication’ın directory durumunu eşitlediğini belirttim.
- Eski context’in ayrı yaşa sahip olduğunu belirttim.
Açıklaman otomatik puanlanmaz. Kontrol noktalarını kendi cevabınla karşılaştır.
Bu pratikler öğrenme amaçlıdır; sertifika sınavının puanını etkilemez.
Kaynaklar / Sources
- AD DS replication behavior
Replication behavior overview - Troubleshoot AD replication
Dependencies; resolution methods; event/error tables; showrepl fields - Historical AD replication model
Originating/replicated updates; metadata; filtering; conflict resolution stamp - DS_REPL_ATTR_META_DATA
Members: version, time, originating DSA/invocation ID, originating/local USN - MS-ADTS glossary — replication
originating update; replicated update; replication; stamp; USN - Bad-Pwd-Count attribute
Remarks: non-replicated and maintained separately on each DC