Change Notification은? (15초 + 3초)
같은 사이트(인트라사이트)에선 변경 커밋 후 약 15초 뒤 첫 파트너에 통지하고, 다음 파트너들은 3초 간격으로 순차 통지합니다(혼잡 방지 목적). 사이트 간(인터사이트)은 기본적으로 스케줄/주기 기반이며(기본 180분, 최소 15분), 필요 시 **Site Link의 Options=1(UseNotify)**로 알림 기반을 켤 수 있습니다. Microsoft Learn+2Microsoft Learn+2
- “지금 당장 복제(Replicate now)”
GUI의 Replicate now(대상 DC의 연결 개체에서)나 repadmin /syncall, repadmin /replicate로 대상 DC의 인바운드 복제를 트리거합니다. 8452 오류 문서도 “Replicate now는 대상 DC에서 수행”됨을 전제합니다. Microsoft Learn+1
- 기본 동작(High-Watermark & UTD Vector)
대상 DC는 요청 시 자기 High-Watermark(특정 원본 DC에 대해 받은 최신 USN)와 UTD Vector(모든 원본 DC별로 받은 최신 USN 표)를 제시해, 이미 받은 변경은 건너뛰고 필요한 것만 받습니다(Propagation Dampening). PowerShell Get-ADReplicationUpToDatenessVectorTable/Repadmin으로 확인합니다. TECHCOMMUNITY.MICROSOFT.COMMicrosoft Learn
------------------------------------------------------------------------------------------------------------------------------------------------------------
*복제 기본동작
- 토폴로지/파트너 선정
- 각 DC의 NTDS Settings 아래 인바운드 Connection Object가 “어느 원본 DC에서 받을지”를 정의합니다.
- KCC가 인트라사이트는 양방향 링+지름길, 인터사이트는 스패닝 트리로 자동 구성·조정합니다(ISTG가 사이트 간 연결 담당). Microsoft Learn
- 어떤 파티션이 복제되나
- 스키마/구성/도메인 Naming Context(=Directory Partition) 별로 독립 복제됩니다.
- DNS는 ForestDnsZones(포리스트 단위), **DomainDnsZones(도메인 단위)**라는 애플리케이션 파티션을 사용합니다. Microsoft Learn+1
- 변경이 생기면 DC가 하는 일
- 쓰기 커밋 시 해당 속성의 버전/타임스탬프/원본 DC와 USN이 기록됩니다.
- DC 인스턴스 식별자인 InvocationID가 USN과 짝이 되어 “어느 DB 버전에서 나온 변경인지”를 구분합니다. Microsoft Learn
- 인트라사이트 알림(Notify) 타이밍
- 기본 15초 후 첫 파트너에 통지, 이후 3초 간격으로 다음 파트너에 순차 통지(혼잡 방지). 값은 파티션별로 조정 가능(msDS-Replication-Notify-*). Microsoft Learn
- 인터사이트 주기/스케줄
- 기본은 스케줄·주기 기반(최소 15분). 필요 시 Site Link Options=1로 알림 기반을 켤 수 있습니다(링크별). Microsoft Learn
- 왜 “Pull”인가(요청형 전송)
- 실제 데이터 전송은 대상 DC가 원본에 요청합니다. DRSR 프로토콜의 **IDL_DRSGetNCChanges**가 변경 묶음을 끌어오는 핵심 호출이며, ReplicaSync 등은 결국 이 호출을 유도합니다. Microsoft Learn
- 대상 DC가 보내는 것: HWM + UTD 벡터
- 대상은 해당 원본에 대한 High-Watermark(직접 받은 최신 USN), 모든 원본별 Up-to-Dateness(UTD) Vector를 제시합니다. 덕분에 이미 받은 변경은 제외하고 필요한 것만 받습니다. Get-ADReplicationUpToDatenessVectorTable로 확인 가능. Microsoft LearnTECHCOMMUNITY.MICROSOFT.COM
- 원본 DC가 보내는 것: 변경 묶음
- 원본은 요청 범위(NC·필터)에 맞춰 개체/속성 단위 변경을 패키징해 응답합니다.(DRSR 스펙)
- 링크 값(그룹 멤버십 등)은 링크-값 복제 규칙에 따라 전달됩니다. Microsoft Learn
- 충돌 처리(Conflict Resolution)
- 다중 마스터 특성상 동시 수정이 생길 수 있습니다. AD의 기본 규칙은 **“Last-Writer-Wins(마지막 작성자 우선)”**이며, 속성 버전·타임스탬프 등을 기준으로 정리됩니다. Microsoft Learn
- 전파 억제(Propagation Dampening)
- HWM + UTD가 루프성 재전파를 막아 중복 전송 없이 빠르게 수렴합니다. (HWM은 “내가 그 원본에서 어디까지 받았는가”, UTD는 “각 원본 DC별로 내가 본 최신 USN”.) Microsoft LearnTECHCOMMUNITY.MICROSOFT.COM
- 특별 동작: 긴급(Urgent) 복제
- 잠금/암호 변경 등 일부 변경은 기존 알림·주기를 무시하고 즉시 파트너를 강제 알림하여 빠르게 퍼집니다. TECHCOMMUNITY.MICROSOFT.COM
- 건강 상태·진단 포인트
- 토폴로지/지연 문제: KCC 경고(예: Event 1865)나 1311 계열 점검.
- 잔존(lingering) 개체: Strict Replication Consistency와 repadmin /removelingeringobjects로 정리(1388/1988/2042 이벤트).
- PowerShell: Get-ADReplication*(Partner/Queue/UTD), Repadmin: /showrepl, /showobjmeta, /showutdvec. Microsoft Learn+3Microsoft Learn+3Microsoft Learn+3
------------------------------------------------------------------------------------------------------------------------------------------------------------
Lingering Objects(잔존 개체)
오래(보통 TSL 초과) 복제에서 이탈한 DC가 돌아오면, 다른 DC에선 이미 사라진 객체가 한 DC에만 남아 불일치/오류(이벤트 1388/1988)를 유발합니다. 해결은 원인 DC 격리·정상화 후 repadmin /removelingeringobjects(또는 LOL 도구)로 정리, 필요 시 Strict Replication Consistency를 활성화합니다. Microsoft Learn+2Microsoft Learn+2
[추가 1] USN Rollback이 뭔가요? 복구는?
스냅샷/이미지 복원 등 지원되지 않는 방식으로 DC가 과거로 되감기면, 같은 InvocationID에서 예전 USN 재사용으로 복제가 조용히 멈춥니다. 일반적 대응은 해당 DC 강제 제거 + 메타데이터 정리 → 재승격이며, Windows Server 2012+의 VM-GenerationID가 일부 안전 장치를 제공합니다. Microsoft Learn
[추가 2] “누가/어디서” 변경했는지 추적하려면?
- 복제 메타데이터: repadmin /showobjmeta로 속성 버전/원본 DC/USN/시간 확인.
- 감사(Auditing): GPO로 Advanced Audit Policy의 Directory Service Changes 등을 켜고 대상 객체 SACL을 설정하면 5136/5137/5139/5141 등의 이벤트가 남습니다. Microsoft Learn+1
[추가 3] 복제 오류 1753 “There are no more endpoints…”
대부분 RPC 통신 문제입니다. EPM(135/TCP)은 열려도 **동적 RPC 포트(기본 49152–65535/TCP)**가 막혀 발생합니다. 양방향으로 135 + 동적 포트 허용, 필요 시 고정 RPC 포트로 제한 후 그 포트만 여세요. RedmondmagMicrosoft Learn
[추가 4] AD 복제/도메인 운영에 필요한 포트
핵심은 **135/TCP(EPM) + 동적 RPC(49152–65535/TCP)**이며, 운영엔 Kerberos(88), LDAP(389/636), SMB(445), DNS(53) 등도 필요합니다. 공식 포트 가이드와 RPC 동적 포트 문서를 기준으로 방화벽을 설계하세요. Microsoft Learn+1
[추가 5] DC 부팅 실패(c00002e2 등)와 DFSR SYSVOL 2213
- “Directory Services could not start” 류는 NTDS.DIT 손상/부재, 디스크 가득 참, 전원 장애 등 원인 점검 후 DSRM 복구나 재구축이 필요합니다.
- DFSR SYSVOL Dirty Shutdown 시 이벤트 2213이 발생하며, 원인 점검 및 백업 확보 후 ResumeReplication 절차로 재개합니다. Microsoft Learn+2Microsoft Learn+2