Come forzare Kerberos a utilizzare TCP anziché UDP in Windows

Questo articolo descrive come forzare Kerberos a usare TCP anziché UDP.

Si applica a: Windows 10: tutte le edizioni, Windows Server 2012 R2
Numero KB originale: 244474

Riepilogo

Il pacchetto di autenticazione Kerberos di Windows è il pacchetto di autenticazione predefinito in Windows Server 2003, Windows Server 2008 e Windows Vista. Coesiste con il protocollo di richiesta/risposta NTLM e viene usato nelle istanze in cui sia un client che un server possono negoziare Kerberos. Request for Comments (RFC) 1510 indica che il client deve inviare un datagramma UDP (User Datagram Protocol) alla porta 88 all'indirizzo IP del Centro distribuzione chiavi (KDC) quando un client contatta il KDC. Il KDC deve rispondere con un datagramma di risposta alla porta di invio all'indirizzo IP del mittente. La RFC indica anche che UDP deve essere il primo protocollo che viene provato.

Nota

RFC 4120 ora obsoleto RFC 1510. RFC 4120 specifica che un KDC deve accettare le richieste TCP e deve restare in ascolto di tali richieste sulla porta 88 (decimale). Per impostazione predefinita, Windows Server 2008 e Windows Vista proveranno prima TCP per Kerberos perché il valore predefinito di MaxPacketSize è ora 0. È comunque possibile usare il valore del Registro di sistema MaxPacketSize per eseguire l'override di tale comportamento.

Una limitazione delle dimensioni del pacchetto UDP può causare il messaggio di errore seguente all'accesso al dominio:

Errore del registro eventi 5719
NETLOGON di origine

Nessun controller di dominio Windows NT o Windows 2000 disponibile per il dominio di dominio. Si è verificato l'errore seguente:

Attualmente non sono disponibili server di accesso per gestire la richiesta di accesso.

Inoltre, lo strumento Netdiag può visualizzare i messaggi di errore seguenti:

  • Messaggio di errore 1

    Test dell'elenco di controller di dominio. . . . . . . . . . . : non riuscito [AVVISO] Impossibile chiamare DsBind a COMPUTERNAMEDC.domain.com (159.140.176.32). [ERROR_DOMAIN_CONTROLLER_NOT_FOUND]

  • Messaggio di errore 2

    Test Kerberos. . . . . . . . . . . : non riuscito [FATAL] Kerberos non dispone di un ticket per MEMBERSERVER$.] I log eventi di Windows XP che sono sintomi di questo problema sono SPNegotiate 40960 e Kerberos 10.

Ulteriori informazioni

Importante

In questa sezione, metodo o attività viene illustrata la procedura per modificare il Registro di sistema. Poiché l'errata modifica del Registro di sistema può causare seri problemi, Di conseguenza, attenersi scrupolosamente alla procedura indicata. Per una maggiore protezione, eseguire il backup del Registro di sistema prima di modificarlo. In questo modo sarà possibile ripristinare il Registro di sistema se si verifica un problema. Per ulteriori informazioni su come eseguire backup e ripristino del Registro di sistema, vedere Backup e ripristino del Registro di sistema in Windows.

Se si usa UDP per Kerberos, il computer client potrebbe smettere di rispondere (bloccarsi) quando si riceve il messaggio seguente: Caricamento delle impostazioni personali.

Per impostazione predefinita, la dimensione massima dei pacchetti di datagramma per cui Windows Server 2003 usa UDP è di 1.465 byte. Per Windows XP e per Windows 2000, questo massimo è di 2.000 byte. Transmission Control Protocol (TCP) viene usato per qualsiasi datagrampacket maggiore di questo massimo. Le dimensioni massime dei pacchetti di datagramma per cui viene usato UDP possono essere modificate modificando una chiave e un valore del Registro di sistema.

Per impostazione predefinita, Kerberos usa pacchetti di datagramma UDP senza connessione. A seconda di diversi fattori, tra cui la cronologia degli identificatori di sicurezza (SID) e l'appartenenza ai gruppi, alcuni account avranno dimensioni di pacchetti di autenticazione Kerberos più grandi. A seconda della configurazione hardware della rete privata virtuale (VPN), questi pacchetti di dimensioni maggiori devono essere frammentati quando si passa attraverso una VPN. Il problema è causato dalla frammentazione di questi pacchetti Kerberos UDP di grandi dimensioni. Poiché UDP è un protocollo senza connessione, i pacchetti UDP frammentati verranno eliminati se arrivano alla destinazione in ordine non corretto.

Se si imposta MaxPacketSize su un valore pari a 1, il client viene forzato a usare TCP per inviare il traffico Kerberos attraverso il tunnel VPN. Poiché TCP è orientato alla connessione, è un mezzo di trasporto più affidabile attraverso il tunnel VPN. Anche se i pacchetti vengono eliminati, il server richiederà nuovamente il pacchetto di dati mancante.

È possibile impostare MaxPacketSize su 1 per forzare i client a usare il traffico Kerberos su TCP. A tal fine, attenersi alla seguente procedura:

  1. Avviare l'editor del Registro di sistema

  2. Individuare e selezionare la sottochiave del Registro di sistema: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa\Kerberos\Parameters

    Nota

    Se la chiave Parameters non esiste, crearla ora.

  3. Scegliere Nuovo dal menu Modifica, quindi fare clic su Valore DWORD.

  4. Digitare MaxPacketSize e quindi premere INVIO.

  5. Fare doppio clic su MaxPacketSize, digitare 1 nella casella Dati valore , fare clic per selezionare l'opzione Decimale e quindi fare clic su OK.

  6. Chiudere l'editor del Registro di sistema.

  7. Restart your computer.

Questo è l'approccio alla soluzione per Windows 2000, XP e Server 2003. Windows Vista e versioni successive usano un valore predefinito "0" per MaxPacketSize che disattiva anche l'uso di UDP per il client Kerberos.

Il modello seguente è un modello amministrativo che può essere importato in Criteri di gruppo per consentire l'impostazione del valore MaxPacketSize per tutti i computer aziendali che eseguono Windows Server 2003, Windows XP o Windows 2000. Per visualizzare le impostazioni MaxPacketSize in Criteri di gruppo object Editor, fare clic su Mostra solo criteri dal menu Visualizza in modo che non sia selezionata l'opzione Mostra solo criteri. Questo modello modifica le chiavi del Registro di sistema all'esterno della sezione Criteri. Per impostazione predefinita, Criteri di gruppo object Editor non visualizza queste impostazioni del Registro di sistema.