Condividi tramite


Come forzare Kerberos a utilizzare TCP anziché UDP in Windows

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

Numero KB originale: 244474

Riepilogo

Il pacchetto di autenticazione Kerberos di Windows è il pacchetto di autenticazione predefinito in Windows Server 2003, in Windows Server 2008 e in Windows Vista. Coesiste con il protocollo NTLM challenge/response e viene usato nelle istanze in cui sia un client che un server possono negoziare Kerberos. La richiesta di commenti (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 datagram di risposta alla porta di invio all'indirizzo IP del mittente. La RFC indica anche che UDP deve essere il primo protocollo che viene tentato.

Note

RFC 4120 ora obsoleto RFC 1510. RFC 4120 specifica che un KDC deve accettare richieste TCP e deve essere in ascolto di tali richieste sulla porta 88 (decimale). Per impostazione predefinita, Windows Server 2008 e Windows Vista proveranno 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 seguente messaggio di errore 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. Si è verificato l'errore seguente:

Attualmente non sono disponibili server di accesso per il servizio della 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. . . . . . . . . . . : impossibile chiamare DsBind a COMPUTERNAMEDC.domain.com (159.140.176.32). [ERROR_DOMAIN_CONTROLLER_NOT_FOUND]

  • Messaggio di errore 2

    Test Kerberos. . . . . . . . . . . : failed [FATAL] Kerberos non dispone di un ticket per MEMBERSERVER$.] I registri 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. Se, tuttavia, si modifica il Registro di sistema in modo errato, possono verificarsi gravi problemi. Pertanto, assicurarsi di osservare attentamente la procedura seguente. Per una maggiore protezione, eseguire il backup del Registro di sistema prima di modificarlo. Successivamente, è possibile ripristinare il Registro di sistema se si verifica un problema. Per ulteriori informazioni su come eseguire il backup e il ripristino del Registro di sistema, vedi Come eseguire il backup e il ripristino del Registro di sistema in Windows.

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

Per impostazione predefinita, la dimensione massima dei pacchetti di datagrammi 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 valore massimo. Le dimensioni massime dei pacchetti di datagrammi 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 datagrammi 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 maggiori dei pacchetti di autenticazione Kerberos. 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 non in ordine.

Se si imposta MaxPacketSize su un valore pari a 1, si forza il client 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 tale scopo, effettuare i passaggi seguenti:

  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

    Note

    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. Riavviare il 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 di MaxPacketSize nell'Editor oggetti Criteri di gruppo, fare clic su Mostra criteri solo dal menu Visualizza in modo che Mostra solo criteri non sia selezionato. Questo modello modifica le chiavi del Registro di sistema all'esterno della sezione Criteri. Per impostazione predefinita, l'Editor oggetti Criteri di gruppo non visualizza queste impostazioni del Registro di sistema.