Trovare il controller di dominio più vicino tramite LDAP

Sono in un host di Unix e sto cercando un modo programmabile per determinare la DC più vicina. Microsoft ha un eccellente articolo che spiega come eseguire la ricerca DNS e sono in grado di trovare l'elenco dei DC disponibili in questo modo:

dig -t SRV _ldap._tcp.dc._msdcs.example.com 

Ma per quanto riguarda la ricerca del più vicino, spiega:

  • Come permettere a alcuni utenti (non amministratori) di modificare properties; di indirizzo / telefono per tutti gli utenti di AD?
  • Hai bisogno di aiuto per automatizzare la distribuzione di thunderbird con il nostro certificato di root
  • Utilizzo dell'authentication Active Directory con Samba su Ubuntu 9.10 server 64bit
  • L'authentication LDAP non riesce con 500 o 401 a seconda del bind per Apache2
  • Come creare "batch" le cartelle per l'unità di networking degli utenti di Active Directory?
  • return dell'utente / dominio netto Errore 5 - l'accesso è negato
  • Dopo che il client individua un controller di dominio, stabilisce la comunicazione utilizzando LDAP per accedere a Active Directory. Come parte di tale negoziazione, il controller di dominio identifica quale sito il client è basato sulla substring IP di quel client. Se il client sta comunicando con un controller di dominio che non è nel sito più vicino (ottimale), il controller di dominio restituisce il nome del sito del client.

    Finora non sono stato in grado di trovare where questo "restituisce il nome del sito del client" si verifica durante le query LDAP. C'è una particolare domanda che dovrei eseguire per get questo o altre tecniche che possono essere eseguite su un host Unix non unito al dominio?

    EDIT: Grazie al puntatore di Sim, ho imparato a trovare la DC corretta quando conosco il mio sito (in questo esempio, "mysite" come parte di esempio.com):

     dig -t SRV _ldap._tcp.mysite._sites.dc._msdcs.example.com 

    Ma questo lascia aperta la questione di come determinare il mio sito. Ripetutamente i documenti indicano che qualsiasi DC connesso a me lo farà per me, ma non riesco a trovare il documento che dice come mi restituisce le informazioni. Ho anche provato a submit domande DNS direttamente a DC per vedere se ordinano i risultati SRV con il mio sito in cima, ma non lo fanno.

  • slapd non funzionante
  • 4 Solutions collect form web for “Trovare il controller di dominio più vicino tramite LDAP”

    Questo articolo TechNet ti port attraverso la logica di Trova un controller di dominio nel sito più vicino se questo aiuta.

    Dato che sei su Unix hai guardato come Samba faccia questo? Sembra che questo sia fatto con CLDAP. Questa voce del blog – unire un dominio di Samba potrebbe fornire alcune risposte più.

    È ansible trovare un'implementazione di cldap nel codice sorgente di Samba in questo file *. / Examples / misc / cldap.pl. Basta chiamarlo con ./cldap.pl -d domain -s domaincontroller e otterrai il SITENAME che puoi utilizzare in ulteriori query DNS. Un documento MSDN: risposta del controller di dominio a un ping di LDAP

    Innanzitutto get un elenco di controller di dominio sulla networking (potrebbe o non essere più vicino).

     nslookup -query=srv _ldap._tcp.example.net.local 

    Quindi puoi interrogare uno di loro per trovare il nome del tuo sito in base alla tua substring.

     ldapsearch -H ldap://dc123.example.net.local -b 'CN=Subnets,CN=Sites,CN=Configuration,dc=net,dc=local' '(cn=10.10.10.0/24)' siteObject 

    Assicurarsi di sostituire la maschera IP e la subnet con quella della macchina che si desidera identificare.

    È quindi ansible trovare i controller di dominio che appartengono a tale sito.

     nslookup -query=srv _ldap._tcp.sitename._sites.example.net.local 

    L'integer algorithm sembra

    1. Risolvere _ldap._tcp.dc._msdcs.example.com
    2. Seleziona uno in base a rfc-2782
    3. Invia LDAP Ping a esso e leggere il sito client se restituito
    4. Risolvere _ldap._tcp.Client-Site._sites.dc._msdcs.example.com
    5. Seleziona uno in base a rfc-2782

    Fatto!

    LDAP Ping è

     ldapsearch -H CLDAP://server -b '' -s base '(&(NtVer=\06\00\00\00)(AAC=\00\00\00\00))' netlogon 

    quindi leggerlo come NETLOGON_SAM_LOGON_RESPONSE_EX. Vedere qui https://msdn.microsoft.com/en-us/library/cc223807.aspx

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.