활성 디렉터리 FSMO 역할 작동 방식 설명

활성 디렉터리 (AD)는 중앙 인증 및 승인 서비스를 제공하는 디렉터리 서비스입니다. 조직은 도메인 컨트롤러 (DC)에 AD를 호스팅하며 DC 간에 정보를 다중 마스터 구성으로 복제합니다. 유연한 단일 마스터 운영 (FSMO) 역할은 일관된 신뢰성 있는 데이터를 모든 데이터 소스에 유지합니다.

FSMO 역할은 AD 복제가 원활하게 진행되고 다른 여러 중요한 서비스가 의도한 대로 작동하도록 보장합니다. 이 문서에서는 FSMO 역할이 무엇인지, AD에 어떤 영향을 미치는지, 그리고 AD 포레스트에서 안전하게 조작하는 방법에 대해 알아보겠습니다.

이 문서를 마칠 때쯤에는 FSMO 역할에 대해 더 잘 이해하고 건강한 AD 환경을 위해 역할을 관리하는 방법을 알게 될 것입니다.

FSMO 역할이란 무엇인가요?

FSMO 역할은 AD 포레스트의 각각의 DC에 독립적으로 호스팅되는 서비스입니다. 각 역할은 장치 간 시간을 동기화하거나 보안 식별자 (SID)를 관리하는 등 특정 목적을 가지고 있습니다.

FSMO 역할은 포레스트 또는 도메인 수준에서 범위가 지정되며 해당 범위에 고유합니다. 예를 들어, 두 개의 도메인이 있는 포레스트는 RID 마스터 역할을 호스팅하는 두 개의 DC (총 두 개)와 스키마 마스터 역할을 호스팅하는 단일 DC만을 가질 것입니다.

FSMO Role Scope
Schema Master Forest
Domain Naming Master Forest
Primary Domain Controller Emulator Domain
RID Master Domain
Infrastructure Master Domain

A DC can hold multiple roles at one time.

스키마 마스터

A critical component of AD is the database. The database, like all other databases, has a schema that dictates its structure with various partitions or naming contexts. The AD schema is a database partition that contains metadata about AD objects. For example, it contains classes like person, group, or msPKI-Key-RecoveryAgent and attributes like phone number, badPwdCount, or dNS-HostName.

AD 스키마는 Active Directory 데이터베이스에서 가장 “민감한” 파티션입니다.

AD는 스키마를 관리하는 서비스가 필요하므로 스키마 마스터 역할이 필요합니다. 스키마 마스터 역할은 AD 스키마에 대한 변경을 제어하는 역할을 담당합니다. 만약 AD 스키마를 확장해 Exchange 같은 제품을 설치하거나 숲 기능 수준을 높이는 작업을 한 적이 있다면, 스키마 마스터 역할을 사용해 본 것입니다.

AD 스키마에 대한 변경은 엄격한 조건 하에 단일 DC에서만 스키마 마스터 역할을 통해 수행해야 합니다. 두 개의 DC에서 변경을 수행하고 복제를 기다려 어떤 변경이 복제를 통해 “이길” 것인지 보고 싶어하지 않을 것입니다.

도메인 네이밍 마스터

AD 데이터베이스는 숲과 도메인 범위에서 여러 파티션을 포함합니다. AD는 가끔 이러한 파티션에 대한 변경을 수행하고 이를 수행하기 위한 서비스가 필요하므로 도메인 네이밍 마스터 FSMO 역할이 필요합니다.

숲 도메인 공간에 대한 변경을 수행할 때 (숲에 파티션 추가), 도메인 네이밍 마스터는 이러한 변경사항을 Configuration\\Partitions에 기록합니다. 이 활동은 예를 들어, 도메인 컨트롤러가 승격되거나 강등될 때 발생합니다.

주 도메인 컨트롤러 에뮬레이터 (PDCe)

아마도 AD에서 가장 중요한 FSMO 역할은 PDCe입니다. PDCe 역할은 패스워드 변경 동기화, 계정 잠금 (및 잠금 해제), 시간 동기화 등의 작업을 담당합니다.

과거의 Active Directory (Windows NT) 초기에는 기본 도메인 컨트롤러 (PDC)가 AD 도메인에서 유일한 쓰기 가능한 DC였습니다. 다른 모든 DC는 인증 요청에만 사용되는 백업 도메인 컨트롤러 (BDC)였습니다.

Windows 2000부터는 읽기 전용 도메인 컨트롤러 (RODC)를 제외한 모든 DC가 쓰기 가능한 상태가 되었습니다. RODC는 Windows Server 2008에서 소개되었습니다. AD는 여전히 PDC의 기능이 필요하지만 기술적으로 PDC가 더 이상 존재하지 않는 상황이었기 때문에 Microsoft는 PDC 에뮬레이터 (PDCe) 역할을 도입했습니다.

레거시 응용 프로그램 리디렉션

PDCe 역할 중 가장 기본적인 기능 중 하나는 레거시 응용 프로그램에서 AD에 변경 사항을 작성할 수 있는지 알려주는 것입니다. 예를 들어, 여전히 Windows NT 서비스와 함께 작업하고 있고 해당 서비스가 AD 데이터베이스에 변경 사항을 작성할 위치를 모르는 경우 PDCe에 도움을 요청할 수 있습니다.

시간 동기화

도메인에 가입된 모든 장치가 일관된 시간을 유지하는 것이 중요합니다. Kerberos 인증 (기본 인증 모드)은 클라이언트와 DC 또는 DC 복제 파트너 간의 최대 시간 차이를 5분으로 요구합니다.

PDCe 역할은 AD 포레스트의 모든 다른 컴퓨터에 대한 중앙 시간원을 제공합니다.

  1. 모든 클라이언트 컴퓨터는 로그인한 DC로부터 시간 동기화를 수행합니다.
  2. 모든 DC는 해당 도메인의 PDCe(도메인 제어러)에서 시간을 동기화합니다.
  3. 다중 도메인 AD 포레스트에서 PDCe 역할을 호스팅하는 DC는 상위 도메인의 PDCe에서 시간을 동기화합니다.
  4. 그런 다음 루트 도메인의 PDCe 역할은 신뢰할 수 있는 외부 시간원으로부터 동기화합니다.

비밀번호 변경 관리

AD 변경 사항은 즉시 모든 DC로 복제되지 않고 AD 복제 일정을 따릅니다. 그러나 비밀번호 변경은 다소 다르게 복제됩니다. 비밀번호 변경은 항상 원본 DC에서 PDCe 역할을 보유한 DC로 복제되고 다른 DC로 전달됩니다.

예를 들어, 현재 최신 비밀번호가 없는 DC에서 사용자가 이전 비밀번호로 인증을 시도하는 경우, 인증하는 DC는 인증을 거부하기 전에 PDCe 역할을 보유한 DC에 업데이트된 비밀번호를 확인하기 위해 연락을 취합니다.

비밀번호를 변경한 사용자가 새로운 비밀번호가 복제되지 않은 다른 DC에 연결하는 데 문제가 있는 경우 PDCe에서 문제가 발생하는 것을 즉시 알 수 있습니다.

계정 잠금 처리.

PDCe 역할은 계정 잠금도 처리합니다. 비밀번호 변경과는 달리 계정 잠금은 일반 복제 간격을 따르지 않습니다. 계정 잠금은 즉시 단일 개체 복제라는 메커니즘을 통해 다른 DC에 복제됩니다. 이는 잠긴 계정이 아직 복제되지 않은 다른 DC에 로그인할 수 없도록 하는 보안 조치입니다.

그룹 정책 관리 콘솔(GPMC)의 기본 대상

그룹 정책 관리는 그룹 정책 관리 콘솔(GPMC) 도구를 사용하여 수행됩니다. AD에 변경 사항을 적용하려면 GPMC가 DC에 연결해야 합니다. 기본적으로 GPMC는 PDCe 역할을 보유한 DC에 항상 연결하며, 해당 DC가 다른 AD 사이트에 위치한 경우에도 그렇습니다. PDCe에 연결할 수 없는 경우 PDCe 역할에 연결할 수 없음 경고가 표시되며 GPMC에서 다른 DC를 선택하도록 요구합니다.

The GPMC would really prefer to talk to the PDCE.

관련 정보: 그룹 정책이란 무엇이며 어떻게 작동하나요(자세히)

Distributed File System (DFS) 네임스페이스 정보 제공

PDCe FSMO 역할의 기능을 완성하기 위해 PDCe 역할은 DFS 네임스페이스 정보를 제공합니다. 주기적으로 DFS 루트 서버는 권한 있는 DFS 정보를 보유한 PDCe로부터 업데이트된 DFS 네임스페이스 정보를 요청합니다.

일반적으로 PDCe FSMO 역할에 대한 과부하는 아니지만, 대량의 DFS 서버가 있는 환경에서는 기본 DFS 네임스페이스 조회 동작을 변경합니다.

RID 마스터

AD 도메인의 모든 개체는 다른 유사한 개체와 구별하기 위해 고유한 ID를 가져야 합니다. AD가 항상 모든 새 개체에 고유한 ID를 할당하는 것이 매우 중요합니다. 이를 보안 식별자 또는 SID라고 합니다.

각 SID는 여러 구성 요소로 구성됩니다. S (SID를 나타내는), Revision 번호, I – 식별자 권한 -, 도메인 ID 및 상대적 ID가 포함됩니다. 도메인 ID는 포레스트 내 각 도메인마다 고유합니다. 상대적 ID는 도메인 내 각 개체마다 고유합니다. SID는 다음과 같은 형식으로 표시됩니다. DomainId는 도메인 ID를 나타내고, RelativeId는 상대적 ID를 나타냅니다.

S-Revision-I-DomainId-Rid

Example: S-1-5-12-7273811915-2261004348-033256673-515
The string identifies this value as a SID. The string starts with an "S";
And has a revision level of 1;
An identifier authority value of 5 (NT Domain);
The domain identifier is a four-part value, 
The RID has a value of 515. The value of the RID is fixed and will never be generated; it's hard-coded and won't be repeated. (In this example, this is the well-known SID for the Domain Computers security group).

상대적 ID (RID) 마스터 역할은 각 AD 개체에 할당된 SID가 고유함을 보장합니다.

일부 RID는 특수 계정 및 잘 알려진 그룹에 예약되어 있습니다.

도메인에서 첫 번째 DC는 자동으로 RID 마스터가 되어 RID 발급을 관리합니다.

RID 마스터 역할을 가진 DC는 주로 세 가지 다른 이벤트에서 사용됩니다:

DC 승격/강등

새로운 DC가 승격될 때마다 RID 마스터는 해당 DC에 500개의 RID 블록을 할당합니다. 이후 이 DC에서 SID가 필요한 새로운 계정이 생성될 때 이 RID들이 순차적으로 할당됩니다.

예를 들어, 마지막으로 할당된 RID 블록이 5501에서 6000까지였다면, 새로운 블록이 필요한 다음 DC(승격된 새로운 DC 또는 현재 블록이 고갈된 DC)은 6001에서 6500까지 할당받게 됩니다.

AD 데이터베이스에서 DC가 제거될 때, RID 마스터는 중복된 SID를 방지하기 위해 해당 DC가 가진 RID 중 어떤 것도 할당하지 않도록 조치합니다.

RID 고갈

DC의 RID 용량이 50%에 도달하면, 해당 DC는 RID 마스터에게 새로운 RID 블록을 요청합니다. RID 마스터가 오프라인인 경우에 대비하여 DC는 50%에서 새로운 RID를 요청하며, 이를 통해 RID 할당이 고갈되지 않도록 충분한 시간을 확보할 수 있습니다.

RID 마스터 역할 탈취

관리자는 FSMO 역할 탈취 또는 이전을 통해 역할을 한 DC에서 다른 DC로 이동시킬 수 있습니다. RID 마스터 역할을 한 DC에서 다른 DC로 이동할 때, 다음 사용 가능한 RID 번호는 10000만큼 증가합니다.

관련 정보: FSMO 역할 이전하는 방법 (GUI 및 PowerShell)

다음으로 사용 가능한 RID를 10000씩 증가시키는 것은 중복된 SID를 피하기 위해 설정된 안전 메커니즘입니다. 예를 들어, 관리자가 RID 마스터 역할을 인계하고 이전의 RID 마스터가 온라인으로 돌아오면, 새로운 RID 마스터와 함께 중복된 SID를 발급할 수 있습니다.

인프라스트럭처 마스터

각 AD 개체는 RID 마스터 FSMO 역할에 의해 할당된 SID를 가지고 있습니다. 사용자, 그룹 및 기타 AD 정보를 보여줄 때 우리는 사람이 읽을 수 있는 이름을 보고 싶습니다. 이것이 인프라스트럭처 마스터 역할이 필요한 이유입니다.

기본적으로 각 DC는 글로벌 카탈로그(GC)로 구성되어 있습니다. GC는 포리스트의 모든 도메인에서 정보를 호스팅합니다. 사이트 간 복제 트래픽을 줄이기 위해 일부 DC를 GC로 구성하는 방법이 있었습니다.

GC가 아닌 DC에 인증된 경우 인프라스트럭처 마스터는 다른 도메인의 SID를 사람이 읽을 수 있는 이름으로 변환하는 역할을 담당합니다.

예를 들어 도메인에 가입된 컴퓨터에서 다른 도메인의 계정에 대한 권한이 설정된 Windows 탐색기의 보안 또는 공유 탭에서 폴더를 확인하면 사용자, 컴퓨터 및 그룹의 이름이 표시됩니다. SID가 아닙니다. 컴퓨터가 도메인에서 인프라스트럭처 마스터 역할을 찾을 수 없는 경우, 다른 도메인의 계정의 SID만 표시됩니다.

SID to name translation for other domain objects. On the left, the DC is not a GC and the IM role holder is not online. On the right, the DC is a GC (or the IM role holder is reachable).

Active Directory Recycle Bin을 사용하면 모든 DC가 사실상 인프라스트럭처 마스터 역할을 수행합니다. AD Recycle Bin은 Microsoft의 말에 따르면 인프라스트럭처 마스터 역할을 “중요하지 않다”고 표현합니다.

관련: Active Directory 재활용통에서 베이컨을 어떻게 저장할 수 있을까요?

결론

AD FSMO 역할은 AD가 원래대로 작동하도록 보장하는 중요한 구성 요소입니다. 대부분의 경우에는 FSMO 역할에 대해 걱정할 필요가 없지만, 필요한 순간에 어떻게 작동하는지 이해하는 것이 여전히 중요합니다!

Source:
https://adamtheautomator.com/fsmo-roles/