मुद्दा
सक्रिय डायरेक्ट्री उपयोगकर्ता और कंप्यूटर (ADUC) Cato SDP क्लाइंट से कनेक्टेड होते समय विलंबता या धीमेपन का अनुभव कर सकते हैं।
पर्यावरण
Cato SDP क्लाइंट v4.2 और ऊपर
ट्रबलशूटिंग
जब यह चल रहा है, ADUC गैर-मानक, गैर-मौजूद SRV रिकॉर्ड्स के लिए डीएनएस क्वेरी करता है। ये क्वेरी आवश्यक नहीं हैं और यह ज्ञात नहीं है कि ADUC इन्हें क्यों बनाता है। अधिक जानकारी के लिए, देखें DNS क्लाइंट रिजोल्वर व्यवहार
Cato SDP क्लाइंट नेटवर्क इंटरफेस पर DNS अनुरोधों को अवरुद्ध करता है सिवाय Cato VPN इंटरफेस के, DNS को VPN टनल के माध्यम से सीधा करने के लिए। यह लगभग सभी अनुप्रयोगों के लिए अच्छा काम करता है, लेकिन ऊपर बताए गए SRV क्वेरी के कारण ADUC के लिए नहीं।
यदि ADUC को Cato VPN एडेप्टर पर कॉन्फ़िगर किए गए DNS सर्वरों से क्वेरी का सकारात्मक उत्तर नहीं मिलता है, तो यह क्वेरी को उन DNS सर्वरों पर भेजता है जो भौतिक (WiFi, Ethernet) एडेप्टर पर कॉन्फ़िगर हैं। ये क्वेरी Cato VPN क्लाइंट द्वारा अवरुद्ध होते हैं इसलिए ADUC को कभी कोई उत्तर नहीं मिलता है। हालांकि इस बात को Microsoft द्वारा स्वीकार या पुष्टि नहीं की गई है, हमें विश्वास है कि ADUC कार्यवाही से पहले भौतिक एडेप्टरों पर DNS क्वेरियों के टाइम आउट होने का इंतज़ार करता है, और यह धीमी लोड समय का कारण बताता है। जहाँ तक हमें पता है, ADUC इस व्यवहार को दर्शाने वाला एकमात्र एप्लिकेशन है, और यह बहुत अच्छी तरह संभवतः Microsoft की एक बग हो सकती है।
यह सत्यापित करने के लिए कि उपरोक्त समस्या का सामना होता है, टनल पर एक PCAP कैप्चर लिया जा सकता है। उपयोगकर्ता ADUC खोलते समय DNS (पोर्ट 53) के लिए फ़िल्टर करें। SRV क्वेरी देखने के लिए Wireshark में निम्नलिखित फ़िल्टर लागू करें:
dns.qry.type == 33ADUC दो विशेष प्रारूपों में अस्तित्वहीन SRV रिकॉर्ड के लिए क्वेरी कर सकता है:
_ldap._tcp.DCName.डोमेन.com
_ldap._tcp.SiteName._sites.DCName.डोमेन.com
जहां DCName एक डोमेन नियंत्रक (DC) का NetBIOS नाम (होस्ट का नाम) है, SiteName उस साइट का नाम है जिसमें DC निवास करता है, और Domain.com डोमेन है।
ADUC एक डोमेन में हर DC के लिए SRV रिकॉर्ड क्वेरी संभावित रूप से कर सकता है। इस लेख में उल्लिखित समस्या मौजूद है यदि आप किसी भी SRV क्वेरी और PCAP में "ऐसा कोई नाम नहीं" उत्तर देखते हैं।

समाधान
रिमोट डेस्कटॉप या अन्य दूरस्थ पहुँच साधन का उपयोग करके DC में लॉग इन करें और सक्रिय डायरेक्ट्री का प्रबंधन करें।
सक्रिय डायरेक्ट्री प्रशासन केन्द्र (ADAC) का उपयोग करके सक्रिय डायरेक्ट्री को दूरस्थ रूप से प्रबंधित करें। AD प्रबंधन के मामले में ADAC ADUC से नया और अधिक शक्तिशाली साधन है, लेकिन इसके लिए एक सीखने की वक्र है। ADAC के बारे में अधिक जानकारी के लिए सक्रिय डायरेक्ट्री प्रशासन केन्द्र देखें
Windows DNS में ADUC क्वेरी के लिए SRV रिकॉर्ड बनाएँ। नीचे दिए गए निर्देश देखें।
अतिरिक्त समस्या निवारण और बैकएंड वैकल्पिक समाधानों के लिए Cato समर्थन से संपर्क करें।
SRV रिकॉर्ड मैन्युअली बनाएँ
DNS सर्वर पर DNS प्रबंधक खोलें।
फॉरवर्ड लुकअप ज़ोन का विस्तार करें।

अपने डोमेन पर राइट-क्लिक करें और "नया डोमेन..." पर क्लिक करें।

डोमेन नाम के रूप में DC के होस्ट का नाम दर्ज करें।

उस उप-डोमेन पर राइट-क्लिक करें जिसे आपने पिछले चरण में बनाया था और "अन्य नए रिकॉर्ड..." का चयन करें।

सेवा स्थान (SRV) का चयन करें और "रेकॉर्ड बनाएँ..." पर क्लिक करें।

पॉप-अप विंडो में निम्नलिखित पैरामीटर दर्ज करें:
सेवा: _ldap
प्रोटोकॉल: _tcp
यह सेवा प्रदान करने वाला होस्ट: DC का पूर्ण डोमेन नाम (FQDN) जिसके अंत में एक बिंदु होता है।

"ठीक है" पर क्लिक करें। एक SRV रिकॉर्ड बनाया जाएगा।

उस उप-डोमेन पर राइट-क्लिक करें जिसे आपने कदम 4 में बनाया था और "नया डोमेन..." का चयन करें

डोमेन को "_sites" का नाम दें और "ठीक है" पर क्लिक करें।

_sites डोमेन पर राइट-क्लिक करें और "नया डोमेन..." का चयन करें।

उस साइट के नाम पर पिछले चरण में बनाए गए उप-डोमेन को नाम दें जहां DC स्थित है और "ठीक है" पर क्लिक करें।

पिछले चरण में बनाए गए उप-डोमेन पर राइट-क्लिक करें और "अन्य नए रिकॉर्ड..." का चयन करें।

सेवा स्थान (SRV) को चयनित करें और "रेकॉर्ड बनाएँ..." पर क्लिक करें।

पॉप-अप विंडो में निम्नलिखित पैरामीटर दर्ज करें:
सेवा: _ldap
प्रोटोकॉल: _tcp
यह सेवा प्रदान करने वाला होस्ट: DC का पूर्ण डोमेन नाम (FQDN) जिसके अंत में एक बिंदु होता है।

"ठीक है" पर क्लिक करें। एक नया SRV रिकॉर्ड बनाया जाएगा।

अपने डोमेन के प्रत्येक DC के लिए चरण 3-16 दोहराएं।
PowerShell का उपयोग करके स्वचालित रूप से SRV रिकॉर्ड बनाएँ
जब तक DNS सर्वर भी डोमेन नियंत्रक होते हैं, डोमेन के लिए आवश्यक सभी SRV रिकॉर्ड्स को बनाने के लिए नीचे स्क्रिप्ट को DC पर चलाया जा सकता है। कृपया ध्यान दें कि इस स्क्रिप्ट को ग्राहक के वातावरण में काम करने के लिए संशोधित करना आवश्यक हो सकता है और Cato सहायता इस स्क्रिप्ट में कोई संशोधन करने के लिए जिम्मेदार नहीं है। ग्राहकों को इस स्क्रिप्ट का उपयोग अपने जोखिम पर करना चाहिए।
अनुशंसित उपयोग:
स्क्रिप्ट को .ps1 एक्सटेंशन के साथ एक फाइल में सहेजे और इसे DC पर कॉपी करें।
डीसी पर, व्यवस्थापक की विशेषाधिकारों के साथ PowerShell खोलें और स्क्रिप्ट चलाएँ:
path_to_script.ps1यह देखें कि स्क्रिप्ट द्वारा सही डोमेन और डीएनएस सर्वर पाया गया और यह कि डोमेन में सभी डीसी की सूची सही है।
डिफ़ॉल्ट रूप से, स्क्रिप्ट प्रत्येक डीसी के लिए SRV रिकॉर्ड्स बनाने से पहले प्रॉम्प्ट करती है। हम अनुशंसा करते हैं कि कम से कम पहले डीसी के लिए इस विधि का उपयोग करें और जारी रखने से पहले यह सत्यापित करें कि SRV रिकॉर्ड्स सफलतापूर्वक बनाए गए।
यदि पहले डीसी के लिए SRV रिकॉर्ड्स सफलतापूर्वक बनाए गए थे, तो आप स्क्रिप्ट को फिर से चला सकते हैं लेकिन सभी SRV रिकॉर्ड्स को एक बार में बिना प्रॉम्प्ट के बनाने के लिए "बुल्क क्रिएट" विकल्प [B] चुनें।
नमूना आउटपुट:

लिपि:
$allDCs = (Get-ADForest).Domains | %{ Get-ADDomainController -Filter * -Server $_ } | Select-Object -Property नाम, होस्ट का नाम, डोमेन, साइट
$Domain = (Get-ADForest).नाम
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 "सभी DCs के लिए SRV रिकॉर्डस बनाए गए।"
} elseif ($decision -eq 1) {
Foreach ($DC in $allDCs) {
Write-Host ""
Write-Host "$($DC.HostName) के लिए SRV रिकॉर्ड बनाएँ?" -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 'रद्द किया गया'
}