Bagaimana sistem klien dalam jaringan Active Directory menemukan di situs mana ia berada?

21

Ketika saya sedang menyusun presentasi untuk memulai administrasi Windows, saya dikejutkan dengan pertanyaan yang saya kagumi karena saya belum bertanya lebih awal.

Saya tahu itu:

  • AD secara logis diatur di situs untuk membantu dalam replikasi dan mengurangi latensi komunikasi yang diperlukan domain antara komputer klien dan layanan domain.
  • Situs didefinisikan oleh subnet yang diterapkan padanya
  • subdomain _msdcs berisi hierarki catatan SRV untuk pencarian umum (_tcp) dan untuk pencarian spesifik situs (_sites)
  • Komputer entah bagaimana tahu di mana mereka berada, atau pengontrol domain memutuskan secara transparan dalam sihir DNS ... atau apakah itu?

Posting blog ini mengisyaratkan bahwa komputer klien dalam jaringan AD dapat "mengetahui" situs apa yang menjadi anggotanya. Pertanyaan saya adalah, jika ini masalahnya, bagaimana mereka mengetahuinya?

Jika klien itu sendiri tidak tahu, bagaimana DC membantu mesin dalam proses memilih layanan AD terdekat dengan komputer klien itu?

Peter Grace
sumber

Jawaban:

29

Jawabannya adalah bahwa pertama kali klien mengautentikasi ke Active Directory, ia tidak tahu di mana situs itu berada.

Saat pertama kali bergabung dengan domain, klien membuat kueri DNS dan LDAP umum dan mendapatkan daftar semua pengontrol domain di domain tersebut, dan itu turun daftar, mencoba mengikat LDAP, dan DC sukses pertama yang mengikatnya - yaitu DC pertama yang diautentikasi dengannya.

Setelah klien bergabung dengan domain, Active Directory akan memberi tahu klien situs miliknya. Active Directory mengetahui hal ini karena administrator telah menempatkan subnet IP klien di Situs & Layanan AD dan menghubungkannya ke Situs.

Active Directory memberi tahu klien apa situs AD-nya, dan klien menyimpannya dalam registri sendiri dalam nilai HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\DynamicSiteNameregistri. Dengan begitu, saat berikutnya klien melakukan booting, ia mengetahui permintaan DNS spesifik situs apa yang harus dibuat sehingga hanya mendapat DC yang ada di situs tersebut.

Tentu saja perilaku lengkap didokumentasikan dalam KB247811 , tetapi jika Anda ingin melihatnya sendiri, Anda bisa menjalankan Wireshark atau NetMon dan melakukan jejak paket, dan kemudian bergabung dengan domain saat jejak sedang berjalan. Anda akan melihat urutan yang tepat dari permintaan DNS dan ikatan LDAP. Kueri DNS berikutnya dan ikatan LDAP dibuat ke sub-zona khusus situs karena klien telah diberi tahu oleh AD situs apa yang menjadi miliknya.

Layanan Netlogon akan secara berkala memperbarui info situs AD-nya, jadi jika Anda pindah ke jaringan yang berbeda, klien Anda akan mendapatkan situs barunya secara otomatis. Ini dapat disesuaikan dalam nilai HKLM\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters\SiteNameTimeoutregistri. ( Tautan )

Ryan Ries
sumber
GAH! Anda mengalahkan saya untuk itu!
MDMarra
4
@MDMarra Ini jarang terjadi tuan.
Ryan Ries
Karena penasaran, apakah pemeriksaan netlogon pernah dilakukan kembali? Sebagai contoh, bagaimana jika saya memiliki sistem yang ada di Site1 dan kemudian memindahkan orang dan peralatan ke Site2, akankah mesin masih mengidentifikasi dan terus berbicara dengan Site1?
Peter Grace
Sebenarnya saya mengambilnya kembali. Netlogon dapat memperbarui nama situs dinamis tanpa memulai kembali: technet.microsoft.com/en-us/library/cc958488.aspx
Ryan Ries
@RyanRies jika Anda ingin memasukkannya ke dalam teks jawaban Anda, itu akan luar biasa, kalau tidak saya akan mengedit jawaban untuk memasukkannya.
Peter Grace
8

Sebenarnya ada beberapa fungsi yang saling terkait / API. Meskipun panjang, sebenarnya ini adalah beberapa bacaan Active Directory yang lebih menarik.

Terlepas dari penjelasan di bawah ini, ada dua hal yang perlu Anda perhatikan:

  • Jika DC di situs lokal tidak merespons karena alasan apa pun, diharapkan klien akan menghubungi pengontrol domain apa pun di domain tersebut. Ini normal, dan itu selalu menjadi perilaku default. Terkadang tidak jelas mengapa itu terjadi.

  • Itu bisa suboptimal. Pertimbangkan skenario berikut: Tiga situs: New York City (hub / pusat data - cepat), Los Angeles (berbicara ke NYC - cepat), dan Kazakhstan (berbicara ke NYC - jelas tidak cepat). Jika klien Anda di situs LA tidak dapat menghubungi itu DC lokal untuk alasan apa pun, itu tidak masuk akal bahwa ia akan mengotentikasi dengan Kazakhstan.

Ada beberapa solusi. Anda dapat melakukan salah satu atau keduanya.

  • Microsoft membuat pengaturan Kebijakan / registri Grup dengan tepat bernama TryNextClosestSite. Itu berarti klien LA harus mencoba NYC sebelum menjelajahi planet untuk mencari DC. Cemerlang! Butuh delapan tahun, tapi kami akhirnya mendapatkannya dengan Vista / 2008. Ingat, tidak diaktifkan secara default, Anda harus membuat GPO untuk mengaktifkan ini.

  • Untuk situs berbicara di mana Anda benar-benar tidak ingin DC melayani klien di situs lain, Anda bisa membuat pengaturan Kebijakan Grup / registri yang menentukan catatan DNS mana yang tidak boleh didaftarkan. Ini disebut sebagai DNS Mnemonics.


Menemukan Pengontrol Domain di Situs Terdekat (DsGetSiteName API)
http://technet.microsoft.com/en-us/library/cc978016.aspx

Memetakan Alamat IP ke Nama Situs

"Selama startup Logon Net, layanan Logon Net pada setiap pengontrol domain menghitung objek situs dalam wadah konfigurasi. Log masuk Net pada setiap kontroler domain juga diberitahu tentang setiap perubahan yang dibuat untuk objek situs. Logon Net menggunakan informasi situs untuk membangun sebuah struktur dalam memori yang digunakan untuk memetakan alamat IP ke nama situs.

"Ketika klien yang sedang mencari pengontrol domain menerima daftar alamat IP pengontrol domain dari DNS, klien mulai meminta pengontrol domain pada gilirannya untuk mencari tahu pengontrol domain yang tersedia dan sesuai. Direktori aktif memotong kueri, yang berisi alamat IP klien, dan meneruskannya ke Net Logon pada pengontrol domain. Net Logon mencari alamat IP klien dalam tabel pemetaan subnet-ke-situs dengan menemukan objek subnet yang paling cocok dengan alamat IP klien dan kemudian mengembalikan informasi berikut:

  • Nama situs di mana klien berada, atau situs yang paling cocok dengan alamat IP klien.

  • Nama situs di mana pengendali domain saat ini berada.

  • Bit yang menunjukkan apakah pengontrol domain yang ditemukan terletak (bit diatur) atau tidak ditemukan (bit tidak diatur) di situs yang paling dekat dengan klien.

"Pengontrol domain mengembalikan informasi ke klien. Respons juga berisi berbagai informasi lain yang menggambarkan pengontrol domain. Klien memeriksa informasi untuk menentukan apakah akan mencoba menemukan pengontrol domain yang lebih baik. Keputusan dibuat sebagai berikut:

"Jika pengontrol domain yang dikembalikan berada di situs terdekat (bit yang dikembalikan diatur), klien menggunakan pengontrol domain ini.

"Jika klien telah mencoba menemukan pengontrol domain di situs di mana pengontrol domain mengklaim klien berada, klien menggunakan pengontrol domain ini.

"Jika pengontrol domain tidak di situs terdekat, klien memperbarui informasi situsnya dan mengirimkan permintaan DNS baru untuk menemukan pengontrol domain baru di situs. Jika kueri kedua berhasil, pengontrol domain baru digunakan. Jika permintaan kedua gagal, pengendali domain asli digunakan.

"Jika domain yang ditanyakan oleh komputer sama dengan domain tempat komputer itu bergabung, situs tempat komputer itu berada (seperti yang dilaporkan oleh pengontrol domain) disimpan dalam registri komputer. Klien menyimpan ini nama situs di entri registri DynamicSiteName di HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ Netlogon \ Parameters. Oleh karena itu, DsGetSiteName API mengembalikan situs tempat komputer berada. "

Fungsi DsGetDcName
http://msdn.microsoft.com/en-us/library/ms675983%28VS.85%29.aspx

Jenis-jenis Penunjuk Lokasi
http://technet.microsoft.com/en-us/library/cc978019.aspx

Fungsi Layanan Direktori
http://technet.microsoft.com/en-us/subscription/ms675900%28v=vs.85%29.aspx

Bagaimana Dukungan DNS untuk Active Directory Bekerja
http://technet.microsoft.com/en-us/library/cc759550%28v=ws.10%29.aspx

Cara mengoptimalkan lokasi pengontrol domain yang berada di luar situs klien
http://support.microsoft.com/kb/306602

Greg Askew
sumber