상세 컨텐츠

본문 제목

3.Active Directory의 구조 (논리적 구조와 물리적 구조) 및이름

잡다구리

by 짠가 2007. 7. 4. 10:32

본문

3.Active Directory의 구조 (논리적 구조와 물리적 구조) 및이름

(1)Active Directory의 구조-도메인

이번 장에서는 Active Directory가 어떻게 구성이 되어 있는지를 살펴보고, 각각의 구성요소에 대해서 이해를 필요로 하는 내용들을 설명하도록 한다. 가장 먼저 생각할 수 있는 구성요소는 Active Directory환경에서 핵심이 될 수 있는 "도메인"을 들 수 있다. 도메인은 Active Directory가 영향이 미치는 범위이다. 도메인에 소속된 서버 및 클라이언트 컴퓨터들은 도메인에 존재하는 Active Directory가 제공하는 Directory service의 영향권 안에 놓이게 된다. 기본적으로 Active Directory는 도메인 내에서 제공되며 사용되고 유지된다. 회사의 필요에 의해 여러개의 도메인이 생성되었다면 각각의 도메인마다 자신들의 고유한 Active Directory를 가지게 되는 것이다.

그렇다면 도메인은 어떻게 만들 수가 있을까? 도메인을 관리하는 특별한 서버가 제공된다. 바로 "도메인 컨트롤러"라는 이름으로 불리우는 서버이다. Microsoft의 도메인을 구현하기 위해서 가장 먼저 해야 할 일은 도메인컨트롤러를 셋업하는 일이다. 도메인 컨트롤러가 하나 셋업이 되었다는 것은 "도메인"이 하나 생겼다는 것과 동일한 의미이다. 도메인 컨트롤러는 Active Directory라는 이름의 데이터베이스를 가지고 있으며 이것은 도메인의 영역내에서 쓰일 수 있는 공통의 정보를 담고 있게 된다.

만일 도메인이 구성이 되고나서 도메인 컨트롤러가 손상되는 일이 생긴다면 도메인의 Active Directory는 심각한 문제가 생길 수밖에 없다. 이를 대비하기 위하여 우리는 한 도메인에 추가 도메인컨트롤러를 셋업하는 것이 가능하다. 이렇게 추가되는 도메인 컨트롤러 역시 개별적인 Active Directory를 가지기는 하지만, 새로운 Active Directory를 가지는 것이 아니라 첫 번째 생성된 도메인 컨트롤러의 Active Directory에 대한 복제본을 가지게 된다. 결국 한 도메인에는 하나의 Active Directory만 있게 된다. 이 경우 두 개의 도메인 컨트롤러들은 Active Directory에 새롭게 생성되는  내용이 있을 경우 다른 도메인 컨트롤러에 그 내용을 전파하여 도메인내에서의 일관성을 보장해 주어야 한다. 이러한 작업을 가리켜 "Active Directory Replication"이라고 부른다. 이러한 Replication도 도메인 내에서 행해지는 작업이다.

결국 도메인은 디렉토리 서비스의 영향이 미치는 보안의 경계이며, 한 도메인내의 도메인 컨트롤러들이 Replication이라는 프로세스에 의해 Active Directory의 일관성을 유지해 주는 복제의 단위가 된다. 회사가 한국,미국,일본 등 다국적 기업환경에 있다고 하더라도 하나의 도메인으로 구성하는 것이 가능하다. 도메인은 철저하게 논리적인 관점의 단위이다.

- OU (Organizational Unit)

한 회사에서 네트워크 환경을 도메인으로 구성하여 전체 리소스에 대한 집중화된 관리가 가능하다. 도메인의 관리자는 도메인 내에서 모든 리소스에 대해서 완전한 통제권한을 가지고 있다. 조직이 관리자 혼자서 관리하기에 벅찰 정도로 규모가 크다든가, 혹은 지역적으로 멀리 떨어진 환경의 회사여서 상황에 대처하는데 효율성이 떨어진다든가, 관리업무 자체를 보다 세분화시켜서 여러 관리자가 전문화된 관리영역 등을 가지게 하고자 한다면 OU라는 논리적 구조를 이용할 수 있다.

OU는 Active Directory에 존재하는 사용자계정,컴퓨터계정,프린터,폴더 등의 리소스등을 논리적으로 그룹화하여 관리하게 하기 위한 Active Directory의 또 하나의 구성요소이다. 예를 들면 관리자는 서울,부산,대전으로 나뉘어진 회사의 조직구조를 그대로 반영하여 서울OU, 부산OU, 대전OU 라는 형식으로 리소스를 조직화할 수 있다. 또한 부서를 반영하여 영업부OU, 관리부OU, 개발팀OU등의 OU를 이용할 수도 있다. 이것은 도메인이라는 커다란 단위를 사용함과 동시에 내부적으로 보다 작은 단위로써 유연한 관리방법을 제공하는 것이다.


[그림1. Active Directory Domain의 구조]

-Object (개체)

Domain의 Active Directory에 저장되는 하나하나의 구성요소를 object라고 부른다. 잘 알고 있는 User account, Computer account 등이 그것이다. NT4.0의 Directory database에 비해서 Windows2000의 Active Directory에는 User, Computer, Group외에도 Contact, Shared folder, printer등의 자원들까지도 Object로서 포함될 수가 있다. 이것은 큰 의미가 있다. Domain이 구축된 기업환경에서 생각할 수 있는 많은 요소가 Active Directory에 저장됨으로써 사용자들을 Active Directory를 통해서 다양한 검색기능을 이용해서 자원에 훨씬 쉽게 접근할 수 있는 환경이 제공된다.

-Tree, Forest

필요에 의해서 하나의 도메인만 가지고는 회사의 요구에 만족하지 못할 경우가 있다. 이런 경우 두 개 이상의 도메인을 사용하게 될 수도 있는데 아무래도 하나의 도메인만 사용할 때에 비해서는 고려해야 할 것이 많다. 도메인이 보안의 경계영역이라고 했으니 두 개의 도메인이면 서로 다른 보안의 영역이 생기는 것이 된다. 하지만 회사에서는 도메인과 도메인간의 자원들을 공유해야 할 필요성이 생기게 되고 이러한 것을 완전히 만족시켜야만 제대로 된 도메인 환경을 만들 수가 있게 되는 것이다. 가장 추천하는 도메인 모델은 "Single Domain"이다. 하지만 Single Domain Model로서 회사의 환경과 요구를 충족시킬 수 없다면 당연히 Multi Domain Model을 사용할 수밖에 없다. 처음 하나의 도메인이 있는 상태에서 새로운 도메인을 추가할 때 어떻게 추가하느냐에 따라서 Tree와 Forest라는 2가지 구조를 사용할 수가 있게 된다.


[그림2. Active Directory의 구조 - Tree & Forest ]

한 회사에서 서울에 secure.pe.kr 이라는 이름을 가진 첫 번째 도메인이 있다고 가정한다[그림2]. 이렇게 첫 번째 만들어진 도메인을 가리켜서 "Forest Root Domain" 이라고 한다. 회사에서 새롭게 대전지역에 지사를 하나 냈는데 그곳에는 별도의 IT관리조직이 있는독립된 성격의 회사라고 가정을 한다. 대전지사를 위해서 하나의 도메인을 구축하려고 할 때 무작정 만들 수는 없는 노릇이다. 서울에 있는 Forest Root Domain과 연관성을 가져야 할 것이다. IT관리는 분리가 되었다고 하지만 한 회사이고 그러다 보면 서울과 대전간의 수많은 자원의 교류가 있어야 할 것이기 때문이다. 서울의 직원이 대전으로 파견을 나온다던가 하는 형태의 업무환경 역시 얼마든지 생길 것이다. 이러한 요구를 필요로 할 때 당신은 Forest Root Domain처럼 전혀 새로운 도메인을 만드는 것이 아니라 Forest Root Domain과 특별한 관계(Trust relationshop)를 가지는 도메인을 만들 것을 고려해야 한다. 그 방법으로서 두 가지 방법이 제시된다. Tree와 Forest가 그것인데, 이들의 가장 두드러진 차이점은 도메인이름의 연속성에서 찾아볼 수 있다. 추가 도메인을 만들 때 기존의 Forest Root Domain이 사용하는 이름과의 연속적인 이름을 선택했다면 Tree 구조가 되는 것이고 Forest Root Domain과 다른 도메인 이름을 사용했다면 Forest 구조가 되는 것이다.

Tree에 대한 이해는 "본사와 지사"의 형태로 이해하면 쉽다. Secure.pe.kr이라는 이름의 본사 도메인이 있는데 추가로 지사에 도메인을 설치하고자 할 때 Secure.pe.kr의 이름을 연속해서 사용하는 Daejon.Secure.pe.kr이라는 이름을 선택했다면 secure.pe.kr 도메인의 하위도메인이 생성되는 것이다. 이 경우는 Secure.pe.kr이라는 이름의 Forest Root Domain의 하위 도메인으로서 도메인을 확장하는 것을 의미한다. Active Directory에서는 이것을 quot;Forest Root Domain의 트리(Tree)에 Child Domain을 추가했다"라고 표현한다. 이때 Secure.pe.kr도메인은 Parents domain, Daejon.secure.pe.kr은 Child domain이 된다. 말 그대로 부모,자식간의 관계로서 도메인을 확장하는 것을 Tree구조라고 부르는 것이다. 이들은 한 나무(Tree)에서 뻗어나온 것이기 때문에 당연히 이름을 같이 사용한다.

회사가 Secure.pe.kr 도메인 외에 이미 확보한 DNS도메인이 있어서 반드시 그것을 사용해야 한다면, 혹은 최근에 다른 회사 하나를 M&A에 의해서 취득을 했는데 그 회사의 대외적인 인지도를 이용하기 위해서 기존의 이름을 그대로 사용해야 할 필요성이 있다면, 이런 경우 당신은 Tree구조로 도메인을 확장한다는 것이 적합하지 않다는 것을 알 수 있다. Tree구조의 도메인 이름의 연속성이 현재의 요구사항에 부합되지 않는다는 것을 알기 때문이다. 이 경우 Forest Root Domain의 트리(Tree)에 새로운 도메인을 추가하는 것이 아니라 포리스트(Forest)에 새로운 Tree를 만드는 것으로 도메인을 추가하는 것이 가능하다. 이것은 Tree와는 달리 Forest Root Domain의 이름에 대해 연속성을 가지지 않는다. 예를 들어 회사에서 가지고 있는 또 하나의 이름이 mcpworld.net 이라면 추가 도메인의 이름으로서
mcpworld.net을 그대로 사용할 수 있다. 이러한 구조를 가리켜서 포리스트(Forest)라고 부른다. Forest Root Domain의 트리(tree)에 도메인을 추가한 것이 아니라 새로운 트리(tree)를 만들어 낸 것이다. 결국 회사의 환경에서 두 개의 트리가 생긴 것이니 "나무(tree)가 여러개 모여 있으니 바로 숲(forest)을 이룬다"라는 것이다. 재미있는 용어선택이다. 트리와 포리스트는 Single Domain 환경이 아닌 Multi Domain환경에서 사용되는 용어이다. 만일 회사가 Single Domain Model만으로 조직의 요구를 충분히 만족시킬 수 있다면 이것은 전혀 필요가 없는 구조가 될 것이다.

정리하면, Windows2000에서는 여러개의 도메인을 지원하기 위한 방법으로 트리(tree)와 포리스트(forest)라는 두가지 구조를 제공하고 있는데 이들의 가장 큰 차이점은 Forest root domain의 이름과의 연속성의 유무에 있다고 할 것이다.

회사에 secure.pe.kr이라는 이름의 Forest root domain이 하나 있고, Daejon.secure.pe.kr과 japan.secure.pe.kr이라는 이름을 사용하는 Child domain이 각각 있고 mcpworld.net이라는 이름의 root domain이 하나 있다면 회사에는 총 4개의 도메인이 있는 복수도메인 환경에 있는 것이다. 이 4개의 도메인들은 각각 트리와 포리스트라는 특별한 구조로서 묶여 있지만 엄연히 별개의 도메인이다. 이 회사에서는 도메인마다 하나씩 총 4개의 Active Directory를 가지게 된다. 이 각각의 Active Directory는 자신의 도메인 내에서 복제프로세스에 의해서 도메인 컨트롤러마다 복제를 하게 되고, 자신의 도메인 내에서 리소스에 할당되어 사용되게 된다.

하지만 이 4개의 도메인은 어디까지나 논리적인 개념일 뿐이다. 한지역만 하더라도 여러개의 도메인으로 구성이 되어 있을 수 있기 때문에, 그러다 보니 서로 다른 도메인에 속해 있는 사용자들끼리의 자원의 교류가 필수적으로 따라오기 마련이다. 이것은 결국 도메인과 도메인간의 보안의 경계 영역을 넘게 되는 것을 의미한다. 바로 이러한 점 때문에 우리는 4개의 도메인을 만드는데 완전하게 독립된 도메인을 만든 것이 아니라 트리나 포리스트 등의 구조를 이용해서 도메인을 확장했던 것이다. 그렇다면 이러한 구조를 이용해서 도메인을 확장하면 뭔가 특별한 점이 있다는 것일텐데, 그것이 무엇일까?

기본적으로 디렉토리 서비스는 도메인 내에서 동작한다. 서로 다른 도메인으로 디렉토리 서비스를 확장시켜 주는 것이 바로 도메인과 도메인간의 관계인 "Trust Relationship"이다. 트리나 포리스트 구조로써 도메인을 확장했을 때는 자동적으로 이들 도메인간에는 "Two way transitive trust relationship"이
맺어지게 된다.
☞ Two way transitive trust Relationship

Windows NT 4.0 도메인 환경에서는 도메인과 도메인간의 트러스트 관계를 수동으로 맺어야만 했다. A와 B라는 두 개의 도메인이 있을 때  A도메인의 회사의 모든 사용자들이 있고, B도메인에는 파일서버,프린트서버등의 리소스를 가진 서버들이 있다고 가정하면 A도메인의 사용자가 B도메인의 자원에 접근하도록 하기 위해서 B도메인에서는 A도메인으로 트러스트 관계를 설립해야 한다. 이 경우 B도메인은 "Trusting Domain"이 되고 A도메인은 "Trusted Domain"이 된다. B도메인이 A도메인을 트러스트(trust)하고 있는 것이다. 이것은 단방향 트러스트 관계(One way trust relationship)이다.



이러한 상황에서 거꾸로 B도메인의 사용자가 A도메인에 있는 자원에 접근을 하고자 한다면 반대로 A도메인에서도 역시 B도메인으로 트러스트를 해야 한다. 그렇게 되면 양방향 트러스트 관계(Two way trust relationship)이 설립되게 된다.

만일 하나의 도메인이 더 있다고 가정을 해 보자[그림3].


[그림3. Non-transitive Trust relationship]

B도메인이 A도메인을 트러스트하고, A도메인이 C도메인을 trust하고 있다고 하더라도 B도메인과 C도메인은 아무런 연관성이 없다. 만일 B도메인과 C도메인간의 자원의공유를 위해서는 별도의 트러스트 관계를 맺어야만 하는 것이다. 바로 Non-transitive(비전이)하다는 것이다. 이것이 NT4.0에서의 도메인의 트러스트 관계이다.Windows2000의 도메인은 다르다. [그림3]의 B도메인과 C도메인간에도 자원의 공유가 가능하다. 바로Trust relationship이 전이(transitive)되는 것이다. 위에서 설명한 트리나 포리스트관계로 도메인을 확장하게 되면 그들 도메인 사이에는 자동으로 Two way transitive trust Relationship이 설립되게 된다.

-Global Catalog

도메인의 Active Directory는 도메인 내에서 사용된다. 회사가 여러개의 도메인으로 구성되어 있는 환경을 고려해 보면 사용자가 Active Directory에서 특정한 Object를 찾고자 할 때 그러한 쿼리를 처리해 주는 것이 문제가 될 수 있다. A라는 도메인에 소속된 사용자가 "원석"이라는 이름을 이용해서 Active Directory에 쿼리를 던져서 wssong이라는 Object를 찾고자 할 때, 그러한 정보를 가지고 있는 A도메인의 도메인 컨트롤러는 "원석"이라는 이름을 검색해야 할 것이다. 만일 없다면 그 다음에 요청은 "B"도메인으로 가야 할 것이고 없다면 다시 "C"도메인으로 가야만 한다.

번거로운 일이지만 그렇게 해야만 사용자는 전체 도메인 환경에서 원하는 정보를 검색하는 것이 가능할 것이다. 이러한 일들을 처리하기 위해 Windows2000의 도메인 환경에서는 Forest레벨의 전체 도메인의 모든 Active Directory에 대한 Object들의 부분 복제본을 하나의 서버에 집중시켜 둔 별도의 저장소를 가지게 되었다. 그것을 가리켜서 "Global Catalog"라고 부른다.


[화면1. Active Directory 검색]

[화면1]을 보면 사용자는 "원석"이라는 이름만으로 Active Directory에서 "wssong"이라는 이름의 object(개체)를 검색하였다. 이때 이 검색을 처리해 준 서버는 "Global Catalog"를 가진 서버이다. 결국 Global Catalog Server가 사용자의 Query를 처리한다는 것을 의미한다. 포리스트 환경에서 첫 번째 도메인의 첫 번째 도메인 컨트롤러는 Global Catalog Server역할을 하고 있다.


[화면2.Active Directory 사이트 및 서비스 관리콘솔]

관리도구의 "Active Directory사이트 및 서비스"를 통해서 Global Catalog Server를 확인하는 것이 가능하다. 관리도구를 실행한 다음, Sites-Default First Site Name-Servers-서버이름-NTDS Settinggs의 등록정보를 연다.[화면2]


[화면3.글로벌 카탈로그 확인]

등록정보를 열어보면 "글로벌 카탈로그"가 체크되어 있음을 확인할 수 있다. 추가로 글로벌 카탈로그 서버를 생성할 때도 같은 방법을 사용해서 접근한다.

출처 : Tong - yook81님의 기본통

관련글 더보기