Échec de l’accès au partage du serveur de fichiers SMB via l’alias CNAME DNS

Cet article fournit des solutions au problème lié au fait que l’alias CNAME DNS ne peut pas accéder aux serveurs de fichiers SMB.

S’applique à : Windows 10 - toutes les éditions, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows 7 Service Pack 1
Numéro de la base de connaissances d’origine : 3181029

Symptômes

Configuration

  • Vous exécutez un serveur de fichiers SMB, tel que Windows Server. Le serveur a des fichiers et des ressources qui sont configurés à l’aide de leur nom NetBIOS, du nom de domaine complet (FQDN) DNS et de leur alias (CNAME).
  • Vous avez un client qui exécute Windows 7, Windows Server 2008 R2 ou une version ultérieure de Windows.

Scénarios

  • Lorsqu’une application ou un utilisateur utilise le nom de stockage réel (le nom NetBIOS ou le nom de domaine complet) pour les fichiers ou d’autres ressources sur le serveur qui utilise SMB, l’accès est réussi.

  • Lorsqu’une application ou un utilisateur utilise l’alias CNAME pour les fichiers ou d’autres ressources sur le serveur qui utilise SMB, et que vous essayez de vous connecter à un partage sur le serveur de fichiers avec son alias DNS CNAME. Par exemple, vous essayez de vous connecter à un partage sur le serveur de fichiers à l’aide de son alias DNS CNAME :

    NET USE * \\CNAME\share_name
    

    Dans ce cas, vous rencontrez les comportements suivants :

    • L’accès à partir d’un client Windows Server 2008 R2 ou Windows 7 est réussi.

    • L’accès à partir d’un Windows Server 2012 R2, d’un Windows 8.1 ou d’une version ultérieure du client Windows échoue. Dans ce cas, vous recevez un message d’erreur qui ressemble au suivant :

      Ouvrir le dossier

      \\uncpath n’est pas accessible. Vous ne disposez peut-être pas des autorisations nécessaires pour utiliser cette ressource réseau. Contactez l’administrateur de ce serveur pour savoir si vous disposez des autorisations d’accès.

      Échec de connexion : le nom du compte cible est incorrect.

Cause

  • Si vous utilisez moniteur réseau, Wire Shark ou Microsoft Message Analyzer pour examiner la trace réseau lorsque la configuration de la session SMB réussit, la session accède à TREE Connect.

    Toutefois, si vous examinez la trace réseau lorsque la configuration de la session SMB échoue, la session échoue avec une erreur de KRB_AP_ERR_MODIFIED Kerberos. Voici un exemple de demande d’installation de session SMB infructueuse dans une trace réseau :

    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
    

    Dans une demande d’installation de session SMB qui échoue, le client transfère un SPN CNAME incorrect. Le SPN peut être incorrect, car il est inscrit pour un ancien serveur. Toutefois, dans une demande d’installation de session SMB réussie, telle que dans le cas du client Windows Server 2008 R2, le client transfère le SPN pour le nom réel du serveur.

  • Si le nom du serveur de fichiers a été résolu via DNS, le client SMB ajoute le suffixe DNS au nom fourni par l’utilisateur. Autrement dit, le premier composant du SPN sera toujours le nom fourni par l’utilisateur, comme dans l’exemple suivant :

    CNAME.contoso.com\share_name
    

    Remarque

    Cette tentative échoue sur les anciennes implémentations SMB (comme AIX Samba 3.5.8), qui ne peuvent pas être configurées pour l’authentification Kerberos et n’écoutent pas le port hôte direct SMB 445, mais uniquement sur le port NetBIOS 139.

  • Si le nom du serveur de fichiers a été résolu via un autre mécanisme tel que

    • Netbios
    • Link-Local Multicast Name Resolution (LLMNR)
    • Processus PNRP (Peer Name Resolution Protocol)

    le client SMB utilise le nom fourni par l’utilisateur, tel que le suivant :

    CNAME\share_name
    

Résolution

Pour résoudre ce problème sur un serveur de fichiers qui exécute le protocole SMB version 1, ajoutez la DisableStrictNameChecking valeur au Registre :

Emplacement du Registre : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
Nom DWORD : DisableStrictNameChecking
Valeur DWORD : 1

Importante

N’utilisez plus les CNAME DNS à l’avenir pour les serveurs de fichiers. Si vous souhaitez toujours attribuer d’autres noms aux serveurs, vous pouvez le faire avec la commande suivante :
NETDOM COMPUTERNAME/ADD

Cette commande inscrit automatiquement les noms de principal du service pour les autres noms.

Nous vous déconseillons de résoudre ce problème pour un serveur de fichiers qui n’est pas windows en tapant les commandes suivantes dans une fenêtre d’invite de commandes avec élévation de privilèges sur un ordinateur Windows. Vous devez être connecté avec les informations d’identification de l’administrateur de domaine. Appuyez ensuite sur Entrée à l’invite de commandes pour inscrire le SPN pour le CNAME du périphérique de stockage serveur de fichiers non Windows :

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

Remarque

Suivi réseau

Pour collecter une trace réseau, procédez comme suit :

  1. Ouvrez une fenêtre d’invite de commandes avec élévation de privilèges, tapez la commande suivante, puis appuyez sur Entrée :

    netsh trace start NetConnection capture=yes maxsize=100 filemode=circular overwrite=yes traceFile=c:\%COMPUTERNAME%_Repro_trace.etl
    
  2. Supprimez toutes les connexions réseau de serveurs de fichiers existantes en exécutant la commande suivante :

    NET USE * /DELETE
    
  3. Initialisez la mise en cache de tous les noms en supprimant le cache existant :

    1. Pour supprimer le cache DNS, tapez la commande suivante, puis appuyez sur Entrée :

      IPCONFIG /FLUSHDNS
      
    2. Pour supprimer le cache NetBIOS, tapez la commande suivante, puis appuyez sur Entrée :

      NBTSTAT /RR
      
    3. Pour supprimer le cache Kerberos, tapez la commande suivante, puis appuyez sur Entrée :

      KLIST /PURGE
      
    4. Pour supprimer le cache ARP, tapez la commande suivante, puis appuyez sur Entrée :

      ARP -d
      
  4. Essayez de vous connecter au partage réseau en tapant la commande suivante, puis en appuyant sur Entrée :

    NET USE * \\server_name\share_name
    
  5. Pour arrêter la trace réseau en cas d’échec, tapez la commande suivante, puis appuyez sur Entrée :

    netsh trace stop
    

Collecter les paramètres du Registre

Pour collecter les paramètres du Registre sur le serveur de fichiers, sélectionnez Démarrer, Exécuter, tapez la commande dans la zone Ouvrir, puis sélectionnez OK. Répétez cette étape pour les commandes suivantes :

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

Remarque

Fichiers de paramètres du Registre (. HIV) sont enregistrés dans le dossier TEMP sur le serveur de fichiers.

Vérifier les paramètres du Registre

Vérifiez les paramètres des valeurs de Registre suivantes sur le serveur de fichiers :

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

Appliquer des correctifs logiciels (serveur et client)

Pour Windows 7 et Windows Server 2008 R2, appliquez le correctif cumulatif Windows 7 Entreprise suivant :

Un correctif cumulatif d’entreprise est disponible pour Windows 7 SP1 et Windows Server 2008 R2 SP1

En outre, appliquez les correctifs logiciels suivants :

References

Exclusion de responsabilité de tiers

Les produits tiers mentionnés dans le présent article sont fabriqués par des sociétés indépendantes de Microsoft. Microsoft exclut toute garantie, implicite ou autre, concernant les performances ou la fiabilité de ces produits.