Udostępnij za pośrednictwem


Wyświetlanie i ustawianie zasad LDAP w usłudze Active Directory przy użyciu Ntdsutil.exe

W tym artykule opisano sposób zarządzania zasadami protokołu LDAP (Lightweight Directory Access Protocol) przy użyciu narzędzia Ntdsutil.exe.

Oryginalny numer KB: 315071

Podsumowanie

Aby upewnić się, że kontrolery domeny mogą obsługiwać gwarancje na poziomie usługi, należy określić limity operacyjne dla wielu operacji LDAP. Te limity uniemożliwiają niekorzystne działanie określonych operacji na wydajność serwera. Serwer jest również bardziej odporny na niektóre typy ataków.

Zasady LDAP są implementowane przy użyciu obiektów queryPolicy klasy. Obiekty zasad zapytania można utworzyć w kontenerze Zasady zapytań, który jest elementem podrzędnym kontenera usługi katalogowej w kontekście nazewnictwa konfiguracji. Na przykład cn=Query-Policies,cn=Directory Service,cn=Windows NT,cn=Services configuration naming context.

Limity administracji LDAP

Limity administracji LDAP to:

  • InitRecvTimeout — ta wartość definiuje maksymalny czas w sekundach oczekiwania klienta na wysłanie pierwszego żądania przez kontrolera domeny po odebraniu nowego połączenia przez kontroler domeny. Jeśli klient nie wysyła pierwszego żądania w tym czasie, serwer rozłącza klienta.

    Wartość domyślna: 120 sekund

  • MaxActiveQueries — maksymalna liczba współbieżnych operacji wyszukiwania LDAP, które mogą być uruchamiane w tym samym czasie na kontrolerze domeny. Po osiągnięciu tego limitu serwer LDAP zwraca błąd zajęty .

    Wartość domyślna: 20

    Uwaga 16.

    Ta kontrolka ma niepoprawną interakcję z wartością MaxPoolThreads. MaxPoolThreads to kontrolka na procesor, a funkcja MaxActiveQueries definiuje liczbę bezwzględną. Począwszy od systemu Windows Server 2003, funkcja MaxActiveQueries nie jest już wymuszana. Ponadto funkcja MaxActiveQueries nie jest wyświetlana w systemie Windows Server 2003 w wersji NTDSUTIL.

    Wartość domyślna: 20

  • MaxConnections — maksymalna liczba równoczesnych połączeń LDAP akceptowanych przez kontroler domeny. Jeśli połączenie zostanie nawiązane po osiągnięciu tego limitu przez kontroler domeny, kontroler domeny przerywa kolejne połączenie.

    Wartość domyślna: 5000

  • MaxConnIdleTime — maksymalny czas w sekundach bezczynności klienta przed zamknięciem połączenia przez serwer LDAP. Jeśli połączenie jest bezczynne dłużej niż w tym czasie, serwer LDAP zwraca powiadomienie o rozłączeniu LDAP.

    Wartość domyślna: 900 sekund

  • MaxDatagramRecv — maksymalny rozmiar żądania datagramu, który będzie przetwarzany przez kontroler domeny. Żądania większe niż wartość parametru MaxDatagramRecv są ignorowane.

    Wartość domyślna: 4096 bajtów

  • MaxNotificationPerConnection — maksymalna liczba zaległych żądań powiadomień, które są dozwolone w jednym połączeniu. Po osiągnięciu tego limitu serwer zwraca błąd zajęty do wszelkich nowych wyszukiwań powiadomień, które są wykonywane na tym połączeniu.

    Wartość domyślna: 5

  • MaxPageSize — ta wartość steruje maksymalną liczbą obiektów zwracanych w jednym wyniku wyszukiwania niezależnie od wielkości zwracanego obiektu. Aby wykonać wyszukiwanie, w którym wynik może przekroczyć tę liczbę obiektów, klient musi określić stronicową kontrolkę wyszukiwania. Należy zgrupować zwrócone wyniki w grupach, które nie są większe niż wartość MaxPageSize. Podsumowując, MaxPageSize steruje liczbą obiektów zwracanych w jednym wyniku wyszukiwania.

    Wartość domyślna: 1000

  • MaxPoolThreads — maksymalna liczba wątków na procesor przeznaczony przez kontroler domeny do nasłuchiwania danych wejściowych lub wyjściowych sieci (we/wy). Ta wartość określa również maksymalną liczbę wątków na procesor, które mogą działać na żądaniach LDAP w tym samym czasie.

    Wartość domyślna: 4 wątki na procesor

  • MaxResultSetSize — między poszczególnymi wyszukiwaniami, które tworzą wyszukiwanie wyników stronicowanych, kontroler domeny może przechowywać dane pośrednie dla klienta. Kontroler domeny przechowuje te dane, aby przyspieszyć następną część wyszukiwania wyników stronicowanych. Wartość MaxResultSize kontroluje łączną ilość danych przechowywanych przez kontroler domeny dla tego rodzaju wyszukiwania. Po osiągnięciu tego limitu kontroler domeny odrzuca najstarsze z tych wyników pośrednich, aby zapewnić miejsce na przechowywanie nowych wyników pośrednich.

    Wartość domyślna: 262 144 bajtów

  • MaxQueryDuration — maksymalny czas w sekundach poświęcany przez kontroler domeny na pojedyncze wyszukiwanie. Po osiągnięciu tego limitu kontroler domeny zwraca błąd "timeLimitExceeded". Wyszukiwanie wymagające więcej czasu musi określać kontrolkę stronicowanych wyników.

    Wartość domyślna: 120 sekund

  • MaxTempTableSize — podczas przetwarzania dblayer zapytania może próbować utworzyć tymczasową tabelę bazy danych w celu sortowania i wybierania wyników pośrednich. Limit MaxTempTableSize określa, jak duża może być ta tymczasowa tabela bazy danych. Jeśli tabela tymczasowej bazy danych zawierałaby więcej obiektów niż wartość parametru MaxTempTableSize, dblayer funkcja wykonuje znacznie mniej wydajne analizowanie kompletnej bazy danych DS i wszystkich obiektów w bazie danych DS.

    Wartość domyślna: 10 000 rekordów

  • MaxValRange — ta wartość steruje liczbą wartości zwracanych dla atrybutu obiektu, niezależnie od liczby atrybutów obiektu lub liczby obiektów w wynikach wyszukiwania. W systemie Windows 2000 ta kontrolka jest zakodowana na poziomie 1000. Jeśli atrybut ma więcej niż liczbę wartości określonych przez wartość MaxValRange, należy użyć kontrolek zakresu wartości w protokole LDAP, aby pobrać wartości przekraczające wartość MaxValRange. Parametr MaxValueRange określa liczbę wartości zwracanych w pojedynczym atrybucie pojedynczego obiektu.

    • Wartość minimalna: 30
    • Wartość domyślna: 1500

Uruchamianie Ntdsutil.exe

Ntdsutil.exe znajduje się w folderze Narzędzia pomocy technicznej na dysku CD-ROM instalacji systemu Windows. Domyślnie Ntdsutil.exe jest instalowany w folderze System32.

  1. Kliknij przycisk Start, a następnie kliknij polecenie Uruchom.
  2. W polu tekstowym Otwórz wpisz ntdsutil, a następnie naciśnij ENTER. Aby wyświetlić pomoc w dowolnym momencie, wpisz ? w wierszu polecenia.

Wyświetlanie bieżących ustawień zasad

  1. W wierszu polecenia Ntdsutil.exe wpisz LDAP policies, a następnie naciśnij ENTER.
  2. W wierszu polecenia zasad LDAP wpisz connections, a następnie naciśnij ENTER.
  3. W wierszu polecenia połączenia serwera wpisz connect to server <DNS name of server>, a następnie naciśnij ENTER. Chcesz nawiązać połączenie z serwerem, z którym aktualnie pracujesz.
  4. W wierszu polecenia połączenia serwera wpisz q, a następnie naciśnij ENTER, aby powrócić do poprzedniego menu.
  5. W wierszu polecenia zasad LDAP wpisz Show Values, a następnie naciśnij ENTER.

Zostanie wyświetlony widok zasad w miarę ich istnienia.

Modyfikowanie ustawień zasad

  1. W wierszu polecenia Ntdsutil.exe wpisz LDAP policies, a następnie naciśnij ENTER.

  2. W wierszu polecenia zasad LDAP wpisz Set <setting> to <variable>, a następnie naciśnij ENTER. Na przykład wpisz Ustaw wartość MaxPoolThreads na 8.

    To ustawienie zmienia się w przypadku dodania innego procesora do serwera.

  3. Możesz użyć Show Values polecenia , aby zweryfikować zmiany.

    Aby zapisać zmiany, użyj opcji Zatwierdź zmiany.

  4. Po zakończeniu wpisz q, a następnie naciśnij ENTER.

  5. Aby zakończyć Ntdsutil.exe, w wierszu polecenia wpisz q, a następnie naciśnij ENTER.

Uwaga 16.

Ta procedura pokazuje tylko domyślne ustawienia zasad domeny. Jeśli zastosujesz własne ustawienie zasad, nie będzie można go zobaczyć.

Wymaganie dotyczące ponownego rozruchu

Jeśli zmienisz wartości zasad zapytania używanych obecnie przez kontroler domeny, te zmiany zostaną zastosowane bez ponownego uruchomienia. Jeśli jednak zostaną utworzone nowe zasady zapytań, do zastosowania nowych zasad zapytania jest wymagany ponowny rozruch.

Zagadnienia dotyczące zmieniania wartości zapytania

Aby zachować odporność serwera domeny, nie zalecamy zwiększenia wartości limitu czasu 120 sekund. Tworzenie bardziej wydajnych zapytań jest preferowanym rozwiązaniem. Aby uzyskać więcej informacji na temat tworzenia wydajnych zapytań, zobacz Tworzenie bardziej wydajnych aplikacji z obsługą usługi Microsoft Active Directory.

Jeśli jednak zmiana zapytania nie jest opcją, zwiększ wartość limitu czasu tylko na jednym kontrolerze domeny lub tylko w jednej lokacji. Instrukcje znajdziesz w następnej sekcji. Jeśli ustawienie jest stosowane do jednego kontrolera domeny, zmniejsz priorytet LDAP DNS na kontrolerze domeny, aby klienci rzadziej używali serwera do uwierzytelniania. Na kontrolerze domeny z priorytetem zwiększenia użyj następującego ustawienia rejestru, aby ustawić :LdapSrvPriority

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters

W menu Edycja wybierz pozycję Dodaj wartość, a następnie dodaj następującą wartość rejestru:

  • Nazwa wpisu: LdapSrvPriority
  • Typ danych: REG_DWORD
  • Wartość: ustaw wartość na wartość żądanego priorytetu.

Aby uzyskać więcej informacji, zobacz Jak zoptymalizować lokalizację kontrolera domeny lub wykazu globalnego znajdującego się poza lokacją klienta.

Instrukcje dotyczące konfigurowania poszczególnych kontrolerów domeny lub zasad lokacji

  1. Utwórz nowe zasady zapytania w obszarze CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration, forest root.

  2. Ustaw kontroler domeny lub lokację, aby wskazywał nowe zasady, wprowadzając nazwę wyróżniającą nowych zasad w atrybucie Query-Policy-Object . Lokalizacja atrybutu jest następująca:

    • Lokalizacja kontrolera domeny to CN=NTDS Settings, CN= DomainControllerName, CN=Servers,CN= nazwa witryny,CN=Sites,CN=Configuration, katalog główny lasu.

    • Lokalizacja lokacji to CN=NTDS Site Settings,CN= nazwa witryny,CN=Sites,CN=Configuration, katalog główny lasu.

Przykładowy skrypt

Aby utworzyć plik Ldifde, możesz użyć następującego tekstu. Możesz zaimportować ten plik, aby utworzyć zasady z wartością limitu czasu 10 minut. Skopiuj ten tekst do pliku Ldappolicy.ldf, a następnie uruchom następujące polecenie, gdzie katalog główny lasu jest nazwą wyróżniającą katalogu głównego lasu. Pozostaw wartość DC=X as-is. Jest to stała, która zostanie zamieniona przez nazwę katalogu głównego lasu po uruchomieniu skryptu. Stała X nie wskazuje nazwy kontrolera domeny.

ldifde -i -f ldappolicy.ldf -v -c DC=X DC= forest root

Uruchamianie skryptu Ldifde

dn: CN=Extended Timeout,CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=X  
changetype: add  
instanceType: 4  
lDAPAdminLimits: MaxReceiveBuffer=10485760  
lDAPAdminLimits: MaxDatagramRecv=1024  
lDAPAdminLimits: MaxPoolThreads=4  
lDAPAdminLimits: MaxResultSetSize=262144  
lDAPAdminLimits: MaxTempTableSize=10000  
lDAPAdminLimits: MaxQueryDuration=300  
lDAPAdminLimits: MaxPageSize=1000  
lDAPAdminLimits: MaxNotificationPerConn=5  
lDAPAdminLimits: MaxActiveQueries=20  
lDAPAdminLimits: MaxConnIdleTime=900  
lDAPAdminLimits: InitRecvTimeout=120  
lDAPAdminLimits: MaxConnections=5000  
objectClass: queryPolicy  
showInAdvancedViewOnly: TRUE

Po zaimportowaniu pliku można zmienić wartości zapytania przy użyciu narzędzia Adsiedit.msc lub Ldp.exe. Ustawienie MaxQueryDuration w tym skryscie wynosi 5 minut.

Aby połączyć zasady z kontrolerem domeny, użyj pliku importu LDIF w następujący sposób:

dn: CN=NTDS  
Settings,CN=DC1,CN=Servers,CN=site1,CN=Sites,CN=Configuration, DC=X  
changetype: modify  
add: queryPolicyobject  
queryPolicyobject: CN=Extended Timeout,CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=X

Zaimportuj go przy użyciu następującego polecenia:

ldifde -i -f link-policy-dc.ldf -v -c DC=X DC= **forest root**

W przypadku lokacji plik importu LDIF będzie zawierał następujące elementy:

dn: CN=NTDS Site Settings,CN=site1,CN=Sites,CN=Configuration, DC=X  
changetype: modify  
add: queryPolicyobject  
queryPolicyobject: CN=Extended Timeout,CN=Query-Policies,CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=X

Uwaga 16.

Ntdsutil.exe wyświetla tylko wartość w domyślnych zasadach zapytania. Jeśli zdefiniowano jakiekolwiek zasady niestandardowe, nie są one wyświetlane przez Ntdsutil.exe.