포트 할당 및 선택적 바인딩에 대한 레지스트리 구성
Windows 2000부터 Rpccfg.exe라는 Windows 리소스 키트의 유틸리티를 사용하여 바인딩을 설정해야 합니다. 자세한 내용은 적절한 운영 체제 버전에 대한 Windows 리소스 키트를 참조하세요.
Windows 2000 이전 버전의 경우 다음 표의 레지스트리 키는 동적 포트 할당 및 다중 호스트 컴퓨터의 NIC에 바인딩에 대한 시스템 기본값을 지정합니다. 먼저 이러한 키를 만든 다음 적절한 설정을 지정해야 합니다.
RpcServerUseProtseqEx 함수를 사용하면 이러한 설정에 영향을 줍니다. 개발자는 포트 할당을 관리할 때 이 섹션에 설명된 레지스트리 설정과 RpcServerUseProtseqEx 함수에 대해 잘 알고 있어야 합니다. 3개의 가상 애플리케이션이 있는 예제는 아래 표를 따르며 이러한 설정과 RpcServerUseProtseqEx 함수가 상호 운용되는 방법을 보여 줍니다.
키가 없거나 잘못된 값이 포함된 경우 전체 구성이 잘못된 것으로 표시되고 ncacn_ip_tcp 또는 ncadg_ip_udp 대한 모든 RpcServerUseProtseq* 호출이 실패합니다.
참고
프로세스에 할당된 포트는 해당 프로세스가 죽을 때까지 할당된 상태로 유지됩니다. 사용 가능한 모든 포트가 사용 중인 경우 함수는 RPC_S_OUT_OF_RESOURCES 반환합니다.
포트 키 | 데이터 형식 | Description |
---|---|---|
|
REG_MULTI_SZ | 인터넷에서 사용할 수 있는 모든 포트 또는 인터넷에서 사용할 수 없는 모든 포트로 구성된 IP 포트 범위 집합을 지정합니다. 각 문자열은 단일 포트 또는 포괄 포트 집합(예: 1000-1050, 1984)을 나타냅니다. 항목이 0에서 65535 범위 밖에 있거나 문자열을 해석할 수 없는 경우 RPC 런타임은 전체 구성을 잘못된 것으로 처리합니다. |
|
REG_SZ | Y 또는 N(대/소문자를 구분하지 않음). Y이면 포트 키에 나열된 포트는 모두 해당 컴퓨터에서 인터넷에서 사용할 수 있는 포트입니다. N이면 포트 키에 나열된 포트는 모두 인터넷을 사용할 수 없는 포트입니다. |
|
REG_SZ | Y 또는 N(대/소문자를 구분하지 않음). 시스템 기본 정책을 지정합니다. Y이면 위에서 정의한 대로 기본값을 사용하는 프로세스에 인터넷 사용 가능한 포트 집합의 포트가 할당됩니다. N이면 기본값을 사용하는 프로세스에 인트라넷 전용 포트 집합의 포트가 할당됩니다. |
|
REG_MULTI_SZ | 기본적으로 바인딩할 모든 NIC의 디바이스 이름을 나열합니다(예: \Device\AMDPCN1). 키가 없으면 서버는 모든 NIC에 바인딩됩니다. 키가 있는 경우 NICFlags 필드가 RPC_C_BIND_TO_ALL_NICS 설정되지 않는 한 서버는 키에 지정된 NIC에 바인딩됩니다. 키에 null("") 값이 있는 경우 구성이 잘못된 것으로 표시되고 ncacn_ip_tcp 또는 ncadg_ip_udpRpcServerUseProtseq*에 대한 모든 호출이 실패합니다. |
다음 표에서는 이전 표에 정의된 설정에 의해 세 개의 샘플 애플리케이션이 어떻게 영향을 받는지, 그리고 RpcServerUseProtseqEx 함수를 사용하여 적용된 설정도 어떻게 영향을 받는지 보여 줍니다.
이 예제에서는 다음과 같은 세 가지 가상 애플리케이션을 고려합니다.
- InternetApp: 이 애플리케이션은 인터넷에 노출하기 위한 것이며 RpcServerUseProtseqEx 함수에 전달된 RPC_POLICY 구조체의 EndpointFlags 멤버에 RPC_C_USE_INTERNET_PORT 지정했습니다.
- LocalApp: 이 애플리케이션은 인터넷에 노출하기 위한 것이 아니며 RpcServerUseProtseqEx 함수에 전달된 RPC_POLICY 구조체의 EndpointFlags 멤버에 RPC_C_USE_INTRANET_PORT 지정했습니다.
- DefaultApp: 이 애플리케이션은 RpcServerUseProtseqEx 함수에 전달된 RPC_POLICY 구조체의 EndpointFlags 멤버에 0을 지정합니다.
다음 표에서는 이전 표에 설명된 레지스트리 항목에 지정된 값을 기반으로 이러한 설정이 미치는 영향에 대해 설명합니다. 서식 고려 사항의 경우 다음 코드가 할당됩니다.
PIA = PortsInternetAvailable 키 값
UIP = UseInternetPorts 키 값
이 예제를 위해 포트 키의 값은 각 항목에 대해 5000-5100입니다.
애플리케이션 | PIA | UIP | 결과 |
---|---|---|---|
InternetApp | Y | Y | 5000에서 5100 사이의 포트 사용 |
LocalApp | Y | Y | 5000-5100 범위 외부의 포트 사용 |
DefaultApp | Y | Y | 5000에서 5100 사이의 포트 사용 |
InternetApp | Y | N | 5000에서 5100 사이의 포트 사용 |
LocalApp | Y | N | 5000-5100 범위 외부의 포트 사용 |
DefaultApp | Y | N | 5000-5100 범위 외부의 포트 사용 |
InternetApp | N | Y | 5000-5100 범위 외부의 포트 사용 |
LocalApp | N | Y | 5000에서 5100 사이의 포트 사용 |
DefaultApp | N | Y | 5000-5100 범위 외부의 포트 사용 |
InternetApp | N | N | 5000-5100 범위 외부의 포트 사용 |
LocalApp | N | N | 5000에서 5100 사이의 포트 사용 |
DefaultApp | N | N | 5000에서 5100 사이의 포트 사용 |
관련 항목