Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article explique comment configurer Microsoft Distributed Transaction Coordinator (DTC) pour qu’il fonctionne via des pare-feu.
Numéro de base de connaissances d’origine : 250367
Plus d’informations
Vous pouvez configurer DTC pour communiquer via des pare-feu, notamment des pare-feu de traduction d’adresses réseau.
DTC utilise l’allocation de port dynamique RPC (Remote Procedure Call) par défaut. L’allocation de port dynamique RPC sélectionne de manière aléatoire les numéros de port dans la plage 49152-65535. En modifiant le Registre, vous pouvez contrôler quels ports RPC allouent dynamiquement pour la communication entrante. Vous pouvez ensuite configurer votre pare-feu pour limiter les communications externes entrantes uniquement aux ports et au port 135 (port rpc Endpoint Mapper). Il est recommandé d’utiliser un port fixe pour les services DTC ou la plage dynamique 49152-65535 par défaut dans les pare-feu afin d’éviter l’épuisement des ports de port et de passer uniquement aux ports RPC personnalisés si les pare-feu ne peuvent pas filtrer sur l’ordinateur ou les adresses IP.
Vous pouvez avoir une instance DTC locale et plusieurs instances DTC en cluster. Vous devrez peut-être fournir davantage de ports dynamiques entrants pour d’autres sous-systèmes qui s’appuient sur RPC. Il est donc recommandé de conserver la plage RPC par défaut même si vous utilisez un port fixe pour les services DTC.
Les clés et valeurs de Registre décrites dans cet article n’apparaissent pas dans le Registre par défaut ; vous devez les ajouter à l’aide de l’Éditeur de Registre.
Important
Cette section, méthode ou tâche contient des étapes vous indiquant comment modifier le Registre. Toutefois, des problèmes graves peuvent se produire si vous modifiez le Registre de façon incorrecte. Par conséquent, vérifiez que vous suivez ces étapes attentivement. Pour une protection supplémentaire, sauvegardez le Registre avant de le modifier. Ensuite, vous pouvez restaurer le Registre si un problème se produit. Pour plus d’informations sur la sauvegarde et la restauration du Registre, consultez Comment sauvegarder et restaurer le Registre dans Window.
Configurer DTC pour utiliser un port fixe unique
Suivez ces étapes sur les ordinateurs impliqués dans les transactions DTC pour définir le port fixe pour DTC. Le pare-feu doit être ouvert dans les deux sens pour le port fixe et le port 135 (port rpc Endpoint Mapper) :
- Pour démarrer l’Éditeur du Registre, sélectionnez Démarrer, Exécutez, tapez regedt32, puis sélectionnez OK.
- Dans l’Éditeur du Registre, sélectionnez HKEY_LOCAL_MACHINE dans la fenêtre Ordinateur local.
- Développez l’arborescence en sélectionnant deux fois les dossiers nommés dans le chemin d’accès
HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC
. - Sélectionnez le dossier MSDTC, puis sélectionnez Nouvelle > valeur DWORD (32 bits) dans le menu Modifier .
- Remplacez le nom par ServerTcpPort.
- Cliquez avec le bouton droit et choisissez Modifier sur la nouvelle valeur.
- Dans la boîte de dialogue Éditeur de valeur, sélectionnez Décimal , puis placez votre numéro de port fixe, par exemple 40001, dans le champ De données Valeur, puis sélectionnez OK.
Pour configurer le port fixe pour les instances DTC en cluster, vous devez rechercher le GUID de ressource de cluster et ajouter la valeur ServerTcpPort sous cet emplacement. Utilisez un numéro de port différent pour chaque instance DTC. Par exemple, si votre GUID de ressource DTC est 012345678-9abc-def0-1234-56789abcdef0, il se trouve dans ce chemin : HKEY_LOCAL_MACHINE\Cluster\Resources\012345678-9abc-def0-1234-56789abcdef0\MSDTCPRIVATE\MSDTC
. Répétez les étapes pour d’autres ressources en cluster DTC.
Vous pouvez également utiliser les reg add
commandes dans des scripts avec des privilèges d’administrateur pour effectuer cette opération. Ajustez l’exemple suivant à votre GUID de cluster spécifique si l’instance DTC en cluster est utilisée :
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
Configurer RPC pour utiliser la plage de ports du client
Suivez ces étapes sur les ordinateurs impliqués dans les transactions DTC où les pare-feu empêchent la communication complète pour contrôler l’allocation de ports dynamiques RPC. Le pare-feu doit être ouvert dans les deux sens pour les ports et le port 135 spécifiés (port rpc Endpoint Mapper) :
Pour démarrer l’Éditeur du Registre, sélectionnez Démarrer, Exécutez, tapez regedt32, puis sélectionnez OK.
Utilisez Regedt32.exe au lieu de Regedit.exe. Regedit.exe ne prend pas en charge le type de données REG_MULTI_SZ requis pour la valeur Ports.
Dans l’Éditeur du Registre, sélectionnez HKEY_LOCAL_MACHINE dans la fenêtre Ordinateur local.
Développez l’arborescence en sélectionnant deux fois les dossiers nommés dans le chemin d’accès
HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc
.Sélectionnez le dossier RPC, puis sélectionnez Ajouter une clé dans le menu Modifier .
Dans la boîte de dialogue Ajouter une clé , dans la zone Nom de clé, tapez Internet, puis sélectionnez OK.
Sélectionnez le dossier Internet, puis sélectionnez Ajouter une valeur dans le menu Modifier .
Dans la boîte de dialogue Ajouter une valeur, dans la zone Nom de la valeur, tapez Ports.
Dans la zone Type de données, sélectionnez REG_MULTI_SZ, puis ok.
Dans la boîte de dialogue Éditeur de chaînes multiples, dans la zone Données , spécifiez le port ou les ports que vous souhaitez utiliser pour l’allocation de ports dynamiques, puis sélectionnez OK.
Chaque valeur de chaîne que vous tapez spécifie un seul port ou une plage inclusive de ports. Par exemple, pour ouvrir le port 400000, spécifiez 40000 sans guillemets. Pour ouvrir les ports 40000 à 42000 inclus, spécifiez 40000-42000 sans guillemets. Vous pouvez spécifier plusieurs ports ou plages de ports en spécifiant un port ou une plage de ports par ligne. Tous les ports doivent être comprises entre 1024 et 65535. Si un port se trouve en dehors de cette plage ou si une chaîne n’est pas valide, RPC traite l’intégralité de la configuration comme non valide.
Microsoft vous recommande d’ouvrir des ports à partir de 20000 et vers le haut, car les ports inférieurs peuvent souvent être utilisés par d’autres applications et que vous ouvrez un minimum de 1 000 ports pour éviter l’épuisement des ports. Sur les systèmes à charge élevée, vous aurez peut-être besoin de ports supplémentaires. La plage par défaut de 1024-5000 a été déplacée dans Windows 2008 et versions ultérieures à 49152-65535 pour éviter l’épuisement des ports.
Suivez les étapes 6 à 9 pour ajouter une autre clé pour Internet en utilisant ces valeurs :
Valeur : PortsInternetAvailable
Type de données : REG_SZ
Données : YCette valeur signifie que les ports répertoriés sous la valeur Ports doivent être rendus Internet disponibles.
Suivez les étapes 6 à 9 pour ajouter une autre clé pour Internet en utilisant ces valeurs :
Valeur : UseInternetPorts
Type de données : REG_SZ
Données : YCette valeur signifie que RPC doit affecter dynamiquement des ports à partir de la liste des ports Internet.
Configurez votre pare-feu pour autoriser l’accès entrant aux ports dynamiques spécifiés et au port 135 (port rpc Endpoint Mapper).
Redémarrez l'ordinateur. Lorsque RPC redémarre, il affecte dynamiquement des ports entrants en fonction des valeurs de Registre que vous avez spécifiées. Par exemple, pour ouvrir les ports 40000 à 42000 inclus, créez ces valeurs nommées :
Ports : REG_MULTI-SZ : 40000-42000
PortsInternetAvailable : REG_SZ : Y
UseInternetPorts : REG_SZ : Y
DTC nécessite également que vous puissiez résoudre les noms d’ordinateurs par le biais de NetBIOS ou DNS. Vérifiez que NetBIOS est activé dans les propriétés de la carte réseau et testez si NetBIOS peut résoudre les noms à l’aide de ping et du nom du serveur. L’ordinateur client doit pouvoir résoudre le nom du serveur. Et le serveur doit être en mesure de résoudre le nom du client. Si NetBIOS ne peut pas résoudre les noms, ajoutez des entrées aux fichiers LMHOSTS sur les ordinateurs.