تحميل ADUC بطيء أثناء الاتصال بعميل Cato SDP

المشكلة

قد يواجه مستخدمو ومعدات Active Directory (ADUC) تأخيرا أو بطئًا أثناء الاتصال بعميل Cato SDP.

البيئة

  • Cato SDP Client v4.2 والإصدارات الأحدث

استكشاف الأخطاء وإصلاحها

أثناء التشغيل، يرسل 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 غير الموجودة بصيغتين مميزتين:

  1.  _ldap._tcp.DCName.Domain.com
  2. _ldap._tcp.SiteName._sites.DCName.Domain.com

حيث DCName هو الاسم NetBIOS (اسم المضيف) للوحدة المراقبة (DC)، وSiteName هو اسم الموقع الذي توجد فيه DC، وDomain.com هو النطاق.

يمكن أن يقوم ADUC باستفسارات سجلات SRV لكل وحدة DC في النطاق. توجد المشكلة المذكورة في هذه المقالة إذا رأيت أي من استعلامات SRV واستجابة "لا يوجد اسم" في PCAP.

mceclip0.png

 

حلول

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

إنشاء سجلات SRV يدويًا

1. افتح مدير DNS على خادم DNS.

2. قم بتوسيع مناطق البحث الأمامي.

mceclip2.png

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

mceclip3.png

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

mceclip4.png

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

mceclip5.png

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

mceclip6.png

7. أدخل المعايير التالية في نافذة المنبثقة:

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

mceclip7.png

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

mceclip8.png

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

mceclip9.png

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

mceclip10.png

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

mceclip11.png

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

mceclip12.png

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

mceclip13.png

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

mceclip14.png

15. أدخل المعايير التالية في نافذة المنبثقة:

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

mceclip15.png

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

mceclip16.png

17. كرر الخطوات من 3 إلى 16 لكل DC في نطاقك

إنشاء سجلات SRV تلقائياً باستخدام PowerShell

يمكن تشغيل نص PowerShell أدناه على DC لإنشاء جميع سجلات SRV الضرورية للنطاق طالما كانت خوادم DNS هي أيضًا وحدات التحكم بالنطاق. يرجى ملاحظة أن هذا النص قد يحتاج إلى تعديل للعمل في بيئة العميل ولا يتحمل دعم Cato مسؤوليته عن إجراء أي تعديلات على هذا النص. ينبغي للعملاء استخدام هذا النص على مسئوليتهم الخاصة.

الاستخدام الموصى به:

1. احفظ النص في ملف بامتداد .ps1 ونسخه إلى DC.

2. على DC، افتح PowerShell بصلاحيات المدير وقم بتشغيل النص:

path_to_script.ps1

3. لاحظ أن النطاق الصحيح وخادم DNS تم اكتشافهما بواسطة النص وأن قائمة جميع DCs في النطاق صحيحة.

4. بشكل افتراضي، يقوم النص بتنبيهك قبل إنشاء سجلات SRV لكل DC. نوصي باستخدام هذه الطريقة على الأقل لأول DC ثم التحقق من إنشاء سجلات SRV بنجاح قبل المتابعة.

5. إذا تم إنشاء سجلات SRV لأول DC بنجاح، يمكنك تنفيذ النص مرة أخرى ولكن اختر الخيار "إنشاء مجمعات" [B] لإنشاء كل سجلات SRV دفعة واحدة دون تنبيهات.

نموذج الإخراج:

mceclip1.png

النص: 

$allDCs = (Get-ADForest).Domains | %{ Get-ADDomainController -Filter * -Server $_ } | Select-Object -Property Name, HostName, Domain, Site
$Domain = (Get-ADForest).Name
Write-Host ""
Write-Host "Domain:"
Write-Host " $Domain"
$DNSstring = nslookup -type=ns $Domain | Select-String -Pattern 'nameserver'
$DNSstring -match '(?<=nameserver = )(.*)' > $null
$DNSserver = $Matches[1]

Write-Host ""
Write-Host "Found DNS server:"
Write-Host " $DNSserver"
Write-Host ""
Write-Host "Found Domain Controllers:"
Foreach ($DC in $allDCs) {
Write-Host " $($DC.HostName)"
}

$title = 'Create SRV Records'
$question = 'How do you want to create SRV records?'

$bulk = New-Object System.Management.Automation.Host.ChoiceDescription "&Bulk create", "Creates all SRV records at once."
$prompt = New-Object System.Management.Automation.Host.ChoiceDescription "&Prompt for each", "Prompts before creating each SRV record."
$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 "Created SRV records for all DCs."
} elseif ($decision -eq 1) {
Foreach ($DC in $allDCs) {
Write-Host ""
Write-Host "Create SRV records for $($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 "Done creating SRV records."
} else {
Write-Host 'Cancelled'
}

 

 

هل كان هذا المقال مفيداً؟

1 من 2 وجدوا هذا مفيداً

لا توجد تعليقات