Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 1개 있습니다.)

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 at outlook.com

비밀번호

댓글 작성자
 




1  2  3  4  5  6  7  8  9  10  11  12  13  [14]  15  ...
NoWriterDateCnt.TitleFile(s)
13270정성태2/24/20233755.NET Framework: 2098. dotnet build에 /p 옵션을 적용 시 유의점
13269정성태2/23/20234290스크립트: 46. 파이썬 - uvicorn의 콘솔 출력을 UDP로 전송
13268정성태2/22/20234842개발 환경 구성: 667. WSL 2 내부에서 열고 있는 UDP 서버를 호스트 측에서 접속하는 방법
13267정성태2/21/20234770.NET Framework: 2097. C# - 비동기 소켓 사용 시 메모리 해제가 finalizer 단계에서 발생하는 사례파일 다운로드1
13266정성태2/20/20234371오류 유형: 848. .NET Core/5+ - Process terminated. Couldn't find a valid ICU package installed on the system
13265정성태2/18/20234285.NET Framework: 2096. .NET Core/5+ - PublishSingleFile 유형에 대한 runtimeconfig.json 설정
13264정성태2/17/20235769스크립트: 45. 파이썬 - uvicorn 사용자 정의 Logger 작성
13263정성태2/16/20233910개발 환경 구성: 666. 최신 버전의 ilasm.exe/ildasm.exe 사용하는 방법
13262정성태2/15/20235002디버깅 기술: 191. dnSpy를 이용한 (소스 코드가 없는) 닷넷 응용 프로그램 디버깅 방법 [1]
13261정성태2/15/20234295Windows: 224. Visual Studio - 영문 폰트가 Fullwidth Latin Character로 바뀌는 문제
13260정성태2/14/20234079오류 유형: 847. ilasm.exe 컴파일 오류 - error : syntax error at token '-' in ... -inf
13259정성태2/14/20234208.NET Framework: 2095. C# - .NET5부터 도입된 CollectionsMarshal
13258정성태2/13/20234104오류 유형: 846. .NET Framework 4.8 Developer Pack 설치 실패 - 0x81f40001
13257정성태2/13/20234196.NET Framework: 2094. C# - Job에 Process 포함하는 방법 [1]파일 다운로드1
13256정성태2/10/20235045개발 환경 구성: 665. WSL 2의 네트워크 통신 방법 - 두 번째 이야기
13255정성태2/10/20234344오류 유형: 845. gihub - windows2022 이미지에서 .NET Framework 4.5.2 미만의 프로젝트에 대한 빌드 오류
13254정성태2/10/20234251Windows: 223. (WMI 쿼리를 위한) PowerShell 문자열 escape 처리
13253정성태2/9/20234991Windows: 222. C# - 다른 윈도우 프로그램이 실행되었음을 인식하는 방법파일 다운로드1
13252정성태2/9/20233821오류 유형: 844. ssh로 명령어 수행 시 멈춤 현상
13251정성태2/8/20234299스크립트: 44. 파이썬의 3가지 스레드 ID
13250정성태2/8/20236112오류 유형: 843. System.InvalidOperationException - Unable to configure HTTPS endpoint
13249정성태2/7/20234908오류 유형: 842. 리눅스 - You must wait longer to change your password
13248정성태2/7/20234044오류 유형: 841. 리눅스 - [사용자 계정] is not in the sudoers file. This incident will be reported.
13247정성태2/7/20234961VS.NET IDE: 180. Visual Studio - 닷넷 소스 코드 디버깅 중 "Decompile source code"가 동작하는 않는 문제
13246정성태2/6/20234073개발 환경 구성: 664. Hyper-V에 설치한 리눅스 VM의 VHD 크기 늘리는 방법 - 두 번째 이야기
13245정성태2/6/20234618.NET Framework: 2093. C# - PEM 파일을 이용한 RSA 개인키/공개키 설정 방법파일 다운로드1
1  2  3  4  5  6  7  8  9  10  11  12  13  [14]  15  ...