W rzeczywistości istnieje kilka powiązanych funkcji / interfejsów API. Mimo że są długie, w rzeczywistości są to jedne z ciekawszych sposobów czytania w Active Directory.
Niezależnie od poniższego wyjaśnienia, musisz pamiętać o dwóch rzeczach:
Jeśli kontroler domeny w lokalnej witrynie nie odpowiada z jakiegokolwiek powodu, oczekuje się, że klient skontaktuje się z dowolnym kontrolerem domeny w domenie. Jest to normalne i zawsze było to zachowanie domyślne. Czasami nie wiadomo, dlaczego tak się dzieje.
To może być nieoptymalne. Rozważmy następujący scenariusz: Trzy witryny: Nowy Jork (hub / datacener - szybki), Los Angeles (rozmawiał z NYC - szybko) i Kazachstan (rozmawiał z NYC - zdecydowanie nie szybko). Jeśli Twój klient w witrynie LA nie może skontaktować się z lokalnym przedstawicielstwem lokalnym z jakiegokolwiek powodu, nie jest wykluczone, że zostanie on uwierzytelniony w Kazachstanie.
Istnieje kilka rozwiązań. Możesz zrobić jedno lub oba.
Firma Microsoft utworzyła ustawienie zasad grupy / rejestru o odpowiedniej nazwie TryNextClosestSite. Oznacza to, że klient LA powinien wypróbować NYC przed wędrowaniem po planecie w poszukiwaniu DC. Znakomity! Zajęło to osiem lat, ale w końcu dostaliśmy to dzięki Vista / 2008. Pamiętaj, że domyślnie wyłączone, musisz utworzyć obiekt GPO, aby to włączyć.
W przypadku mówionych witryn, w których naprawdę nie chcesz, aby DC obsługiwał klientów w innych witrynach, możesz utworzyć ustawienie zasad grupy / rejestru, które określa, które rekordy DNS nie powinny być rejestrowane. Jest to określane jako DNS Mnemonics.
Znajdowanie kontrolera domeny w najbliższej witrynie (DsGetSiteName API)
http://technet.microsoft.com/en-us/library/cc978016.aspx
Mapowanie adresów IP do nazw witryn
„Podczas uruchamiania Net Logon usługa Net Logon na każdym kontrolerze domeny wylicza obiekty lokacji w kontenerze konfiguracji. Logowanie netto na każdym kontrolerze domeny jest również powiadamiane o wszelkich zmianach dokonanych w obiektach lokacji. Net Logon używa informacji o lokacji do zbudowania struktura w pamięci używana do mapowania adresów IP na nazwy witryn.
„Gdy klient, który szuka kontrolera domeny, otrzymuje listę adresów IP kontrolera domeny z DNS, klient kolejno przesyła zapytania do kontrolerów domeny, aby dowiedzieć się, który kontroler domeny jest dostępny i odpowiedni. Usługa Active Directory przechwytuje zapytanie, które zawiera adres IP klienta i przekazuje go do Net Logon na kontrolerze domeny. Net Logon wyszukuje adres IP klienta w tabeli mapowania podsieci do witryny, znajdując obiekt podsieci, który najbardziej odpowiada adresowi IP klienta, a następnie zwraca następujące informacje:
Nazwa witryny, w której znajduje się klient, lub witryny, która najbardziej odpowiada adresowi IP klienta.
Nazwa witryny, w której znajduje się bieżący kontroler domeny.
Bit wskazujący, czy znaleziony kontroler domeny znajduje się (bit jest ustawiony), czy nie (bit nie jest ustawiony) w witrynie najbliżej klienta.
„Kontroler domeny zwraca informacje do klienta. Odpowiedź zawiera także różne inne informacje opisujące kontroler domeny. Klient sprawdza informacje w celu ustalenia, czy spróbować znaleźć lepszego kontrolera domeny. Decyzja jest podejmowana w następujący sposób:
„Jeśli zwrócony kontroler domeny znajduje się w najbliższej witrynie (ustawiony jest zwracany bit), klient używa tego kontrolera domeny.
„Jeśli klient próbował już znaleźć kontroler domeny w witrynie, w której kontroler domeny twierdzi, że klient się znajduje, klient używa tego kontrolera domeny.
„Jeśli kontroler domeny nie znajduje się w najbliższej witrynie, klient aktualizuje informacje o swojej witrynie i wysyła nowe zapytanie DNS w celu znalezienia nowego kontrolera domeny w tej witrynie. Jeśli drugie zapytanie zakończy się powodzeniem, używany jest nowy kontroler domeny. Jeśli drugie zapytanie nie powiedzie się, używany jest oryginalny kontroler domeny.
„Jeśli domena, której dotyczy komputer, jest taka sama jak domena, do której komputer jest przyłączony, witryna, w której znajduje się komputer (zgłoszona przez kontroler domeny), jest przechowywana w rejestrze komputera. Klient przechowuje to nazwa witryny we wpisie rejestru DynamicSiteName w HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Netlogon \ Parameters. Dlatego interfejs API DsGetSiteName zwraca witrynę, w której znajduje się komputer. ”
Funkcja DsGetDcName
http://msdn.microsoft.com/en-us/library/ms675983%28VS.85%29.aspx
Typy lokalizatorów
http://technet.microsoft.com/en-us/library/cc978019.aspx
Funkcje usługi katalogowej
http://technet.microsoft.com/en-us/subscriptions/ms675900%28v=vs.85%29.aspx
Jak działa obsługa DNS dla Active Directory
http://technet.microsoft.com/en-us/library/cc759550%28v=ws.10%29.aspx
Jak zoptymalizować lokalizację kontrolera domeny, który znajduje się poza witryną klienta
http://support.microsoft.com/kb/306602