Problema
Usuários e Computadores do Active Directory (ADUC) podem experimentar latência ou lentidão enquanto conectados ao Cliente SDP da Cato.
Ambiente
- Cliente SDP Cato v4.2 e acima
Solução de Problemas
Enquanto estiver em execução, o ADUC realiza consultas DNS para registros SRV inexistentes e não padrão. Essas consultas não são necessárias e não se sabe por que o ADUC as realiza. Para mais informações, veja comportamento do resolvedor de cliente DNS
O Cliente SDP da Cato bloqueia as solicitações de DNS em todas as interfaces de rede, exceto na interface VPN da Cato, para direcionar o DNS através do túnel VPN. Isso funciona bem para quase todas as aplicações, exceto para o ADUC, por causa das consultas SRV mencionadas acima.
Se o ADUC não receber uma resposta positiva das consultas dos servidores DNS configurados no adaptador VPN da Cato, ele envia as consultas para os servidores DNS configurados no adaptador físico (WiFi, Ethernet). Essas consultas são bloqueadas pelo cliente VPN da Cato, portanto o ADUC nunca recebe uma resposta. Embora isso não tenha sido reconhecido ou confirmado pela Microsoft, acreditamos que o ADUC espera que as consultas DNS nos adaptadores físicos expirem antes de prosseguir, e isso explica os tempos de carregamento lentos. Tanto quanto sabemos, o ADUC é o único aplicativo que exibe esse comportamento, e isso pode muito bem ser um bug da Microsoft.
Para verificar se o problema acima é encontrado, uma captura PCAP pode ser realizada no túnel. Filtrar por DNS (porta 53) enquanto o usuário abre o ADUC. Aplique o seguinte filtro no Wireshark para visualizar as consultas SRV:
dns.qry.tipo == 33
O ADUC faz consultas para registros SRV inexistentes em dois formatos distintos:
- _ldap._tcp.DCName.Domínio.com
- _ldap._tcp.SiteName._sites.DCName.Domínio.com
Onde DCName é o Nome do Host (NetBIOS) de um Controlador de Domínio (DC), SiteName é o nome do site no qual o DC reside, e Domain.com é o domínio.
O ADUC pode potencialmente consultar registros SRV para cada DC em um domínio. O problema mencionado neste artigo existe se você vir alguma das consultas SRV e uma resposta "Nenhum nome desse tipo" no PCAP.
Soluções
- Use Desktop Remoto ou outra ferramenta de acesso remoto para iniciar sessão no DC e gerenciar o Active Directory.
- Usar o Centro de Administração do Active Directory (ADAC) para gerenciar o Active Directory remotamente. O ADAC é uma ferramenta mais recente e mais poderosa que o ADUC quando se trata de gerenciamento de AD, mas há uma curva de aprendizado. Para mais informações sobre o ADAC, visite Centro de Administração do Active Directory
- Crie registros SRV que o ADUC consulta no DNS do Windows. Veja as instruções abaixo.
- Contatar Suporte da Cato para solução de problemas adicionais e soluções alternativas de backend.
Criar Registros SRV Manualmente
1. Abrir o Gerenciador DNS no servidor DNS.
2. Expandir Zonas de Pesquisa Direta.
3. Clique com o botão direito no seu domínio e clique em "Novo Domínio…".
4. Insira o Nome do Host do DC como o Nome do Domínio.
5. Clique com o botão direito no subdomínio criado na etapa anterior e selecione "Outros Novos Registros…".
6. Selecione Localização do Serviço (SRV) e clique em "Criar Registro…".
7. Digite os seguintes parâmetros na janela pop-up:
- Serviço: _ldap
- Protocolo: _tcp
- Host que oferece este serviço: o FQDN do DC com um ponto no final.
8. Clique em "OK". Um registro SRV será criado.
9. Clique com o botão direito no subdomínio nomeado após o DC que você criou na etapa 4 e selecione "Novo Domínio…"
10. Nomeie o domínio como "_sites" e clique em "OK".
11. Clique com o botão direito no domínio _sites e selecione "Novo Domínio...".
12. Nomeie o subdomínio criado na etapa anterior de acordo com o site em que o DC reside e clique em "OK".
13. Clique com o botão direito no subdomínio criado na etapa anterior e selecione "Outros Novos Registros...".
14. Selecione Localização do Serviço (SRV) e clique em "Criar Registro...".
15. Insira os seguintes parâmetros na janela pop-up:
- Serviço: _ldap
- Protocolo: _tcp
- Host offering this service: the FQDN of the DC with a period at the end.
16. Clique em "OK". Um novo registro SRV será criado.
17. Repita as etapas 3-16 para cada DC no seu domínio.
Criar Automaticamente Registros SRV Usando PowerShell
O script PowerShell abaixo pode ser executado em um DC para criar todos os registros SRV necessários para um domínio, desde que os servidores DNS também sejam Controladores de Domínio. Observe que este script pode precisar ser modificado para funcionar no ambiente do cliente e o Suporte da Cato não é responsável por fazer quaisquer modificações neste script. Os clientes devem usar este script por sua própria conta e risco.
Uso Recomendado:
1. Salve o script em um arquivo com extensão .ps1 e copie-o para um DC.
2. No DC, abra o PowerShell com privilégios de administrador e execute o script:
path_to_script.ps1
3. Observe que o domínio correto e um servidor DNS foram detectados pelo script e que a lista de todos os Controladores de Domínio no domínio está correta.
4. Por padrão, o script solicita confirmação antes de criar registros SRV para cada Controlador de Domínio. Recomendamos usar este método pelo menos para o primeiro Controlador de Domínio e, depois, verificar se os registros SRV foram criados com sucesso antes de continuar.
5. Se os registros SRV para o primeiro Controlador de Domínio foram criados com sucesso, você pode executar o script novamente, mas escolher a opção "Criar em massa" [B] para criar todos os registros SRV de uma vez, sem solicitações.
Saída de Exemplo:
Script:
$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'
}
0 comentário
Por favor, entre para comentar.