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)
13397정성태7/23/20233639닷넷: 2134. C# - 문자열 연결 시 string.Create를 이용한 GC 할당 최소화
13396정성태7/22/20233337스크립트: 54. 파이썬 pystack 소개 - 메모리 덤프로부터 콜 스택 열거
13395정성태7/20/20233308개발 환경 구성: 685. 로컬에서 개발 중인 ASP.NET Core/5+ 웹 사이트에 대해 localhost 이외의 호스트 이름으로 접근하는 방법
13394정성태7/16/20233254오류 유형: 873. Oracle.ManagedDataAccess.Client - 쿼리 수행 시 System.InvalidOperationException
13393정성태7/16/20233417닷넷: 2133. C# - Oracle 데이터베이스의 Sleep 쿼리 실행하는 방법
13392정성태7/16/20233293오류 유형: 872. Oracle - ORA-01031: insufficient privileges
13391정성태7/14/20233367닷넷: 2132. C# - sealed 클래스의 메서드를 callback 호출했을 때 인라인 처리가 될까요?
13390정성태7/12/20233338스크립트: 53. 파이썬 - localhost 호출 시의 hang 현상
13389정성태7/5/20233322개발 환경 구성: 684. IIS Express로 호스팅하는 웹을 WSL 환경에서 접근하는 방법
13388정성태7/3/20233511오류 유형: 871. 윈도우 탐색기에서 열리지 않는 zip 파일 - The Compressed (zipped) Folder '[...].zip' is invalid. [1]파일 다운로드1
13387정성태6/28/20233531오류 유형: 870. _mysql - Commands out of sync; you can't run this command now
13386정성태6/27/20233601Linux: 61. docker - 원격 제어를 위한 TCP 바인딩 추가
13385정성태6/27/20233816Linux: 60. Linux - 외부에서의 접속을 허용하기 위한 TCP 포트 여는 방법
13384정성태6/26/20233564.NET Framework: 2131. C# - Source Generator로 해결하는 enum 박싱 문제파일 다운로드1
13383정성태6/26/20233313개발 환경 구성: 683. GPU 런타임을 사용하는 Colab 노트북 설정
13382정성태6/25/20233356.NET Framework: 2130. C# - Win32 API를 이용한 윈도우 계정 정보 (예: 마지막 로그온 시간)파일 다운로드1
13381정성태6/25/20233741오류 유형: 869. Fatal Python error: init_fs_encoding: failed to get the Python codec of the filesystem encoding
13380정성태6/24/20233195스크립트: 52. 파이썬 3.x에서의 동적 함수 추가
13379정성태6/23/20233207스크립트: 51. 파이썬 2.x에서의 동적 함수 추가
13378정성태6/22/20233093오류 유형: 868. docker - build 시 "CANCELED ..." 뜨는 문제
13377정성태6/22/20236876오류 유형: 867. 파이썬 mysqlclient 2.2.x 설치 시 "Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually" 오류
13376정성태6/21/20233282.NET Framework: 2129. C# - Polly를 이용한 클라이언트 측의 요청 재시도파일 다운로드1
13375정성태6/20/20232982스크립트: 50. Transformers (신경망 언어모델 라이브러리) 강좌 - 2장 코드 실행 결과
13374정성태6/20/20233110오류 유형: 866. 파이썬 - <class 'AttributeError'> module 'flask.json' has no attribute 'JSONEncoder'
13373정성태6/19/20234398오류 유형: 865. 파이썬 - pymssql 설치 관련 오류 정리
13372정성태6/15/20233109개발 환경 구성: 682. SQL Server TLS 통신을 위해 사용되는 키 길이 확인 방법
1  2  3  4  5  6  7  8  [9]  10  11  12  13  14  15  ...