Problema
Los Usuarios y Equipos de Active Directory (ADUC) pueden experimentar latencia o lentitud mientras están conectados al Cliente SDP de Cato.
Entorno
- Cliente SDP de Cato v4.2 en adelante
Solución de problemas
Mientras se ejecuta, ADUC realiza consultas DNS para registros SRV no estándar y no existentes. Estas consultas no son necesarias y no se sabe por qué ADUC las realiza. Para obtener más información, consulte Comportamiento del resolvedor de clientes DNS
El Cliente SDP de Cato bloquea las solicitudes DNS en cada interfaz de red excepto en la interfaz VPN de Cato para dirigir el DNS a través del túnel VPN. Esto funciona bien para casi todas las aplicaciones excepto ADUC debido a las consultas SRV mencionadas anteriormente.
Si ADUC no recibe una respuesta afirmativa a las consultas de los servidores DNS configurados en el adaptador VPN de Cato, envía las consultas a los servidores DNS configurados en el adaptador físico (WiFi, Ethernet). Estas consultas son bloqueadas por el cliente VPN de Cato por lo que ADUC nunca recibe una respuesta. Aunque esto no ha sido reconocido ni confirmado por Microsoft, creemos que ADUC espera a que las consultas DNS en los adaptadores físicos expiren antes de continuar, lo que explica los tiempos de carga lentos. Hasta donde sabemos, ADUC es la única aplicación que presenta este comportamiento, y podría ser un error de Microsoft.
Para verificar que se encuentra el problema anterior, se puede realizar una captura PCAP en el túnel. Filtar por DNS (puerto 53) mientras el usuario abre ADUC. Aplicar el siguiente filtro en Wireshark para ver las consultas SRV:
dns.qry.tipo == 33
ADUC realiza consultas para registros SRV no existentes en dos formatos distintos:
- _ldap._tcp.DCName.Domain.com
- _ldap._tcp.SiteName._sites.DCName.Domain.com
Donde DCName es el nombre NetBIOS (nombre anfitrión) de un Controlador de dominio (DC), SiteName es el nombre del site en el que reside el DC, y Domain.com es el dominio.
ADUC puede potencialmente consultar registros SRV para cada DC en un dominio. El problema citado en este artículo existe si ves alguna de las consultas SRV y una respuesta "No existe tal nombre" en el PCAP.
Soluciones
- Usar Escritorio remoto u otra herramienta de acceso remoto para iniciar sesión en el DC y gestionar Active Directory.
- Utilizar Centro de administración de Active Directory (ADAC) para gestionar Active Directory remotamente. ADAC es una herramienta más nueva y más poderosa que ADUC cuando se trata de administración de AD, pero hay una curva de aprendizaje. Para más información sobre ADAC visita Centro de administración de Active Directory
- Crear los registros SRV que ADUC consulta en DNS de Windows. Consulte las instrucciones a continuación.
- Contactar Soporte de Cato para más solución de problemas y soluciones alternativas de backend.
Crear manualmente Registros SRV
1. Abrir el Administrador de DNS en el servidor DNS.
2. Expandir las Zonas de Búsqueda Directa.
3. Hacer clic derecho sobre tu dominio y elegir “Nuevo Dominio…”.
4. Introducir el nombre de host del DC como nombre de dominio.
5. Hacer clic derecho sobre el subdominio creado en el paso anterior y seleccionar “Otros Nuevos Registros…”.
6. Seleccionar Ubicación de Servicios (SRV) y hacer clic en “Crear Registro…”.
7. Introducir los siguientes parámetros en la ventana emergente:
- Servicio: _ldap
- Protocolo: _tcp
- Host que ofrece este servicio: el FQDN del DC con un punto al final.
8. Hacer clic en "OK". Se creará un registro SRV.
9. Hacer clic derecho sobre el subdominio nombrado después del DC que creaste en el paso 4 y seleccionar “Nuevo Dominio…”
10. Nombrar el dominio “_sites” y hacer clic en "OK".
11. Hacer clic derecho sobre el dominio _sites y seleccionar “Nuevo Dominio...”.
12. Nombrar el subdominio creado en el paso anterior según el sitio en el que reside el DC y hacer clic en "OK".
13. Hacer clic derecho sobre el subdominio creado en el paso anterior y seleccionar "Otros Nuevos Registros...".
14. Seleccionar Ubicación de Servicios (SRV) y hacer clic en "Crear Registro...".
15. Introducir los siguientes parámetros en la ventana emergente:
- Servicio: _ldap
- Protocolo: _tcp
- Host que ofrece este servicio: el FQDN del DC con un punto al final.
16. Hacer clic en "OK". Se creará un nuevo registro SRV.
17. Repetir los pasos 3-16 para cada DC en tu dominio.
Crear automáticamente Registros SRV Usando PowerShell
El siguiente script de PowerShell puede ejecutarse en un DC para crear todos los registros SRV necesarios para un dominio siempre y cuando los servidores DNS también sean Controladores de dominio. Por favor, tenga en cuenta que este script puede tener que ser modificado para funcionar en el entorno del cliente y Soporte de Cato no es responsable de hacer ninguna modificación a este script. Los clientes deben usar este script bajo su propio riesgo.
Uso recomendado:
1. Guardar el script en un archivo con extensión .ps1 y copiarlo a un DC.
2. En el DC, abrir PowerShell con privilegios de administrador y ejecutar el script:
ruta_al_script.ps1
3. Observe que el dominio correcto y un servidor DNS fueron detectados por el script y que la lista de todos los DCs en el dominio es correcta.
4. Por defecto, el script solicita confirmación antes de crear registros SRV para cada DC. Recomendamos usar este método al menos para el primer DC y luego verificar que los registros SRV se crearon correctamente antes de continuar.
5. Si los registros SRV para el primer DC se crearon correctamente, puede ejecutar el script nuevamente pero eligiendo la opción "Crear masivamente" [B] para crear todos los registros SRV a la vez sin solicitudes.
Salida de muestra:
Script:
$allDCs = (Get-ADForest).Domains | %{ Get-ADDomainController -Filter * -Server $_ } | Select-Object -Property Name, HostName, Domain, Site
$Dominio = (Get-ADForest).Name
Write-Host ""
Write-Host "Dominio:"
Write-Host " $Dominio"
$CadenaDNS = nslookup -type=ns $Dominio | Select-String -Pattern 'nameserver'
$CadenaDNS -match '(?<=nameserver = )(.*)' > $null
$ServidorDNS = $Matches[1]
Write-Host ""
Write-Host "Servidor DNS encontrado:"
Write-Host " $ServidorDNS"
Write-Host ""
Write-Host "Controladores de Dominio encontrados:"
Foreach ($DC in $allDCs) {
Write-Host " $($DC.HostName)"
}
$titulo = 'Crear Registros SRV'
$pregunta = '¿Cómo desea crear registros SRV?'
$masivo = New-Object System.Management.Automation.Host.ChoiceDescription "&Crear en masa", "Crea todos los registros SRV de una vez."
$solicitar = New-Object System.Management.Automation.Host.ChoiceDescription "&Solicitar por cada uno", "Solicita antes de crear cada registro SRV."
$opciones = [System.Management.Automation.Host.ChoiceDescription[]]($masivo, $solicitar)
$decisión = $Host.UI.PromptForChoice($titulo, $pregunta, $opciones, 1)
if ($decisión -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 $ServidorDNS
Add-DnsServerResourceRecord -Srv -Name "_ldap._tcp.$($DC.Site)._sites.$($DC.Name)" -ZoneName $DC.Domain -DomainName "$($DC.HostName)" -Weight 0 -Priority 0 -Port 389 -ComputerName $ServidorDNS
}
Write-Host ""
Write-Host "Se crearon registros SRV para todos los DCs."
} elseif ($decisión -eq 1) {
Foreach ($DC in $allDCs) {
Write-Host ""
Write-Host "¿Crear registros SRV para $($DC.HostName)?" -ForegroundColor Yellow
$Readhost = Read-Host " ( s / n ) "
if ($Readhost -eq 's') {
Add-DnsServerResourceRecord -Srv -Name "_ldap._tcp.$($DC.Name)" -ZoneName $DC.Domain -DomainName "$($DC.HostName)" -Weight 0 -Priority 0 -Port 389 -ComputerName $ServidorDNS
Add-DnsServerResourceRecord -Srv -Name "_ldap._tcp.$($DC.Site)._sites.$($DC.Name)" -ZoneName $DC.Domain -DomainName "$($DC.HostName)" -Weight 0 -Priority 0 -Port 389 -ComputerName $ServidorDNS
}
}
Write-Host ""
Write-Host "Listo creando registros SRV."
} else {
Write-Host 'Cancelado'
}
0 comentarios
Inicie sesión para dejar un comentario.