Esistono in realtà diverse funzioni / API correlate. Anche se sono lunghi, in realtà è una delle letture più interessanti di Active Directory.
Indipendentemente dalla spiegazione che segue, ci sono due cose di cui devi essere consapevole:
Se un controller di dominio nel sito locale non risponde per nessun motivo, si prevede che il client contatterà qualsiasi controller di dominio nel dominio. Questo è normale ed è sempre stato il comportamento predefinito. A volte non è chiaro il motivo per cui si sta verificando.
Questo può essere non ottimale. Considera il seguente scenario: Tre siti: New York City (hub / datacener - veloce), Los Angeles (ha parlato a New York - veloce) e Kazakistan (ha parlato a New York - sicuramente non veloce). Se il tuo cliente nel sito di Los Angeles non può contattare il DC locale per qualsiasi motivo, non è inconcepibile che effettuerà l'autenticazione con il Kazakistan.
Ci sono un paio di soluzioni. Puoi fare uno o entrambi.
Microsoft ha creato l'impostazione Criteri di gruppo / registro denominata in modo appropriato TryNextClosestSite. Ciò significa che il cliente di Los Angeles dovrebbe provare New York prima di vagare per il pianeta alla ricerca di DC. Brillante! Ci sono voluti otto anni, ma finalmente l'abbiamo ottenuto con Vista / 2008. Ricordare, non abilitato per impostazione predefinita, è necessario creare un oggetto Criteri di gruppo per abilitarlo.
Per i siti con raggio in cui non si desidera che quel controller di dominio offra client in altri siti, è possibile creare un'impostazione di Criteri di gruppo / registro che specifica quali record DNS non devono essere registrati. Questo è indicato come DNS Mnemonics.
Trovare un controller di dominio nel sito più vicino (API DsGetSiteName)
http://technet.microsoft.com/en-us/library/cc978016.aspx
Mappatura degli indirizzi IP sui nomi dei siti
"Durante l'avvio di Net Logon, il servizio Accesso rete su ciascun controller di dominio enumera gli oggetti del sito nel contenitore Configurazione. Anche l'accesso rete su ciascun controller di dominio viene notificato di eventuali modifiche apportate agli oggetti del sito. Accesso rete utilizza le informazioni del sito per creare un struttura in memoria utilizzata per mappare gli indirizzi IP ai nomi dei siti.
"Quando un client che cerca un controller di dominio riceve l'elenco di indirizzi IP del controller di dominio dal DNS, il client inizia a interrogare i controller di dominio a sua volta per scoprire quale controller di dominio è disponibile e appropriato. Active Directory intercetta la query, che contiene l'indirizzo IP del client e lo passa a Accesso rete sul controller di dominio. Accesso rete cerca l'indirizzo IP del client nella tabella di mappatura da sottorete a sito trovando l'oggetto sottorete che corrisponde maggiormente all'indirizzo IP del client e quindi restituisce le seguenti informazioni:
Il nome del sito in cui si trova il client o il sito che corrisponde maggiormente all'indirizzo IP del client.
Il nome del sito in cui si trova il controller di dominio corrente.
Un bit che indica se il controller di dominio trovato si trova (il bit è impostato) o no (il bit non è impostato) nel sito più vicino al client.
"Il controller di dominio restituisce le informazioni al client. La risposta contiene anche varie altre informazioni che descrivono il controller di dominio. Il client controlla le informazioni per determinare se provare a trovare un controller di dominio migliore. La decisione viene presa come segue:
"Se il controller di dominio restituito si trova nel sito più vicino (il bit restituito è impostato), il client utilizza questo controller di dominio.
"Se il client ha già provato a trovare un controller di dominio nel sito in cui il controller di dominio afferma che si trova il client, il client utilizza questo controller di dominio.
"Se il controller di dominio non si trova nel sito più vicino, il client aggiorna le informazioni sul sito e invia una nuova query DNS per trovare un nuovo controller di dominio nel sito. Se la seconda query ha esito positivo, viene utilizzato il nuovo controller di dominio. Se il la seconda query non riesce, viene utilizzato il controller di dominio originale.
"Se il dominio interrogato da un computer è uguale al dominio a cui è unito il computer, il sito in cui risiede il computer (come riportato da un controller di dominio) viene archiviato nel registro del computer. Il client memorizza questo nome del sito nella voce del Registro di sistema DynamicSiteName in HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Netlogon \ Parameters. Pertanto, l'API DsGetSiteName restituisce il sito in cui si trova il computer. "
Funzione DsGetDcName
http://msdn.microsoft.com/en-us/library/ms675983%28VS.85%29.aspx
Tipi di localizzatori
http://technet.microsoft.com/en-us/library/cc978019.aspx
Funzioni del servizio di directory
http://technet.microsoft.com/en-us/subscriptions/ms675900%28v=vs.85%29.aspx
Come funziona il supporto DNS per Active Directory
http://technet.microsoft.com/en-us/library/cc759550%28v=ws.10%29.aspx
Come ottimizzare la posizione di un controller di dominio che risiede al di fuori del sito di un client
http://support.microsoft.com/kb/306602