Konfigurieren von Microsoft Distributed Transaction Coordinator (DTC) für die Arbeit über eine Firewall
In diesem Artikel wird beschrieben, wie Sie Microsoft Distributed Transaction Coordinator (DTC) für die Verwendung von Firewalls konfigurieren.
Ursprüngliche KB-Nummer: 250367
Weitere Informationen
Sie können DTC für die Kommunikation über Firewalls konfigurieren, einschließlich Netzwerkadressenübersetzungsfirewalls.
DTC verwendet standardmäßig die dynamische Portzuordnung für Remoteprozeduraufrufe (Remote Procedure Call, RPC). Die dynamische RPC-Portzuordnung wählt zufällig 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 beschränkt wird (der RPC Endpoint Mapper-Port). Es wird empfohlen, entweder einen festen Port für DTC-Dienste oder den standardmäßigen dynamischen 49152-65535-Bereich in Firewalls zu verwenden, um Portausschöpfung zu vermeiden und nur zu benutzerdefinierten RPC-Ports zu wechseln, wenn Firewalls nicht auf Computer oder IPs filtern können.
Sie können über eine lokale DTC-Instanz und mehrere gruppierte DTC-Instanzen verfügen. Möglicherweise müssen Sie eingehendere dynamische Ports für andere Subsysteme bereitstellen, die auf RPC basieren, sodass empfohlen wird, den standardmäßigen RPC-Bereich beizubehalten, auch wenn sie einen festen Port für DTC-Dienste verwenden.
Die in diesem Artikel beschriebenen Registrierungsschlüssel und Werte werden standardmäßig nicht in der Registrierung angezeigt. Sie müssen sie mithilfe des Registrierungs-Editors 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 müssen Sie sicherstellen, dass Sie diese Schritte sorgfältig ausführen. Für weiteren Schutz sichern Sie die Registrierung, bevor Sie sie ändern. Anschließend können Sie die Registrierung wiederherstellen, wenn ein Problem auftritt. Weitere Informationen zum Sichern und Wiederherstellen der Registrierung finden Sie unter Sichern und Wiederherstellen der Registrierung im Fenster.
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 den festen Port für DTC festzulegen. Die Firewall muss in beide Richtungen für den festen Port und port 135 (der RPC Endpoint Mapper-Port) geöffnet sein:
- Um den Registrierungs-Editor zu starten, wählen Sie "Start" aus, wählen Sie "Ausführen", geben Sie "regedt32" ein, und wählen Sie dann "OK" aus.
- Wählen Sie im Registrierungs-Editor im Fenster "Lokaler Computer" HKEY_LOCAL_MACHINE aus.
- Erweitern Sie die Struktur, indem Sie die Ordner im
HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC
Pfad doppelt auswählen. - Wählen Sie den ORDNER "MSDTC" aus, und wählen Sie dann im Menü "Bearbeiten" den Neuen > DWORD-Wert (32-Bit) aus.
- Ändern Sie den Namen in ServerTcpPort.
- Klicken Sie mit der rechten Maustaste, und wählen Sie " Ändern" für den neuen Wert aus.
- Wählen Sie im Dialogfeld "Wert-Editor" die Option "Dezimal" aus, und platzieren Sie dann die feste Portnummer, z. B. 40001, im Feld "Wertdaten", und wählen Sie dann "OK" aus.
Um einen festen Port für gruppierte DTC-Instanzen zu konfigurieren, müssen Sie die Clusterressourcen-GUID finden und den ServerTcpPort-Wert unter diesem Speicherort hinzufügen. Verwenden Sie für jede DTC-Instanz unterschiedliche Portnummer. Wenn ihre DTC-Ressourcen-GUID beispielsweise 012345678-9abc-def0-1234-56789abcdef0 ist, befindet sich dies 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 die DTC-Instanz des Clusters 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-Portzuweisung zu steuern. Die Firewall muss in beide Richtungen für die angegebenen Ports und Port 135 (rpc Endpoint Mapper Port) geöffnet sein:
Um den Registrierungs-Editor zu starten, wählen Sie "Start" aus, wählen Sie "Ausführen", 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 Ports-Wert erforderlich ist.
Wählen Sie im Registrierungs-Editor im Fenster "Lokaler Computer" HKEY_LOCAL_MACHINE aus.
Erweitern Sie die Struktur, indem Sie die Ordner im
HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc
Pfad doppelt auswählen.Wählen Sie den RPC-Ordner und dann im Menü "Bearbeiten" die Option "Schlüssel hinzufügen" aus.
Geben Sie im Dialogfeld "Schlüssel hinzufügen" im Feld "Schlüsselname" "Internet" ein, und wählen Sie dann "OK" aus.
Wählen Sie den Internetordner und dann im Menü "Bearbeiten" die Option "Wert hinzufügen" aus.
Geben Sie im Dialogfeld "Wert hinzufügen" im Feld "Wertname" die Kontrollkästchen "Ports" ein.
Wählen Sie im Feld "Datentyp" REG_MULTI_SZ und dann "OK" aus.
Geben Sie im Dialogfeld "Mehrzeichenfolgen-Editor" im Feld "Daten" den Port oder die Ports an, den RPC für die dynamische Portzuweisung 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 400000 ohne Anführungszeichen an. Wenn Sie ports 40000 bis einschließlich 42000 öffnen möchten, geben Sie 40000-42000 ohne Anführungszeichen an. Sie können mehrere Ports oder Portsbereiche 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 von 20000 und oben zu öffnen, da niedrigere Ports häufig von anderen Anwendungen verwendet werden und dass Sie mindestens 1000 Ports öffnen, um die Portausschöpfung zu vermeiden. Bei Systemen mit hoher Auslastung benötigen Sie möglicherweise weitere Ports. Der Standardbereich von 1024-5000 wurde in Windows 2008 und höher auf 49152-65535 verschoben, um Portausschöpfung zu vermeiden.
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: YDieser Wert bedeutet, dass die unter dem Ports-Wert aufgeführten Ports internet verfügbar gemacht werden sollen.
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: YDieser Wert bedeutet, dass RPC Ports dynamisch aus der Liste der Internetports zuweisen soll.
Konfigurieren Sie Ihre Firewall so, dass eingehender Zugriff auf die angegebenen dynamischen Ports und port 135 (der RPC Endpoint Mapper-Port) zugelassen wird.
Starten Sie den Computer neu. Wenn RPC neu gestartet wird, werden eingehende Ports basierend auf den von Ihnen angegebenen Registrierungswerten dynamisch zugewiesen. Um beispielsweise 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 servername 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.