Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

Warning: DsGetDcName returned information for \\[...], when we were trying to reach [...].

기존 DC(testad1)가 있는 Active Directory에 새롭게 DC(testad2)를 추가했는데, dcdiag의 Advertising 단계에서 실패했습니다.

C:\temp> dcdiag /test:advertising

Directory Server Diagnosis

Performing initial setup:
   Trying to find home server...
   Home Server = TESTAD2
   * Identified AD Forest.
   Done gathering initial info.

Doing initial required tests

   Testing server: Default-First-Site-Name\TESTAD2
      Starting test: Connectivity
         ......................... TESTAD2 passed test Connectivity

Doing primary tests

   Testing server: Default-First-Site-Name\TESTAD2
      Starting test: Advertising
         Warning: DsGetDcName returned information for \\testad1.testad.com, when we were trying to reach TESTAD2.
         SERVER IS NOT RESPONDING or IS NOT CONSIDERED SUITABLE.
         ......................... TESTAD2 failed test Advertising


   Running partition tests on : DomainDnsZones

   Running partition tests on : ForestDnsZones

   Running partition tests on : Schema

   Running partition tests on : Configuration

   Running partition tests on : testad

   Running enterprise tests on : testad.com

이와 함께 새로 추가된 DC의 공유 폴더 목록을 보면,

C:\temp> net share

Share name   Resource                        Remark

-------------------------------------------------------------------------------
C$           C:\                             Default share
IPC$                                         Remote IPC
print$       C:\Windows\system32\spool\drivers
                                             Printer Drivers
ADMIN$       C:\WINDOWS                      Remote Admin
The command completed successfully.

SYSVOL과 NETLOGON 공유가 없습니다. 즉, DC 간의 복제가 정상적으로 이뤄지지 않고 있는 것입니다. 실제로 "Group Policy Management"로 들어가 복제 상태를 확인해 보면,

sysvol_not_created_1.png

"Active Directory"의 "SysVol"에 대해 "Inaccessible"이라면서, "GPOs"는 "Data is uncollected"로 출력됩니다.




이에 대해 검색해 보면 다음의 글을 볼 수 있습니다.

How to force an authoritative and non-authoritative synchronization for DFSR-replicated SYSVOL (like "D4/D2" for FRS)
; https://support.microsoft.com/en-us/help/2218556/how-to-force-an-authoritative-and-non-authoritative-synchronization-fo

정리해 보면, 이러한 복제 문제를 복구하는 방법으로 2가지(D2, D4)가 있는데 이 방식은 예전에 FRS(File Replication Service)를 쓰던 시절에 적용하는 방식이고, FRS 서비스를 대체한 DFSR(Distributed File System Replication)을 쓰는 지금은 "D2"에 해당하는 "non-authoritative synchronization" 방식과 "D4"에 해당하는 "authoritative synchronization" 방식이 있습니다.

일단, 제가 겪은 문제에서는 비교적 간단한 방식인 "non-authoritative synchronization"은 해결책이 못 되었습니다. 대신 "authoritative synchronization"으로 해결했으므로 저도 이 글에서는 후자의 방법을 (알고 있으면 전자의 것으로도 써먹을 수 있으므로) 설명하겠습니다.

우선, 기존에 있던 DC(TESTAD1)에 로그인해 "adsiedit.msc"를 실행시켜 다음의 경로에 있는,

CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=TESTAD1,OU=testad,DC=com;

값 2개를 변경합니다.

msDFSR-Enabled=FALSE
msDFSR-options=1

그다음 신규 서버(TESTAD2) 항목에 대해서는,

CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=TESTAD2,OU=testad,DC=com;

msDFSR-Enabled 값만 FALSE로 변경합니다. 이제 변경 사항을 신규 DC(TESTAD2)로 전파하고,

c:\temp> Repadmin /replicate TESTAD2 TESTAD1 DC=testad,DC=com
Sync from testad1 to TESTAD2 completed successfully.

이 상태에서 신규 DC(TESTAD2)의 "DFSR(DFS Replication)" 서비스를 재시작하면 이벤트 로그에 다음과 같은 내용의 4114 항목이 출력되는 것을 볼 수 있습니다.

The replicated folder at local path D:\foldername has been disabled. The replicated folder will not participate in replication until it is enabled. All data in the replicated folder will be treated as pre-existing data when this replicated folder is enabled.


비활성화(disabled) 되었다고 하는데, 의도한 대로 된 것입니다. 다시 처음에 실행해 두었던 "adsiedit.msc"로부터 기존 DC의 항목에 대해 "msDFSR-Enabled" 값을 "TRUE"로 돌려놓습니다.

CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=TESTAD1,OU=testad,DC=com;

msDFSR-Enabled=FALSE

이번에도 신규 DC로 변경 내용을 전파하고,

c:\temp> Repadmin /replicate TESTAD2 TESTAD1 DC=testad,DC=com
Sync from testad1 to TESTAD2 completed successfully.

기존 DC에서 "DFSRDIAG POLLAD" 명령어를 실행하면 이제 해당 서버의 이벤트 로그에는 4602 항목이 보이고, 신규 DC에서는 "DFSR" 서비스를 재시작하면 여전히 4114 항목이 나타나게 됩니다. 자, 이제 마지막으로 adsiedit.msc에서 신규 DC(TESTAD2)에 대해 설정했던 "msDFSR-Enabled" 값을 "TRUE"로 돌려놓고,

CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=TESTAD2,OU=testad,DC=com;

msDFSR-Enabled=FALSE

(혹시나 싶어 Repadmin으로 전파도 한 다음) 신규 DC(TESTAD2)에서 "DFSRDIAG POLLAD" 명령을 실행해 주면 끝입니다.




이후 신규 DC에서는 다음과 같은 이벤트 로그가 남지만,

The DFS Replication service initialized SYSVOL at local path C:\WINDOWS\SYSVOL\domain and is waiting to perform initial replication. The replicated folder will remain in the initial synchronization state until it has replicated with its partner testad1.testad.com. If the server was in the process of being promoted to a domain controller, the domain controller will not advertize and function as a domain controller until this issue is resolved. This can occur if the specified partner is also in the initial synchronization state, or if sharing violations are encountered on this server or the synchronization partner. If this event occurred during the migration of SYSVOL from File Replication service (FRS) to DFS Replication, changes will not replicate out until this issue is resolved. This can cause the SYSVOL folder on this server to become out of sync with other domain controllers.


잠시 시간이 지나고 나면 정상적으로 SYSVOL 폴더가 복제되었다는 로그가 생성되고,

Log Name: DFS Replication
Source: DFSR
Date: 2020-03-08 오후 3:05:44
Event ID: 4604
Task Category: None
Level: Information
Keywords: Classic
User: N/A
Computer: TESTAD2.testad.com
Description:
The DFS Replication service successfully initialized the SYSVOL replicated folder at local path C:\WINDOWS\SYSVOL\domain. This member has completed initial synchronization of SYSVOL with partner testad1.testad.com. To check for the presence of the SYSVOL share, open a command prompt window and then type "net share".

Additional Information:
Replicated Folder Name: SYSVOL Share
Replicated Folder ID: 2C4C1BC4-6213-4639-92F5-88A8BE91F582
Replication Group Name: Domain System Volume
Replication Group ID: 11C62D01-6007-4604-86F2-0956DB5C219D
Member ID: C1CE3843-9225-43E6-B7AB-05EC8E5AA431
Sync partner: testad1.testad.com


다른 명령어로도 정상적으로 SYSVOL 공유가 된 것을 확인할 수 있습니다.

C:\temp> net share

Share name   Resource                        Remark

-------------------------------------------------------------------------------
C$           C:\                             Default share
IPC$                                         Remote IPC
print$       C:\Windows\system32\spool\drivers
                                             Printer Drivers
ADMIN$       C:\WINDOWS                      Remote Admin
NETLOGON     C:\WINDOWS\SYSVOL\sysvol\testad.com\SCRIPTS
                                             Logon server share
SYSVOL       C:\WINDOWS\SYSVOL\sysvol        Logon server share
The command completed successfully.

C:\temp> dcdiag /test:advertising

Directory Server Diagnosis

Performing initial setup:
   Trying to find home server...
   Home Server = TESTAD2
   * Identified AD Forest.
   Done gathering initial info.

Doing initial required tests

   Testing server: Default-First-Site-Name\TESTAD2
      Starting test: Connectivity
         ......................... TESTAD2 passed test Connectivity

Doing primary tests

   Testing server: Default-First-Site-Name\TESTAD2
      Starting test: Advertising
         ......................... TESTAD2 passed test Advertising


   Running partition tests on : DomainDnsZones

   Running partition tests on : ForestDnsZones

   Running partition tests on : Schema

   Running partition tests on : Configuration

   Running partition tests on : testad

   Running enterprise tests on : testad.com

아울러 "Group Policy Management" 화면의 복제 상태는 다음과 같이 "SysVol"에 "ACLs" 링크 항목으로 바뀝니다.

sysvol_not_created_2.png

(그리고 이 문제에 대한 해결 방법은 The SysVol Permissions for one or more GPOs on this domain controller and not in sync with the permissions for the GPOs on the Baseline domain controller. 글에 정리해 두었습니다.)




원래는 이런 문제가 발생하지 않았을 텐데, 신규 DC가 바로 이전에 demote시켰던 서버여서 아마도 새로 promote하는 과정에 충돌이 발생한 듯합니다. 그나저나, 복구 과정이 꽤나 생소한데 사실 저게 맞는 절차인지도 확신할 수 없으니, 이 글을 보시는 분은 꼭 공식 문서를 꼼꼼하게 확인하시고 적용해 보시길 바랍니다.

마지막으로 다음의 글을 보면,

Error Adding a Windows 2012 R2 DC: “Server is not Responding or is not Considered Suitable” (No SYSVOL Or NETLOGON Share)
; https://www.absoluteuc.org/server_is_not_responding_or_is_not_considered_suitable

"msDFSR-Options = 1" 옵션을 다시 "msDFSR-Options = 0"으로 돌려놓을 것을 권장합니다.




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]





[최초 등록일: ]
[최종 수정일: 3/12/2020 ]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer@outlook.com

비밀번호

댓글 쓴 사람
 




1  2  3  4  5  6  7  8  [9]  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
12232정성태6/19/2020259오류 유형: 618. SharePoint - StoreBusyRetryLater 오류
12231정성태6/15/2020510.NET Framework: 911. Console/Service Application을 위한 SynchronizationContext - AsyncContext
12230정성태6/15/2020333오류 유형: 617. IMetaDataImport::GetMethodProps가 반환하는 IL 코드 주소(RVA) 문제
12229정성태6/13/2020636.NET Framework: 910. USB/IP PROJECT를 이용해 C#으로 USB Keyboard + Mouse 가상 장치 만들기 [1]
12228정성태6/12/2020457.NET Framework: 909. C# - Source Generator를 적용한 XmlCodeGenerator파일 다운로드1
12227정성태6/12/20203572오류 유형: 616. Visual Studio의 느린 업데이트 속도에 대한 원인 분석 [5]
12226정성태6/19/2020641개발 환경 구성: 493. OpenVPN의 네트워크 구성파일 다운로드1
12225정성태6/11/2020656개발 환경 구성: 492. 윈도우에 OpenVPN 설치 - 클라이언트 측 구성
12224정성태6/11/20201545개발 환경 구성: 491. 윈도우에 OpenVPN 설치 - 서버 측 구성
12223정성태6/9/2020779.NET Framework: 908. C# - Source Generator 소개 [3]파일 다운로드1
12222정성태6/3/2020396VS.NET IDE: 146. error information: "CryptQueryObject" (-2147024893/0x80070003)
12221정성태9/24/2020406Windows: 170. 비어 있지 않은 디렉터리로 symbolic link(junction) 연결하는 방법
12220정성태6/3/2020458.NET Framework: 907. C# DLL로부터 TLB 및 C/C++ 헤더 파일(TLH)을 생성하는 방법
12219정성태6/1/2020684.NET Framework: 906. C# - lock (this), lock (typeof(...))를 사용하면 안 되는 이유파일 다운로드1
12218정성태5/31/2020621.NET Framework: 905. C# - DirectX 게임 클라이언트 실행 중 키보드 입력을 감지하는 방법 [1]
12217정성태5/24/2020428오류 유형: 615. Transaction count after EXECUTE indicates a mismatching number of BEGIN and COMMIT statements. Previous count = 0, current count = 1.
12216정성태5/15/2020616.NET Framework: 904. USB/IP PROJECT를 이용해 C#으로 USB Keyboard 가상 장치 만들기
12215정성태5/12/20201815개발 환경 구성: 490. C# - (Wireshark의) USBPcap을 이용한 USB 패킷 모니터링파일 다운로드1
12214정성태5/5/2020541개발 환경 구성: 489. 정식 인증서가 있는 경우 Device Driver 서명하는 방법 (2) - UEFI/SecureBoot
12213정성태5/3/2020853개발 환경 구성: 488. (코드로 가상 USB 장치를 만들 수 있는) USB/IP PROJECT 소개
12212정성태5/1/2020460개발 환경 구성: 487. UEFI / Secure Boot 상태인지 확인하는 방법
12211정성태4/27/2020644개발 환경 구성: 486. WSL에서 Makefile로 공개된 리눅스 환경의 C/C++ 소스 코드 빌드
12210정성태4/20/2020923.NET Framework: 903. .NET Framework의 Strong-named 어셈블리 바인딩 (1) - app.config을 이용한 바인딩 리디렉션 [1]파일 다운로드1
12209정성태4/13/2020542오류 유형: 614. 리눅스 환경에서 C/C++ 프로그램이 Segmentation fault 에러가 발생한 경우 (2)
12208정성태4/12/2020698Linux: 29. 리눅스 환경에서 C/C++ 프로그램이 Segmentation fault 에러가 발생한 경우
12207정성태4/2/2020612스크립트: 19. Windows PowerShell의 NonInteractive 모드
1  2  3  4  5  6  7  8  [9]  10  11  12  13  14  15  ...