Toegang tot SMB-bestandsservershare is mislukt via DNS CNAME-alias

Dit artikel biedt oplossingen voor het probleem dat de DNS CNAME-alias geen toegang heeft tot SMB-bestandsservers.

Van toepassing op: Windows 10 - alle edities, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows 7 Service Pack 1
Origineel KB-nummer: 3181029

Symptomen

Configuratie

  • U gebruikt een SMB-bestandsserver, zoals Windows Server. De server heeft bestanden en resources die zijn geconfigureerd met behulp van hun NetBIOS-naam, de DNS Fully Qualified Domain Name (FQDN) en hun alias (CNAME).
  • U hebt een client met Windows 7, Windows Server 2008 R2 of een latere versie van Windows.

Scenario's

  • Wanneer een toepassing of gebruiker de werkelijke opslagnaam (de NetBIOS-naam of de FQDN) gebruikt voor bestanden of andere resources op de server die gebruikmaakt van SMB, is de toegang geslaagd.

  • Wanneer een toepassing of gebruiker de CNAME-alias gebruikt voor bestanden of andere resources op de server die gebruikmaakt van SMB, en u probeert verbinding te maken met een share op de bestandsserver met de BIJBEHORENDE DNS CNAME-alias. U probeert bijvoorbeeld verbinding te maken met een share op de bestandsserver met behulp van de DNS CNAME-alias:

    NET USE * \\CNAME\share_name
    

    In dit geval ondervindt u het volgende gedrag:

    • Toegang vanaf een Windows Server 2008 R2- of Windows 7-client is geslaagd.

    • Toegang vanaf een Windows Server 2012 R2, Windows 8.1 of een latere versie van de Windows-client is mislukt. In dit geval ontvangt u een foutbericht dat lijkt op het volgende:

      Map openen

      \\uncpath is niet toegankelijk. Mogelijk bent u niet gemachtigd om deze netwerkresource te gebruiken. Neem contact op met de beheerder van deze server om na te gaan of u toegangsmachtigingen heeft.

      Aanmeldingsfout: de naam van het doelaccount is onjuist.

Oorzaak

  • Als u Network Monitor, Wire Shark of Microsoft Message Analyzer gebruikt om de netwerktracering te controleren wanneer de SMB-sessie is ingesteld, gaat de sessie naar tree connect.

    Als u echter de netwerktracering onderzoekt wanneer de installatie van de SMB-sessie mislukt, mislukt de sessie met een Kerberos-KRB_AP_ERR_MODIFIED-fout. Hier volgt een voorbeeld van een mislukte aanvraag voor het instellen van SMB-sessies in een netwerktracering:

    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
    

    In een mislukte aanvraag voor het instellen van een SMB-sessie stuurt de client een onjuiste CNAME SPN door. De SPN is mogelijk onjuist omdat deze is geregistreerd voor een oude server. In een geslaagde aanvraag voor het instellen van een SMB-sessie, zoals in het geval van de Windows Server 2008 R2-client, stuurt de client de SPN door voor de werkelijke servernaam.

  • Als de naam van de bestandsserver is omgezet via DNS, voegt de SMB-client het DNS-achtervoegsel toe aan de door de gebruiker opgegeven naam. Dat wil dus dat het eerste onderdeel van de SPN altijd de door de gebruiker opgegeven naam is, zoals in het volgende voorbeeld:

    CNAME.contoso.com\share_name
    

    Opmerking

    Deze poging mislukt bij oudere SMB-implementaties (zoals AIX Samba 3.5.8), die niet kunnen worden geconfigureerd voor Kerberos-verificatie en niet luistert naar directe SMB-hostpoort 445, maar alleen op NetBIOS-poort 139.

  • Als de naam van de bestandsserver is omgezet via een ander mechanisme, zoals

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

    de SMB-client gebruikt de door de gebruiker opgegeven naam, zoals de volgende:

    CNAME\share_name
    

Oplossing

Als u dit probleem wilt oplossen op een bestandsserver waarop het SMB versie 1-protocol wordt uitgevoerd, voegt u de DisableStrictNameChecking waarde toe aan het register:

Registerlocatie: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
DWORD-naam: DisableStrictNameChecking
DWORD-waarde: 1

Belangrijk

Gebruik in de toekomst geen DNS-CNAME's meer voor bestandsservers. Als u nog steeds alternatieve namen wilt geven aan servers, kunt u dit doen met de volgende opdracht:
NETDOM COMPUTERNAME/ADD

Met deze opdracht worden SPN's automatisch geregistreerd voor de alternatieve namen.

We raden u af dit probleem op te lossen voor een bestandsserver die niet op Windows is gebaseerd door de volgende opdrachten te typen in een opdrachtpromptvenster met verhoogde bevoegdheid op een Windows-computer. U moet zijn aangemeld met de referenties van de domeinbeheerder. Druk vervolgens op Enter bij de opdrachtprompt om de SPN te registreren voor de CNAME van het niet-Windows-bestandsserveropslagapparaat:

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

Opmerking

Netwerktracering

Volg deze stappen om een netwerktracering te verzamelen:

  1. Open een opdrachtpromptvenster met verhoogde bevoegdheid, typ de volgende opdracht en druk op Enter:

    netsh trace start NetConnection capture=yes maxsize=100 filemode=circular overwrite=yes traceFile=c:\%COMPUTERNAME%_Repro_trace.etl
    
  2. Verwijder bestaande bestandsservernetwerkverbindingen door de volgende opdracht uit te voeren:

    NET USE * /DELETE
    
  3. Initialiseer alle naamcache door de bestaande cache te verwijderen:

    1. Als u de DNS-cache wilt verwijderen, typt u de volgende opdracht en drukt u op Enter:

      IPCONFIG /FLUSHDNS
      
    2. Als u de NetBIOS-cache wilt verwijderen, typt u de volgende opdracht en drukt u op Enter:

      NBTSTAT /RR
      
    3. Als u de Kerberos-cache wilt verwijderen, typt u de volgende opdracht en drukt u op Enter:

      KLIST /PURGE
      
    4. Als u de ARP-cache wilt verwijderen, typt u de volgende opdracht en drukt u op Enter:

      ARP -d
      
  4. Probeer verbinding te maken met de netwerkshare door de volgende opdracht te typen en vervolgens op Enter te drukken:

    NET USE * \\server_name\share_name
    
  5. Als u de netwerktracering wilt stoppen in een mislukt scenario, typt u de volgende opdracht en drukt u op Enter:

    netsh trace stop
    

Registerinstellingen verzamelen

Als u registerinstellingen op de bestandsserver wilt verzamelen, selecteert u Start, selecteert u Uitvoeren, typt u de opdracht in het vak Openen en selecteert u vervolgens OK. Herhaal deze stap voor de volgende opdrachten:

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

Opmerking

De registerinstellingsbestanden (. HIV) worden opgeslagen in de map TEMP op de bestandsserver.

Registerinstellingen controleren

Controleer de instellingen van de volgende registerwaarden op de bestandsserver:

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

Hotfixes toepassen (server en client)

Voor Windows 7 en Windows Server 2008 R2 past u het volgende hotfixpakket voor Windows 7 Enterprise toe:

Er is een hotfixpakket voor ondernemingen beschikbaar voor Windows 7 SP1 en Windows Server 2008 R2 SP1

Daarnaast moet u de volgende hotfixes toepassen:

Verwijzingen

Disclaimerinformatie van derden

De producten van derden die in dit artikel worden vermeld, worden vervaardigd door bedrijven die onafhankelijk zijn van Microsoft. Microsoft verleent dan ook geen enkele garantie, impliciet noch anderszins, omtrent de prestaties of de betrouwbaarheid van deze producten.