방화벽을 통해 작동하도록 Microsoft DTC(Distributed Transaction Coordinator) 구성

이 문서에서는 방화벽을 통해 작동하도록 Microsoft DTC(Distributed Transaction Coordinator)를 구성하는 방법을 설명합니다.

적용 대상: Windows Server 2012 R2, Windows Server 2016, Windows Server 2019, Windows Server 2022
원래 KB 번호: 250367

추가 정보

네트워크 주소 변환 방화벽을 포함하여 방화벽을 통해 통신하도록 DTC를 구성할 수 있습니다.

DTC는 기본적으로 RPC(원격 프로시저 호출) 동적 포트 할당을 사용합니다. RPC 동적 포트 할당은 49152-65535 범위에서 포트 번호를 임의로 선택합니다. 레지스트리를 수정하여 들어오는 통신에 RPC가 동적으로 할당하는 포트를 제어할 수 있습니다. 그런 다음 들어오는 외부 통신을 해당 포트 및 포트 135(RPC 엔드포인트 매퍼 포트)로만 제한하도록 방화벽을 구성할 수 있습니다. 포트 소모를 방지하고 방화벽이 컴퓨터 또는 IP에서 필터링할 수 없는 경우에만 사용자 지정 RPC 포트로 변경하려면 DTC 서비스에 고정 포트 또는 방화벽의 기본 동적 49152-65535 범위를 사용하는 것이 좋습니다.

하나의 로컬 DTC instance 여러 클러스터된 DTC 인스턴스를 가질 수 있습니다. RPC를 사용하는 다른 하위 시스템에 더 많은 들어오는 동적 포트를 제공해야 할 수 있으므로 DTC 서비스에 고정 포트를 사용하는 경우에도 기본 RPC 범위를 유지하는 것이 좋습니다.

이 문서에 설명된 레지스트리 키와 값은 기본적으로 레지스트리에 표시되지 않습니다. 레지스트리 편집기 사용하여 추가해야 합니다.

중요

이 절, 방법 또는 작업에는 레지스트리를 수정하는 방법에 대한 단계가 포함되어 있습니다. 그러나 레지스트리를 잘못 수정하면 심각한 문제가 발생할 수 있습니다. 따라서 다음 단계를 주의하여 수행해야 합니다. 추가된 보호를 위해 레지스트리를 수정하기 전에 백업하세요. 그런 다음 문제가 발생할 경우 레지스트리를 복원할 수 있습니다. 레지스트리를 백업하고 복원하는 방법에 대한 자세한 내용은 Windows에서 레지스트리를 백업하고 복원하는 방법을 참조하세요.

단일 고정 포트를 사용하도록 DTC 구성

DTC 트랜잭션과 관련된 컴퓨터에서 다음 단계에 따라 DTC에 대한 고정 포트를 설정합니다. 방화벽은 고정 포트 및 포트 135(RPC 엔드포인트 매퍼 포트)에 대해 양방향으로 열려 있어야 합니다.

  1. 레지스트리 편집기 시작하려면 시작을선택하고 실행을 선택하고 regedt32를 입력한 다음 확인을 선택합니다.
  2. 레지스트리 편집기 로컬 컴퓨터 창에서 HKEY_LOCAL_MACHINE 선택합니다.
  3. 경로에서 라는 폴더를 두 번 선택하여 트리를 HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC 확장합니다.
  4. MSDTC 폴더를 선택한 다음 편집 메뉴에서 새 > DWORD(32비트) 값을 선택합니다.
  5. 이름을ServerTcpPort로 변경합니다.
  6. 마우스 오른쪽 단추를 클릭하고 새 값에서 수정 을 선택합니다.
  7. 값 편집기 대화 상자에서 10진수를 선택한 다음 값 데이터 필드에 고정 포트 번호(예: g 40001)를 배치한 다음 확인을 선택합니다.

클러스터된 DTC 인스턴스에 대한 고정 포트를 구성하려면 클러스터 리소스 GUID를 찾고 이 위치 아래에 ServerTcpPort 값을 추가해야 합니다. 각 DTC instance 서로 다른 포트 번호를 사용합니다. 예를 들어 DTC 리소스 GUID가 012345678-9abc-def0-1234-56789abcdef0이면 이 경로 HKEY_LOCAL_MACHINE\Cluster\Resources\012345678-9abc-def0-1234-56789abcdef0\MSDTCPRIVATE\MSDTC에 있습니다. 추가 DTC 클러스터형 리소스에 대한 단계를 반복합니다.

또는 관리자 권한이 있는 스크립트의 reg add 명령을 사용하여 이 작업을 수행할 수 있습니다. 클러스터된 DTC instance 사용되는 경우 다음 예제를 특정 클러스터 GUID로 조정합니다.

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

고객 포트 범위를 사용하도록 RPC 구성

방화벽이 RPC 동적 포트 할당을 제어하기 위한 전체 통신을 방지하는 DTC 트랜잭션과 관련된 컴퓨터에서 다음 단계를 수행합니다. 방화벽은 지정된 포트 및 포트 135(RPC 엔드포인트 매퍼 포트)에 대해 양방향으로 열려 있어야 합니다.

  1. 레지스트리 편집기 시작하려면 시작을선택하고 실행을 선택하고 regedt32를 입력한 다음 확인을 선택합니다.

    Regedit.exe 대신 Regedt32.exe 사용합니다. Regedit.exe 포트 값에 필요한 REG_MULTI_SZ 데이터 형식을 지원하지 않습니다.

  2. 레지스트리 편집기 로컬 컴퓨터 창에서 HKEY_LOCAL_MACHINE 선택합니다.

  3. 경로에서 라는 폴더를 두 번 선택하여 트리를 HKEY_LOCAL_MACHINE\Software\Microsoft\Rpc 확장합니다.

  4. RPC 폴더를 선택한 다음 편집 메뉴에서 키 추가를 선택합니다.

  5. 키 추가 대화 상자의 키 이름 상자에 인터넷을 입력한 다음 확인을 선택합니다.

  6. 인터넷 폴더를 선택한 다음 편집 메뉴에서 값 추가를 선택합니다.

  7. 값 추가 대화 상자의 값 이름 상자에 포트를 입력합니다.

  8. 데이터 형식 상자에서 REG_MULTI_SZ 선택한 다음 확인을 선택합니다.

  9. 다중 문자열 편집기 대화 상자의 데이터 상자에서 RPC가 동적 포트 할당에 사용할 포트 또는 포트를 지정한 다음 확인을 선택합니다.

    입력하는 각 문자열 값은 단일 포트 또는 포괄 포트 범위를 지정합니다. 예를 들어 포트 40000을 열려면 따옴표 없이 40000 을 지정합니다. 포트 40000~42000을 열려면 따옴표 없이 40000-42000을 지정합니다. 한 줄당 하나의 포트 또는 포트 범위를 지정하여 여러 포트 또는 포트 범위를 지정할 수 있습니다. 모든 포트는 1024~65535 범위여야 합니다. 포트가 이 범위를 벗어나거나 문자열이 잘못된 경우 RPC는 전체 구성을 잘못된 것으로 처리합니다.

    20000 이상에서 포트를 여는 것이 좋습니다. 낮은 포트는 종종 다른 애플리케이션에서 사용 중일 수 있으며 포트 소모를 방지하기 위해 최소 1000개의 포트를 여는 것이 좋습니다. 부하가 높은 시스템에서는 더 많은 포트가 필요할 수 있습니다. 기본 범위 1024-5000은 포트 소모를 방지하기 위해 Windows 2008 이상에서 49152-65535 범위로 이동되었습니다.

  10. 다음 값을 사용하여 인터넷에 대한 다른 키를 추가하려면 6~9단계를 수행합니다.

    값: PortsInternetAvailable
    데이터 형식: REG_SZ
    데이터: Y

    이 값은 포트 값 아래에 나열된 포트를 인터넷에서 사용할 수 있게 됨을 의미합니다.

  11. 다음 값을 사용하여 인터넷에 대한 다른 키를 추가하려면 6~9단계를 수행합니다.

    값: UseInternetPorts
    데이터 형식: REG_SZ
    데이터: Y

    이 값은 RPC가 인터넷 포트 목록에서 포트를 동적으로 할당해야 임을 의미합니다.

  12. 지정된 동적 포트 및 포트 135(RPC 엔드포인트 매퍼 포트)에 들어오는 액세스를 허용하도록 방화벽을 구성합니다.

  13. 컴퓨터를 다시 시작합니다. RPC가 다시 시작되면 지정한 레지스트리 값에 따라 들어오는 포트를 동적으로 할당합니다. 예를 들어 포트 40000부터 42000까지 포괄 포트를 열려면 다음과 같은 명명된 값을 만듭니다.

    포트: REG_MULTI-SZ: 40000-42000
    PortsInternetAvailable: REG_SZ : Y
    UseInternetPorts: REG_SZ : Y

또한 DTC를 사용하려면 NetBIOS 또는 DNS를 통해 컴퓨터 이름을 resolve 수 있어야 합니다. NIC 속성에서 NetBIOS가 사용하도록 설정되어 있는지 확인하고 NetBIOS가 ping 및 서버 이름을 사용하여 이름을 resolve 수 있는지 테스트합니다. 클라이언트 컴퓨터는 서버 이름을 resolve 수 있어야 합니다. 그리고 서버는 클라이언트의 이름을 resolve 수 있어야 합니다. NetBIOS에서 이름을 resolve 수 없는 경우 컴퓨터의 LMHOSTS 파일에 항목을 추가합니다.