다음을 통해 공유


AD DS(디렉터리 서비스 함수)

디렉터리 서비스 함수는 Windows NT 또는 Windows 2000 도메인에서 DC(도메인 컨트롤러)를 찾기 위한 유틸리티를 제공합니다. 아키텍처는 모든 버전의 Windows NT 및 Windows 2000의 서버뿐만 아니라 클라이언트와 상호 작용합니다. 개발자는 다음 함수를 사용하여 디렉터리 서비스에서 도메인 컨트롤러 및 도메인 멤버 자격을 사용할 수 있습니다.

DC 로케이터 DsGetDcName은 Netlogon 서비스에서 구현됩니다. 각 DC는 DNS 서버의 DNS 이름과 해당 NetBIOS 이름을 전송별 메커니즘(예: WINS)을 사용하여 등록합니다. DC 로케이터는 이름을 조회한 다음 이름을 등록한 DC에 데이터그램을 보내거나 ping합니다. NetBIOS 도메인 이름의 경우 데이터그램은 mailslot 메시지입니다. DNS 도메인 이름의 경우 데이터그램은 LDAP UDP 검색입니다. 이러한 각 DC는 현재 작동 중임을 나타내는 응답합니다. 응답할 첫 번째 DC가 호출자에게 반환됩니다.

반환된 DC는 캐시되므로 후속 호출자가 이전 알고리즘을 반복할 필요가 없으며 모든 호출자가 동일한 DC를 사용하도록 권장할 수 있습니다. 이렇게 하면 단일 클라이언트가 DC의 콘텐츠를 일관되게 볼 수 있습니다.

DNS 도메인 이름으로 DC를 검색할 때 DC 로케이터는 "가장 가까운" 사이트에서 DC를 찾으려고 시도합니다. 각 DC는 DC가 있는 사이트와 DC에 포함된 사이트를 나타내는 추가 DNS 레코드를 등록합니다. DC 로케이터는 사이트별이 아닌 DNS 레코드를 검색하기 전에 먼저 이 사이트별 DNS 레코드를 검색하므로 해당 사이트에서 DC를 사용하는 것이 좋습니다. DC 로케이터가 DC에 데이터그램을 보내면 DC는 DS의 구성/사이트/서브넷 컨테이너에서 클라이언트의 IP 주소를 조회하여 서브넷 개체를 찾습니다. 서브넷 개체의 siteObject 속성은 클라이언트를 포함하는 사이트의 이름을 정의합니다. DC는 클라이언트가 포함된 사이트의 이름과 이 DC가 해당 사이트를 포함하는지 여부를 나타내는 표시기로 ping에 응답합니다. DC에 해당 사이트가 포함되지 않고 DC 로케이터가 아직 해당 사이트에서 DC를 찾으려고 시도하지 않은 경우 DC 로케이터는 다시 사이트에서 DC를 찾으려고 시도합니다.

클라이언트가 포함된 사이트의 이름을 찾으려면 DsGetSiteName 함수를 사용합니다. 구성/사이트/서브넷 컨테이너에 있는 개체의 이름은 유효한 서브넷 이름이어야 합니다. DsValidateSubnetName 함수는 지정된 서브넷 이름이 유효한지 여부를 나타냅니다.