Konfigurieren von Microsoft Distributed Transaction Coordinator (DTC) zum Durchlaufen einer Firewall

In diesem Artikel wird beschrieben, wie Sie Microsoft Distributed Transaction Coordinator (DTC) konfigurieren, um Firewalls zu durchlaufen.

Gilt für: Windows 2012 R2, Windows Server 2016, Windows Server 2019, Windows Server 2022
Ursprüngliche KB-Nummer: 250367

Weitere Informationen

Sie können DTC für die Kommunikation über Firewalls konfigurieren, einschließlich Firewalls für die Netzwerkadressübersetzung.

DTC verwendet standardmäßig die dynamische RPC-Portzuordnung (Remote Procedure Call). Die dynamische RPC-Portzuordnung wählt nach dem Zufallsprinzip Portnummern im Bereich 49152-65535 aus. Durch Ändern der Registrierung können Sie steuern, welche Ports RPC dynamisch für eingehende Kommunikation zuweist. Anschließend können Sie Ihre Firewall so konfigurieren, dass eingehende externe Kommunikation nur auf diese Ports und Port 135 (der RPC-Endpunktzuordnungsport) beschränkt wird. Es wird empfohlen, entweder einen festen Port für DTC-Dienste oder den dynamischen Standardbereich 49152-65535 in Firewalls zu verwenden, um eine Portauslastung zu vermeiden und nur dann zu benutzerdefinierten RPC-Ports zu wechseln, wenn Firewalls nicht nach Computer oder IP-Adressen filtern können.

Sie können über eine lokale DTC-instance und mehrere gruppierte DTC-Instanzen verfügen. Möglicherweise müssen Sie mehr eingehende dynamische Ports für andere Subsysteme bereitstellen, die auf RPC basieren. Daher wird empfohlen, den RPC-Standardbereich beizubehalten, auch wenn ein fester Port für DTC-Dienste verwendet wird.

Die in diesem Artikel beschriebenen Registrierungsschlüssel und -werte werden standardmäßig nicht in der Registrierung angezeigt. Sie müssen sie mithilfe der Registrierungs-Editor hinzufügen.

Wichtig

Dieser Abschnitt, diese Methode bzw. diese Aufgabe enthält eine Beschreibung der Schritte zum Bearbeiten der Registrierung. Durch die falsche Bearbeitung der Registrierung können schwerwiegende Probleme verursacht werden. Daher ist es wichtig, bei der Ausführung der folgenden Schritte sorgfältig vorzugehen. Für zusätzlichen Schutz sichern Sie die Registrierung, bevor Sie sie ändern. Sie können die Registrierung wiederherstellen, wenn ein Problem auftritt. Weitere Informationen zum Sichern und Wiederherstellen der Registrierung finden Sie unter Sichern und Wiederherstellen der Registrierung in Window.

Konfigurieren von DTC für die Verwendung eines einzelnen festen Ports

Führen Sie diese Schritte auf Computern aus, die an DTC-Transaktionen beteiligt sind, um einen festen Port für DTC festzulegen. Die Firewall muss für den festen Port und port 135 (rpc endpoint mapper port) in beide Richtungen geöffnet sein:

  1. Um die Registrierungs-Editor zu starten, wählen Sie Start aus, wählen Sie Ausführen aus, geben Sie regedt32 ein, und wählen Sie dann OK aus.
  2. Wählen Sie unter Registrierungs-Editor im Fenster Lokaler Computerdie Option HKEY_LOCAL_MACHINE aus.
  3. Erweitern Sie die Struktur, indem Sie die Im Pfad benannten HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC Ordner auswählen.
  4. Wählen Sie den Ordner MSDTC und dann im Menü Bearbeiten die Option Neuer > DWORD-Wert (32-Bit) aus.
  5. Ändern Sie den Namen in ServerTcpPort.
  6. Klicken Sie mit der rechten Maustaste, und wählen Sie ändern für den neuen Wert aus.
  7. Wählen Sie im Dialogfeld Wert Editor die Option Dezimal aus, und geben Sie dann die feste Portnummer (z. B. 40001) in das Feld Wertdaten ein, und wählen Sie dann OK aus.

Um einen festen Port für gruppierte DTC-Instanzen zu konfigurieren, müssen Sie die GUID der Clusterressource suchen und unter diesem Speicherort den Wert ServerTcpPort hinzufügen. Verwenden Sie für jede DTC-instance eine andere Portnummer. Wenn Ihre DTC-Ressourcen-GUID beispielsweise 012345678-9abc-def0-1234-56789abcdef0 lautet, befindet sie sich in diesem Pfad: HKEY_LOCAL_MACHINE\Cluster\Resources\012345678-9abc-def0-1234-56789abcdef0\MSDTCPRIVATE\MSDTC. Wiederholen Sie die Schritte für zusätzliche DTC-Clusterressourcen.

Alternativ können Sie die reg add Befehle in Skripts mit Administratorrechten verwenden, um diesen Vorgang auszuführen. Passen Sie das folgende Beispiel an Ihre spezifische Cluster-GUID an, wenn gruppierte DTC-instance verwendet wird:

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

Konfigurieren von RPC für die Verwendung des Kundenportbereichs

Führen Sie diese Schritte auf Computern aus, die an DTC-Transaktionen beteiligt sind, bei denen Firewalls die vollständige Kommunikation verhindern, um die dynamische RPC-Portzuordnung zu steuern. Die Firewall muss für die angegebenen Ports und port 135 (der RPC-Endpunktzuordnungsport) in beide Richtungen geöffnet sein:

  1. Um die Registrierungs-Editor zu starten, wählen Sie Start aus, wählen Sie Ausführen aus, geben Sie regedt32 ein, und wählen Sie dann OK aus.

    Verwenden Sie Regedt32.exe anstelle von Regedit.exe. Regedit.exe unterstützt nicht den datentyp REG_MULTI_SZ, der für den Portwert erforderlich ist.

  2. Wählen Sie unter Registrierungs-Editor im Fenster Lokaler Computerdie Option HKEY_LOCAL_MACHINE aus.

  3. Erweitern Sie die Struktur, indem Sie die Im Pfad benannten HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc Ordner auswählen.

  4. Wählen Sie den Ordner RPC und dann im Menü Bearbeiten die Option Schlüssel hinzufügen aus.

  5. Geben Sie im Dialogfeld Schlüssel hinzufügen im Feld Schlüsselname den Namen Internet ein, und wählen Sie dann OK aus.

  6. Wählen Sie den Ordner Internet und dann im Menü Bearbeiten die Option Wert hinzufügen aus.

  7. Geben Sie im Dialogfeld Wert hinzufügen im Feld Wertnamedie Zeichenfolge Ports ein.

  8. Wählen Sie im Feld Datentypdie Option REG_MULTI_SZ und dann OK aus.

  9. Geben Sie im Dialogfeld multi-string Editor im Feld Daten die Ports an, die RPC für die dynamische Portzuordnung verwenden soll, und wählen Sie dann OK aus.

    Jeder eingegebene Zeichenfolgenwert gibt entweder einen einzelnen Port oder einen inklusiven Portbereich an. Wenn Sie beispielsweise Port 40000 öffnen möchten, geben Sie 40000 ohne Anführungszeichen an. Um die Ports 40000 bis einschließlich 42000 zu öffnen, geben Sie 40000-42000 ohne die Anführungszeichen an. Sie können mehrere Ports oder Portbereiche angeben, indem Sie einen Port oder Portbereich pro Zeile angeben. Alle Ports müssen im Bereich von 1024 bis 65535 liegen. Wenn sich ein Port außerhalb dieses Bereichs befindet oder eine Zeichenfolge ungültig ist, behandelt RPC die gesamte Konfiguration als ungültig.

    Microsoft empfiehlt, Ports ab 20000 zu öffnen, da niedrigere Ports häufig von anderen Anwendungen verwendet werden, und dass Sie mindestens 1000 Ports öffnen, um eine Portauslastung zu vermeiden. Auf Systemen mit hoher Auslastung benötigen Sie möglicherweise mehr Ports. Der Standardbereich von 1024 bis 5000 wurde in Windows 2008 und höher in den Bereich 49152-65535 verschoben, um eine Portauslastung zu vermeiden.

  10. Führen Sie die Schritte 6 bis 9 aus, um einen weiteren Schlüssel für das Internet hinzuzufügen, indem Sie die folgenden Werte verwenden:

    Wert: PortsInternetAvailable
    Datentyp: REG_SZ
    Daten: Y

    Dieser Wert bedeutet, dass die unter dem Wert Ports aufgeführten Ports internetverfügebar gemacht werden sollen.

  11. Führen Sie die Schritte 6 bis 9 aus, um einen weiteren Schlüssel für das Internet hinzuzufügen, indem Sie die folgenden Werte verwenden:

    Wert: UseInternetPorts
    Datentyp: REG_SZ
    Daten: Y

    Dieser Wert bedeutet, dass RPC Ports aus der Liste der Internetports dynamisch zuweisen soll.

  12. Konfigurieren Sie Ihre Firewall so, dass eingehender Zugriff auf die angegebenen dynamischen Ports und auf Port 135 (der RPC-Endpunktzuordnungsport) zugelassen wird.

  13. Starten Sie den Computer neu. Wenn RPC neu gestartet wird, werden eingehende Ports basierend auf den von Ihnen angegebenen Registrierungswerten dynamisch zugewiesen. Um beispielsweise die Ports 40000 bis einschließlich 42000 zu öffnen, erstellen Sie die folgenden benannten Werte:

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

DTC erfordert auch, dass Sie Computernamen über NetBIOS oder DNS auflösen können. Überprüfen Sie, ob NetBIOS in den NIC-Eigenschaften aktiviert ist, und testen Sie, ob NetBIOS die Namen mithilfe von Ping und dem Servernamen auflösen kann. Der Clientcomputer muss in der Lage sein, den Namen des Servers aufzulösen. Und der Server muss in der Lage sein, den Namen des Clients aufzulösen. Wenn NetBIOS die Namen nicht auflösen kann, fügen Sie den LMHOSTS-Dateien auf den Computern Einträge hinzu.