Problème
Les utilisateurs et ordinateurs Active Directory (ADUC) peuvent rencontrer des latences ou des lenteurs lorsqu'ils sont connectés au client SDP de Cato.
Environnement
- Client SDP de Cato v4.2 et au-dessus
Dépannage
Pendant son exécution, ADUC effectue des requêtes DNS pour des enregistrements SRV non standards et inexistants. Ces requêtes ne sont pas nécessaires et on ne sait pas pourquoi ADUC les effectue. Pour plus d'informations, consultez Comportement du résolveur client DNS
Le client SDP de Cato bloque les requêtes DNS sur chaque interface réseau sauf pour l'interface VPN de Cato afin de diriger le DNS via le tunnel VPN. Cela fonctionne bien pour presque toutes les applications sauf ADUC à cause des requêtes SRV mentionnées ci-dessus.
Si ADUC ne reçoit pas de réponse positive aux requêtes des serveurs DNS configurés sur l'adaptateur VPN Cato, il envoie les requêtes aux serveurs DNS configurés sur l'adaptateur physique (WiFi, Ethernet). Ces requêtes sont bloquées par le client VPN Cato donc ADUC ne reçoit jamais de réponse. Bien que cela n'ait pas été reconnu ou confirmé par Microsoft, nous pensons qu'ADUC attend que les requêtes DNS expirent sur les adaptateurs physiques avant de continuer, ce qui explique les temps de chargement lents. Autant que nous sachions, ADUC est la seule application à présenter ce comportement et cela pourrait être un bogue de Microsoft.
Pour vérifier que le problème ci-dessus est rencontré, une capture PCAP peut être effectuée sur le tunnel. Filtrer pour DNS (port 53) pendant que l'utilisateur ouvre ADUC. Appliquer le filtre suivant dans Wireshark pour voir les requêtes SRV :
dns.qry.type == 33
ADUC effectue des requêtes pour des enregistrements SRV inexistants dans deux formats distincts :
- _ldap._tcp.DCName.Domaine.com
- _ldap._tcp.SiteName._sites.DCName.Domaine.com
Où DCName est le nom NetBIOS (nom d'hôte) d'un contrôleur de domaine (DC), SiteName est le nom du site dans lequel se trouve le DC, et Domain.com est le domaine.
ADUC peut potentiellement interroger les enregistrements SRV pour chaque DC dans un domaine. Le problème mentionné dans cet article existe si vous voyez l'une des requêtes SRV et une réponse "Aucun nom de ce type" dans le PCAP.
Solutions
- Utiliser le bureau à distance ou un autre outil d'accès distant pour vous connecter au DC et gérer Active Directory.
- Utiliser le centre d'administration Active Directory (ADAC) pour gérer Active Directory à distance. ADAC est un outil plus récent et plus puissant qu'ADUC en matière de gestion Active Directory, mais il y a une courbe d'apprentissage. Pour plus d'informations sur ADAC, visitez Centre d'administration Active Directory
- Créer les enregistrements SRV qu'ADUC interroge dans Windows DNS. Voir les instructions ci-dessous.
- Contactez le support Cato pour plus de dépannage et des solutions alternatives backend.
Créer manuellement des enregistrements SRV
1. Ouvrir le gestionnaire DNS sur le serveur DNS.
2. Développez les zones de recherche directe.
3. Cliquez droit sur votre domaine et cliquez sur « Nouveau domaine… ».
4. Entrez le nom d'hôte du DC comme nom de domaine.
5. Cliquez droit sur le sous-domaine créé à l'étape précédente et sélectionnez « Autres nouveaux enregistrements… ».
6. Sélectionnez emplacement de service (SRV) et cliquez sur « Créer un enregistrement… ».
7. Entrez les paramètres suivants dans la fenêtre pop-up :
- Service : _ldap
- Protocole : _tcp
- Hôte offrant ce service : le FQDN du DC avec un point à la fin.
8. Cliquer sur "OK". Un enregistrement SRV sera créé.
9. Cliquez droit sur le sous-domaine nommé d'après le DC que vous avez créé à l'étape 4 et sélectionnez « Nouveau domaine… »
10. Nommez le domaine « _sites » et cliquez sur "OK".
11. Cliquez droit sur le domaine _sites et sélectionnez « Nouveau domaine... ».
12. Nommez le sous-domaine créé à l'étape précédente d'après le site dans lequel réside le DC et cliquez "OK".
13. Cliquez droit sur le sous-domaine créé à l'étape précédente et sélectionnez "Autres nouveaux enregistrements...".
14. Sélectionnez l'emplacement du service (SRV) et cliquez sur "Créer un enregistrement...".
15. Entrez les paramètres suivants dans la fenêtre pop-up :
- Service : _ldap
- Protocole : _tcp
- Hôte offrant ce service : le FQDN du DC avec un point à la fin.
16. Cliquer sur "OK". Un nouvel enregistrement SRV sera créé.
17. Répétez les étapes 3 à 16 pour chaque DC dans votre domaine.
Créer automatiquement des enregistrements SRV à l'aide de PowerShell
Le script PowerShell ci-dessous peut être exécuté sur un DC pour créer tous les enregistrements SRV nécessaires pour un domaine tant que les serveurs DNS sont également des contrôleurs de domaine. Veuillez noter que ce script peut devoir être modifié pour fonctionner dans l'environnement du client et le support Cato n'est pas responsable des modifications apportées à ce script. Les clients doivent utiliser ce script à leurs propres risques.
Utilisation recommandée :
1. Enregistrez le script dans un fichier avec l'extension .ps1 et copiez-le sur un DC.
2. Sur le DC, ouvrez PowerShell avec des privilèges d'administrateur et exécutez le script :
path_to_script.ps1
3. Vérifiez que le script a détecté le bon domaine et un serveur DNS et que la liste de tous les DCs dans le domaine est correcte.
4. Par défaut, le script demande confirmation avant de créer des enregistrements SRV pour chaque DC. Nous recommandons d'utiliser cette méthode au moins pour le premier DC et de vérifier que les enregistrements SRV ont été créés avec succès avant de continuer.
5. Si les enregistrements SRV pour le premier DC ont été créés avec succès, vous pouvez exécuter à nouveau le script mais choisir l'option "Création en masse" [B] pour créer tous les enregistrements SRV à la fois sans avertissement.
Exemple de sortie :
Script :
$allDCs = (Get-ADForest).Domains | %{ Get-ADDomainController -Filter * -Server $_ } | Select-Object -Property Name, HostName, Domain, Site
$Domaine = (Get-ADForest).Name
Write-Host ""
Write-Host "Domaine:"
Write-Host " $Domaine"
$DNSchaîne = nslookup -type=ns $Domaine | Select-String -Pattern 'nameserver'
$DNSchaîne -match '(?<=nameserver = )(.*)' > $null
$DNSserveur = $Matches[1]
Write-Host ""
Write-Host "Serveur DNS trouvé:"
Write-Host " $DNSserveur"
Write-Host ""
Write-Host "Contrôleurs de Domaine trouvés:"
Foreach ($DC in $allDCs) {
Write-Host " $($DC.HostName)"
}
$titre = 'Créer des Enregistrements SRV'
$question = 'Comment voulez-vous créer des enregistrements SRV?'
$masse = New-Object System.Management.Automation.Host.ChoiceDescription "&Création en masse", "Crée tous les enregistrements SRV à la fois."
$inviter = New-Object System.Management.Automation.Host.ChoiceDescription "&Demander pour chaque", "Demande avant de créer chaque enregistrement SRV."
$choix = [System.Management.Automation.Host.ChoiceDescription[]]($masse, $inviter)
$décision = $Host.UI.PromptForChoice($titre, $question, $choix, 1)
if ($décision -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 $DNSserveur
Add-DnsServerResourceRecord -Srv -Name "_ldap._tcp.$($DC.Site)._sites.$($DC.Name)" -ZoneName $DC.Domain -DomainName "$($DC.HostName)" -Weight 0 -Priority 0 -Port 389 -ComputerName $DNSserveur
}
Write-Host ""
Write-Host "Enregistrements SRV créés pour tous les DCs."
} elseif ($décision -eq 1) {
Foreach ($DC in $allDCs) {
Write-Host ""
Write-Host "Créer des enregistrements SRV pour $($DC.HostName)?" -ForegroundColor Yellow
$Readhost = Read-Host " ( o / n ) "
if ($Readhost -eq 'o') {
Add-DnsServerResourceRecord -Srv -Name "_ldap._tcp.$($DC.Name)" -ZoneName $DC.Domain -DomainName "$($DC.HostName)" -Weight 0 -Priority 0 -Port 389 -ComputerName $DNSserveur
Add-DnsServerResourceRecord -Srv -Name "_ldap._tcp.$($DC.Site)._sites.$($DC.Name)" -ZoneName $DC.Domain -DomainName "$($DC.HostName)" -Weight 0 -Priority 0 -Port 389 -ComputerName $DNSserveur
}
}
Write-Host ""
Write-Host "Terminé la création des enregistrements SRV."
} else {
Write-Host 'Annulé'
}
0 commentaire
Vous devez vous connecter pour laisser un commentaire.