Configurare Microsoft Distributed Transaction Coordinator (DTC) per l'uso tramite un firewall

Questo articolo descrive come configurare Microsoft Distributed Transaction Coordinator (DTC) per l'uso tramite firewall.

Si applica a: Windows Server 2012 R2, Windows Server 2016, Windows Server 2019, Windows Server 2022
Numero KB originale: 250367

Ulteriori informazioni

È possibile configurare DTC per comunicare tramite firewall, inclusi i firewall di conversione degli indirizzi di rete.

DTC usa l'allocazione dinamica delle porte RPC (Remote Procedure Call) per impostazione predefinita. L'allocazione dinamica delle porte RPC seleziona in modo casuale i numeri di porta nell'intervallo 49152-65535. Modificando il Registro di sistema, è possibile controllare quali porte RPC allocano dinamicamente per la comunicazione in ingresso. È quindi possibile configurare il firewall per limitare la comunicazione esterna in ingresso solo a quelle porte e alla porta 135 (la porta mapper endpoint RPC). È consigliabile usare la porta fissa per i servizi DTC o l'intervallo dinamico predefinito 49152-65535 nei firewall per evitare l'esaurimento delle porte e passare alle porte RPC personalizzate solo se i firewall non possono filtrare in base al computer o agli INDIRIZZI IP.

È possibile avere un'istanza DTC locale e più istanze DTC in cluster. Potrebbe essere necessario fornire più porte dinamiche in ingresso per altri sottosistemi che si basano su RPC, quindi è consigliabile mantenere l'intervallo RPC predefinito anche se si usa la porta fissa per i servizi DTC.

Per impostazione predefinita, le chiavi e i valori del Registro di sistema descritti in questo articolo non vengono visualizzati nel Registro di sistema. è necessario aggiungerli usando Editor del Registro di sistema.

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 altre informazioni su come eseguire il backup e il ripristino del Registro di sistema, vedere Come eseguire il backup e il ripristino del Registro di sistema in Window.

Configurare DTC per l'uso di una singola porta fissa

Seguire questa procedura nei computer coinvolti nelle transazioni DTC per impostare la porta fissa per DTC. Il firewall deve essere aperto in entrambe le direzioni per la porta fissa e la porta 135 (la porta mapper endpoint RPC):

  1. Per avviare Editor del Registro di sistema, selezionare Avvia, selezionare Esegui, digitare regedt32 e quindi selezionare OK.
  2. In Registro di sistema Editor selezionare HKEY_LOCAL_MACHINE nella finestra Computer locale.
  3. Espandere l'albero selezionando due cartelle denominate nel HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC percorso.
  4. Selezionare la cartella MSDTC e quindi selezionare Nuovo > valore DWORD (32 bit) dal menu Modifica .
  5. Modificare il nome in ServerTcpPort.
  6. Fare clic con il pulsante destro del mouse e scegliere Modifica sul nuovo valore.
  7. Nella finestra di dialogo Valore Editor selezionare Decimale e quindi inserire il numero di porta fisso, ad esempio 40001, nel campo Dati valore e quindi selezionare OK.

Per configurare la porta fissa per le istanze DTC cluster, è necessario trovare il GUID della risorsa cluster e aggiungere il valore ServerTcpPort in questo percorso. Usare un numero di porta diverso per ogni istanza DTC. Ad esempio, se il GUID della risorsa DTC è 012345678-9abc-def0-1234-56789abcdef0, si trova nel percorso seguente: HKEY_LOCAL_MACHINE\Cluster\Resources\012345678-9abc-def0-1234-56789abcdef0\MSDTCPRIVATE\MSDTC. Ripetere i passaggi per le risorse cluster DTC aggiuntive.

In alternativa, è possibile usare i reg add comandi negli script con privilegi di amministratore per eseguire questa operazione. Modificare l'esempio seguente in base al GUID del cluster specifico se viene usata un'istanza DTC cluster:

reg add HKLM\SOFTWARE\Microsoft\MSDTC /v ServerTcpPort /t REG_DWORD /d 40001 /f
reg add HKLM\Cluster\Resources\012345678-9abc-def0-1234-56789abcdef0\MSDTCPRIVATE\MSDTC /v ServerTcpPort /t REG_DWORD /d 40002 /f

Configurare RPC per l'uso dell'intervallo di porte dei clienti

Seguire questa procedura nei computer coinvolti nelle transazioni DTC in cui i firewall impediscono la comunicazione completa per controllare l'allocazione dinamica delle porte RPC. Il firewall deve essere aperto in entrambe le direzioni per le porte specificate e la porta 135 (la porta mapper endpoint RPC):

  1. Per avviare Editor del Registro di sistema, selezionare Avvia, selezionare Esegui, digitare regedt32 e quindi selezionare OK.

    Usare Regedt32.exe anziché Regedit.exe. Regedit.exe non supporta il tipo di dati REG_MULTI_SZ necessario per il valore Ports.

  2. In Registro di sistema Editor selezionare HKEY_LOCAL_MACHINE nella finestra Computer locale.

  3. Espandere l'albero selezionando due cartelle denominate nel HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc percorso.

  4. Selezionare la cartella RPC e quindi scegliere Aggiungi chiave dal menu Modifica .

  5. Nella finestra di dialogo Aggiungi chiave digitare Internet nella casella Nome chiave e quindi selezionare OK.

  6. Selezionare la cartella Internet e quindi aggiungi valore nel menu Modifica .

  7. Nella finestra di dialogo Aggiungi valore digitare Porte nella casella Nome valore.

  8. Nella casella Tipo di dati selezionare REG_MULTI_SZ e quindi selezionare OK.

  9. Nella finestra di dialogo Editor multistringa specificare la porta o le porte da usare per l'allocazione dinamica delle porte nella casella Dati e quindi selezionare OK.

    Ogni valore stringa digitato specifica una singola porta o un intervallo inclusivo di porte. Ad esempio, per aprire la porta 40000, specificare 40000 senza virgolette. Per aprire le porte da 40000 a 42000 inclusi, specificare 40000-42000 senza virgolette. È possibile specificare più porte o intervalli di porte specificando un intervallo di porte o porte per riga. Tutte le porte devono essere compresi tra 1024 e 65535. Se una porta non è compresa in questo intervallo o se una stringa non è valida, RPC considererà l'intera configurazione come non valida.

    Microsoft consiglia di aprire le porte da 20000 in su, poiché le porte inferiori possono essere spesso in uso da altre applicazioni e che si apra un minimo di 1000 porte per evitare l'esaurimento delle porte. Nei sistemi a carico elevato potrebbero essere necessarie più porte. L'intervallo predefinito 1024-5000 è stato spostato in Windows 2008 e versioni successive all'intervallo 49152-65535 per evitare l'esaurimento delle porte.

  10. Seguire i passaggi da 6 a 9 per aggiungere un'altra chiave per Internet usando questi valori:

    Valore: PortsInternetAvailable
    Tipo di dati: REG_SZ
    Dati: Y

    Questo valore indica che le porte elencate nel valore Porte devono essere rese disponibili su Internet.

  11. Seguire i passaggi da 6 a 9 per aggiungere un'altra chiave per Internet usando questi valori:

    Valore: UseInternetPorts
    Tipo di dati: REG_SZ
    Dati: Y

    Questo valore indica che RPC deve assegnare dinamicamente le porte dall'elenco delle porte Internet.

  12. Configurare il firewall per consentire l'accesso in ingresso alle porte dinamiche specificate e alla porta 135 (la porta mapper endpoint RPC).

  13. Riavviare il computer. Al riavvio di RPC, le porte in ingresso verranno assegnate in modo dinamico, in base ai valori del Registro di sistema specificati. Ad esempio, per aprire le porte da 40000 a 42000 inclusi, creare questi valori denominati:

    Porte: REG_MULTI-SZ : 40000-42000
    PortsInternetAvailable : REG_SZ : Y
    UseInternetPorts : REG_SZ : Y

DTC richiede anche che sia possibile risolvere i nomi dei computer tramite NetBIOS o DNS. Verificare che NetBIOS sia abilitato nelle proprietà della scheda di interfaccia di rete e verificare se NetBIOS è in grado di risolvere i nomi usando ping e il nome del server. Il computer client deve essere in grado di risolvere il nome del server. E il server deve essere in grado di risolvere il nome del client. Se NetBIOS non riesce a risolvere i nomi, aggiungere voci ai file LMHOSTS nei computer.