O acesso de compartilhamento do servidor de arquivo SMB não foi bem sucedido por meio do alias CNAME do DNS

Este artigo fornece soluções para o problema de que o alias CNAME DNS não pode acessar servidores de arquivo SMB.

Aplica-se a: Windows 10 - todas as edições, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows 7 Service Pack 1
Número de KB original: 3181029

Sintomas

Configuração

  • Você está executando um servidor de arquivos SMB, como o Windows Server. O servidor tem arquivos e recursos configurados usando o nome NetBIOS, o FQDN (nome de domínio totalmente qualificado) do DNS e seu alias (CNAME).
  • Você tem um cliente que está executando o Windows 7, Windows Server 2008 R2 ou uma versão posterior do Windows.

Cenários

  • Quando um aplicativo ou usuário usa o nome de armazenamento real (o nome netbios ou o FQDN) para arquivos ou outros recursos no servidor que está usando o SMB, o acesso é bem-sucedido.

  • Quando um aplicativo ou usuário usa o alias CNAME para arquivos ou outros recursos no servidor que está usando o SMB, e você tenta se conectar a um compartilhamento no servidor de arquivos com seu alias CNAME DNS. Por exemplo, você tenta se conectar a um compartilhamento no servidor de arquivos usando seu alias CNAME DNS:

    NET USE * \\CNAME\share_name
    

    Nesse caso, você experimenta os seguintes comportamentos:

    • O acesso de um cliente do Windows Server 2008 R2 ou Windows 7 é bem-sucedido.

    • O acesso de um Windows Server 2012 R2, Windows 8.1 ou uma versão posterior do cliente Windows não tem êxito. Nesse caso, você recebe uma mensagem de erro que se assemelha à seguinte:

      Abrir pasta

      \\O uncpath não é acessível. Talvez você não tenha permissão para usar esse recurso de rede. Entre em contato com o administrador deste servidor para saber se você tem permissões de acesso.

      Falha de logon: o nome da conta de destino está incorreto.

Motivo

  • Se você usar o Monitor de Rede, o Wire Shark ou o Analisador de Mensagens da Microsoft para examinar o rastreamento de rede quando a Instalação da Sessão SMB for bem-sucedida, a sessão será exibida no TREE Connect.

    No entanto, se você examinar o rastreamento de rede quando a Instalação da Sessão SMB não tiver êxito, a sessão falhará com um erro kerberos KRB_AP_ERR_MODIFIED. Aqui está um exemplo de uma solicitação de Instalação de Sessão SMB mal sucedida em um rastreamento de rede:

    MessageNumber DiagnosisTypes Timestamp Source Destination Module Summary  
    112 None DateTime Client Server SMB2 Negotiate, Status: Success, 2780879Guid: {12f74af4-be82-11e5-b5c2-005056890096}, DialectRevision: SMB 2.  
    112 None DateTime Client Server SMB2 NegotiateRequest, Dialects: [SMB 2.0.2, SMB 2.1], Capabilities: , 2780879Guid: {12f74af4-be82-11e5-b5c2-  
    115 None DateTime Server Client SMB2 NegotiateResponse, Status: Success, DialectRevision: SMB 2.1, Capabilities: SMB2GlobalCapDfs|SMB2GlobalC  
    116 None DateTime Client Server SMB2 SessionSetup, Status: STATUS_MORE_PROCESSING_REQUIRED, Kerberos, Flags: 0  
    116 None DateTime Client Server SMB2 SessionSetupRequest, Kerberos, Flags: Unknown(0), PreviousSessionId: 0x0000000000000000  
    122 None DateTime Server Client SMB2 SessionSetupResponse, Status: STATUS_MORE_PROCESSING_REQUIRED, Kerberos, SessionId: 0x000004030800006D  
    135 None DateTime Client Server SMB2 SessionSetup, Status: STATUS_MORE_PROCESSING_REQUIRED, Kerberos, Flags: 0  
    135 None DateTime Client Server SMB2 SessionSetupRequest, Kerberos, Flags: Unknown(0), PreviousSessionId: 0x0000000000000000  
    143 None DateTime Server Client SMB2 SessionSetupResponse, Status: STATUS_MORE_PROCESSING_REQUIRED, Kerberos, SessionId: 0x000004030800006D
    

    Em uma solicitação de Instalação de Sessão SMB mal-sucedida, o cliente encaminha um SPN CNAME incorreto. O SPN pode estar incorreto porque está registrado para um servidor antigo. No entanto, em uma solicitação bem-sucedida de Instalação de Sessão SMB, como no caso do cliente do Windows Server 2008 R2, o cliente encaminha o SPN para o nome real do servidor.

  • Se o nome do servidor de arquivo foi resolvido por meio do DNS, o cliente SMB acrescenta o sufixo DNS ao nome fornecido pelo usuário. Ou seja, o primeiro componente do SPN sempre será o nome fornecido pelo usuário como no exemplo a seguir:

    CNAME.contoso.com\share_name
    

    Observação

    Essa tentativa falharia em implementações SMB mais antigas (como o AIX Samba 3.5.8), que não podem ser configuradas para autenticação Kerberos e não escutam a porta de host direta SMB 445, mas apenas na porta NetBIOS 139.

  • Se o nome do servidor de arquivo foi resolvido por meio de algum outro mecanismo, como

    • Netbios
    • Resolução de nomes multicast (LLMNR) do Link-Local
    • Processos de PNRP (Protocolo de Resolução de Nomes par)

    O cliente SMB usa o nome fornecido pelo usuário, como o seguinte:

    CNAME\share_name
    

Resolução

Para resolve esse problema em um servidor de arquivo que está executando o protocolo SMB versão 1, adicione o DisableStrictNameChecking valor ao registro:

Local do registro: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
Nome DWORD: DisableStrictNameChecking
Valor DWORD: 1

Importante

Não use CNAMEs DNS no futuro para servidores de arquivo. Se você ainda quiser dar nomes alternativos aos servidores, poderá fazê-lo com o seguinte comando:
NETDOM COMPUTERNAME/ADD

Esse comando registra automaticamente SPNs para os nomes alternativos.

Não recomendamos que você resolve esse problema para um servidor de arquivo que não é baseado no Windows digitando os comandos a seguir em uma janela de Prompt de Comando elevada em um computador baseado no Windows. Você teria que estar conectado com credenciais do Administrador de Domínio. Em seguida, pressione Enter no prompt de comando para registrar o SPN para o CNAME do dispositivo de armazenamento do Servidor de Arquivos não baseado no Windows:

SETSPN -a host/alias_name targetserver
SETSPN -a host/alias_name.contoso.com targetserver

Observação

Rastreamento de rede

Para coletar um rastreamento de rede, siga estas etapas:

  1. Abra uma janela de Prompt de Comando elevada, digite o seguinte comando e pressione Enter:

    netsh trace start NetConnection capture=yes maxsize=100 filemode=circular overwrite=yes traceFile=c:\%COMPUTERNAME%_Repro_trace.etl
    
  2. Exclua todas as conexões de rede existentes do Servidor de Arquivos executando o seguinte comando:

    NET USE * /DELETE
    
  3. Inicialize todo o cache de nomes excluindo o cache existente:

    1. Para excluir o cache DNS, digite o seguinte comando e pressione Enter:

      IPCONFIG /FLUSHDNS
      
    2. Para excluir o cache NetBIOS, digite o seguinte comando e pressione Enter:

      NBTSTAT /RR
      
    3. Para excluir o cache Kerberos, digite o seguinte comando e pressione Enter:

      KLIST /PURGE
      
    4. Para excluir o cache ARP, digite o seguinte comando e pressione Enter:

      ARP -d
      
  4. Tente se conectar ao compartilhamento de rede digitando o seguinte comando e pressionando Enter:

    NET USE * \\server_name\share_name
    
  5. Para interromper o rastreamento de rede em um cenário mal sucedido, digite o seguinte comando e pressione Enter:

    netsh trace stop
    

Coletar configurações de registro

Para coletar as configurações do registro no servidor de arquivos, selecione Iniciar, selecione Executar, digite o comando na caixa Abrir e selecione OK. Repita esta etapa para os seguintes comandos:

REG.EXE SAVE HKLM\SYSTEM C:\TEMP\%COMPUTERNAME%_SYSTEM.HIV
REG.EXE SAVE HKLM\SOFTWARE C:\TEMP\%COMPUTERNAME%_SOFTWARE.HIV
REG.EXE SAVE HKCU\Software C:\TEMP\%COMPUTERNAME%_HKCU.HIV

Observação

Os arquivos de configuração do registro (. O HIV) é salvo na pasta TEMP no servidor de arquivos.

Verificar as configurações do registro

Verifique as configurações dos seguintes valores de registro no servidor de arquivo:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters\SmbServerNameHardeningLevel
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters\DisableStrictNameChecking

Aplicar hotfixes (servidor e cliente)

Para Windows 7 e Windows Server 2008 R2, aplique o seguinte roll-up de hotfix do Windows 7 Enterprise:

Um roll-up de hotfix empresarial está disponível para Windows 7 SP1 e Windows Server 2008 R2 SP1

Além disso, aplique os seguintes hotfixes:

Referências

Aviso de isenção de responsabilidade para informações de terceiros

Os produtos de terceiros mencionados neste artigo são produzidos por empresas independentes da Microsoft. A Microsoft não oferece nenhuma garantia, implícita ou não, do desempenho ou da confiabilidade desses produtos.