القضية
قد يواجه مستخدمو ومعدات Active Directory (ADUC) تأخيرا أو بطئًا أثناء الاتصال بعميل Cato SDP.
بيئة
Cato SDP Client v4.2 والإصدارات الأحدث
\u0627\u0644\u0645\u062b\u0627\u0648\u064a\u0627\u062a
أثناء التشغيل، يرسل ADUC استعلامات DNS لسجلات SRV غير القياسية وغير الموجودة. هذه الاستعلامات ليست ضرورية وغير واضح سبب قيام ADUC بها. لمزيد من المعلومات، راجع سلوك محلل استعلامات DNS
عميل Cato SDP يمنع طلبات DNS في كل واجهة شبكة باستثناء واجهة VPN الخاصة بـ Cato لتوجيه DNS عبر نفق VPN. هذا يعمل جيدًا مع تقريباً جميع التطبيقات ما عدا ADUC بسبب استعلامات SRV المذكورة أعلاه.
إذا لم يتلق ADUC استجابة إيجابية للاستعلامات من خوادم DNS المُكونة على محول VPN الخاص بـ Cato، فإنه يرسل الاستعلامات إلى خوادم DNS المُكونة على المحول الفيزيائي (WiFi, Ethernet). تم حظر هذه الاستعلامات بواسطة عميل Cato VPN لذا لا يتلقى ADUC الدائماً استجابة. على الرغم من أن هذا لم يُعترف به أو يؤكد من قبل Microsoft، إلا أننا نعتقد أن ADUC ينتظر انتهاء مهلة استعلامات DNS على المحولات الفيزيائية قبل المضي قدماً، وهذا يفسر بطئ وقت التحميل. كما نعتقد، فإن ADUC هو التطبيق الوحيد الذي يظهر هذا السلوك، وقد يكون عيبًا من Microsoft.
للتحقق من حدوث المشكلة المذكورة أعلاه، يمكن تنفيذ سحب PCAP على النفق. تصفية لدليل DNS (المنفذ 53) أثناء فتح المستخدم ADUC. تطبيق الفلتر التالي في Wireshark لعرض استعلامات SRV:
dns.qry.type == 33يقوم ADUC بعمل استعلامات لسجلات SRV غير الموجودة بصيغتين مميزتين:
_ldap._tcp.DCName.النطاق.com
_ldap._tcp.اسم الموقع._sites.DCName.النطاق.com
حيث DCName هو الاسم NetBIOS (اسم المضيف) للوحدة المراقبة (DC)، وSiteName هو اسم الموقع الذي توجد فيه DC، وDomain.com هو النطاق.
يمكن أن يقوم ADUC باستفسارات سجلات SRV لكل وحدة DC في النطاق. توجد المشكلة المذكورة في هذه المقالة إذا رأيت أي من استعلامات SRV واستجابة "لا يوجد اسم" في PCAP.

حلول
استخدم سطح المكتب البعيد أو أدوات الوصول عن بعد أخرى لتسجيل الدخول إلى DC وإدارة دليل Active.
استخدم مركز إدارة Active Directory (ADAC) لإدارة Active Directory عن بعد. ADAC هو أداة أحدث وأكثر قوة من ADUC عندما يتعلق الأمر بإدارة AD، لكن هناك منحنى تعلم. لمزيد من المعلومات حول ADAC قم بزيارة مركز إدارة Active Directory
قم بإنشاء السجلات SRV التي يستفسر عنها ADUC في Windows DNS. اطلع على التعليمات أدناه.
تواصل مع دعم Cato للحصول على حلول إضافية للسطح الخلفي وبدائل دعم.
إنشاء سجلات SRV يدويًا
افتح مدير DNS على خادم DNS.
قم بتوسيع مناطق البحث الأمامي.

انقر بزر الماوس الأيمن على نطاقك وانقر على "نطاق جديد…".

أدخل اسم المضيف لـ DC كاسم النطاق.

انقر بزر الماوس الأيمن على النطاق الفرعي الذي تم إنشاؤه في الخطوة السابقة واختر "سجلات جديدة أخرى…".

حدد مكان الخدمة (SRV) وانقر على "إنشاء سجل…".

أدخل المعايير التالية في نافذة المنبثقة:
الخدمة: _ldap
البروتوكول: _tcp
المضيف الذي يقدم هذه الخدمة: FQDN لـ DC مع نقطة في النهاية.

انقر على "موافق". سيتم إنشاء سجلات SRV.

انقر بزر الماوس الأيمن على النطاق الفرعي الذي سميته بعد DC الذي أنشأته في الخطوة 4 واختر "نطاق جديد…"

قم بتسمية النطاق "_sites" وانقر على "موافق".

انقر بزر الماوس الأيمن على نطاق _sites واختر "نطاق جديد…".

قم بتسمية النطاق الفرعي الذي تم إنشاؤه في الخطوة السابقة باسم الموقع الذي توجد فيه DC وانقر على "موافق".

انقر بزر الماوس الأيمن على النطاق الفرعي الذي أنشأته في الخطوة السابقة واختر "سجلات جديدة أخرى…".

حدد مكان الخدمة (SRV) وانقر فوق "إنشاء سجل…".

أدخل المعايير التالية في نافذة المنبثقة:
الخدمة: _ldap
البروتوكول: _tcp
المضيف الذي يقدم هذه الخدمة: FQDN لـ DC مع نقطة في النهاية.

انقر على "موافق". سيتم إنشاء سجل SRV جديد.

كرر الخطوات من 3 إلى 16 لكل DC في نطاقك
إنشاء سجلات SRV تلقائياً باستخدام PowerShell
يمكن تشغيل نص PowerShell أدناه على DC لإنشاء جميع سجلات SRV الضرورية للنطاق طالما كانت خوادم DNS هي أيضًا وحدات التحكم بالنطاق. يرجى ملاحظة أن هذا النص قد يحتاج إلى تعديل للعمل في بيئة العميل ولا يتحمل دعم Cato مسؤوليته عن إجراء أي تعديلات على هذا النص. ينبغي للعملاء استخدام هذا النص على مسئوليتهم الخاصة.
الاستخدام الموصى به:
احفظ النص في ملف بامتداد .ps1 ونسخه إلى DC.
على DC، افتح PowerShell بصلاحيات المدير وقم بتشغيل النص:
path_to_script.ps1لاحظ أن النطاق الصحيح وخادم DNS تم اكتشافهما بواسطة النص وأن قائمة جميع DCs في النطاق صحيحة.
بشكل افتراضي، يقوم النص بتنبيهك قبل إنشاء سجلات SRV لكل DC. نوصي باستخدام هذه الطريقة على الأقل لأول DC ثم التحقق من إنشاء سجلات SRV بنجاح قبل المتابعة.
إذا تم إنشاء سجلات SRV لأول DC بنجاح، يمكنك تنفيذ النص مرة أخرى ولكن اختر الخيار "إنشاء مجمعات" [B] لإنشاء كل سجلات SRV دفعة واحدة دون تنبيهات.
نموذج الإخراج:

النص البرمجي:
$allDCs = (Get-ADForest).Domains | %{ Get-ADDomainController -Filter * -Server $_ } | Select-Object -Property Name, HostName, Domain, Site
$Domain = (Get-ADForest).Name
Write-Host ""
Write-Host "النطاق:"
Write-Host " $Domain"
$DNSstring = nslookup -type=ns $Domain | Select-String -Pattern 'nameserver'
$DNSstring -match '(?<=nameserver = )(.*)' > $null
$DNSserver = $Matches[1]
Write-Host ""
Write-Host "خادم DNS المكتشف:"
Write-Host " $DNSserver"
Write-Host ""
Write-Host "وحدات التحكم بالنطاق المكتشفة:"
Foreach ($DC in $allDCs) {
Write-Host " $($DC.HostName)"
}
$title = 'إنشاء سجلات SRV'
$question = 'كيف ترغب في إنشاء سجلات SRV؟'
$bulk = New-Object System.Management.Automation.Host.ChoiceDescription "&إنشاء بالجملة", "تنشئ كافة سجلات SRV دفعة واحدة."
$prompt = New-Object System.Management.Automation.Host.ChoiceDescription "&مطالبة لكل", "ستتم مطالبتك قبل إنشاء كل سجل SRV."
$choices = [System.Management.Automation.Host.ChoiceDescription[]]($bulk, $prompt)
$decision = $Host.UI.PromptForChoice($title, $question, $choices, 1)
if ($decision -eq 0) {
Foreach ($DC in $allDCs) {
Add-DnsServerResourceRecord -Srv -Name "_ldap._tcp.$($DC.Name)" -ZoneName $DC.Domain -DomainName "$($DC.HostName)" -Weight 0 -Priority 0 -Port 389 -ComputerName $DNSserver
Add-DnsServerResourceRecord -Srv -Name "_ldap._tcp.$($DC.Site)._sites.$($DC.Name)" -ZoneName $DC.Domain -DomainName "$($DC.HostName)" -Weight 0 -Priority 0 -Port 389 -ComputerName $DNSserver
}
Write-Host ""
Write-Host "تم إنشاء سجلات SRV لجميع وحدات التحكم بالنطاق."
} elseif ($decision -eq 1) {
Foreach ($DC in $allDCs) {
Write-Host ""
Write-Host "إنشاء سجلات SRV لـ $($DC.HostName)؟" -ForegroundColor Yellow
$Readhost = Read-Host " ( y / n ) "
if ($Readhost -eq 'y') {
Add-DnsServerResourceRecord -Srv -Name "_ldap._tcp.$($DC.Name)" -ZoneName $DC.Domain -DomainName "$($DC.HostName)" -Weight 0 -Priority 0 -Port 389 -ComputerName $DNSserver
Add-DnsServerResourceRecord -Srv -Name "_ldap._tcp.$($DC.Site)._sites.$($DC.Name)" -ZoneName $DC.Domain -DomainName "$($DC.HostName)" -Weight 0 -Priority 0 -Port 389 -ComputerName $DNSserver
}
}
Write-Host ""
Write-Host "اكتمل إنشاء سجلات SRV."
} else {
Write-Host 'تم الإلغاء'
}