프로토콜 전달은 리전별 전달 규칙을 사용하여 특정 프로토콜의 패킷을 단일 가상 머신(VM) 인스턴스에 전달합니다. 전달 규칙은 내부 또는 외부 IP 주소를 가질 수 있습니다. 프로토콜 전달은 전달 규칙의 대상 IP 주소를 보존하면서 패킷을 전달합니다. 전달 규칙은 대상 인스턴스라는 객체를 참조하며, 이 객체는 차례대로 단일 VM 인스턴스를 참조합니다.
프로토콜 전달을 사용하여 다음을 수행할 수 있습니다.
- 대상 인스턴스 객체에서 참조하는 VM을 변경하거나 전달 규칙에서 참조하는 대상 인스턴스를 변경하여 인스턴스 간에 이동할 수 있는 IP 주소를 제공합니다.
- 프로토콜 및 포트에 따라 패킷을 서로 다른 VM으로 전달합니다. 두 전달 규칙의 포트와 프로토콜 정보가 고유한 경우에는 동일한 IP 주소를 공유할 수 있습니다.
- (외부 프로토콜 전달만 해당) 특정 네트워크 인터페이스의 추가 외부 IP 주소를 정의합니다. 외부 IPv4 주소에 1:1 NAT 구성이 있는 네트워크 인터페이스와 달리 프로토콜 전달은 전달 규칙의 대상 IP 주소를 보존합니다.
- 소스 IP 주소가 전달 규칙의 IP 주소와 일치하는 패킷을 전송합니다.
프로토콜 전달은 다음과 같은 점에서 패스스루 부하 분산기와 다릅니다.
- 부하 분산 없음. 대상 인스턴스가 패킷을 단일 VM에만 분산합니다.
- 상태 점검 없음. 백엔드 서비스와 달리 대상 인스턴스는 상태 점검을 지원하지 않습니다. 필요한 소프트웨어가 대상 인스턴스에서 참조하는 VM에서 실행되고 작동하는지 확인하기 위해 다른 방법을 사용해야 합니다.
아키텍처
프로토콜 전달은 리전별 외부 또는 리전별 내부 전달 규칙과 영역별 대상 인스턴스 객체를 사용합니다. 대상 인스턴스와 이 인스턴스에서 참조하는 VM이 전달 규칙의 리전에 있는 영역에 위치해야 합니다.
외부 프로토콜 전달. 하나의 대상 인스턴스를 가리키는 여러 개의 전달 규칙을 설정하면 하나의 VM 인스턴스로 여러 개의 외부 IP 주소를 사용할 수 있습니다. VM 인스턴스 하나의 데이터를 다양한 외부 IP 주소 또는 서로 다른 프로토콜과 포트를 통해 제공하려는 경우에 이 방법을 사용할 수 있습니다. 특히 SSL 가상 호스팅을 설정할 때 유용합니다. 외부 프로토콜 전달은 IPv6 클라이언트의 연결을 처리할 수 있습니다.
외부 프로토콜 전달은 AH, ESP, GRE, ICMP, ICMPv6, SCTP, TCP, UDP 프로토콜을 지원합니다.
다음 다이어그램은 외부 프로토콜 전달 아키텍처의 예시를 보여줍니다. 이렇게 설정하는 방법을 알아보려면 외부 프로토콜 전달 설정을 참조하세요.
내부 프로토콜 전달. 내부 프로토콜 전달은 리전별 내부 IPv4 주소(서브넷의 기본 IPv4 주소 범위) 또는 리전별 내부 IPv6 주소(다음 위치)서브넷의 IPv6 주소 범위 참조하세요.
내부 프로토콜 전달은 TCP 및 UDP 프로토콜을 지원합니다.
다음 다이어그램은 내부 프로토콜 전달 아키텍처의 예시를 보여줍니다. 이렇게 설정하는 방법을 알아보려면 내부 프로토콜 전달 설정을 참조하세요.
내부 프로토콜 전달을 사용하면 전달 규칙의 대상을 변경하여 패스 스루 부하 분산기의 백엔드 서비스와 대상 인스턴스 간에 전환할 수 있습니다. 자세한 내용은 대상 인스턴스와 백엔드 서비스 간 전환을 참조하세요.
전달 규칙
각 전달 규칙은 IP 주소, 프로토콜, 포트 정보(선택사항, 이를 지정했으며 프로토콜이 포트를 지원하는 경우)와 일치합니다. 전달 규칙이 대상 인스턴스를 참조할 때 Google Cloud는 전달 규칙의 주소, 프로토콜, 포트 지정과 일치하는 패킷을 대상 인스턴스에서 참조하는 VM으로 라우팅합니다.
내부 프로토콜 전달:
IPv4 주소 지원: 서브넷의 기본 IPv4 범위의 리전별 내부 IPv4 주소(예약된 고정 주소 또는 임시 주소)입니다.
IPv6 주소 지원: 전달 규칙은 서브넷의
/64
내부 IPv6 주소 범위에서 IP 주소의/96
범위를 참조합니다. 서브넷은ipv6-access-type
이INTERNAL
로 설정된 이중 스택 서브넷이어야 합니다. 프리미엄 등급에서만 내부 IPv6 주소를 사용할 수 있습니다. 리전 내부 IPv6 주소 예약은 인스턴스에만 지원되므로 전달 규칙에 임시 IPv6 주소를 사용해야 합니다.프로토콜 옵션:
TCP
(기본값) 및UDP
포트 지정 옵션: 최대 5개 연속, 비연속 포트 또는 모든 포트의 목록
외부 프로토콜 전달:
IPv4 주소 지원: 전달 규칙은 단일 리전별 외부 IPv4 주소를 참조합니다. 리전 외부 IPv4 주소는 각 Google Cloud 리전에 고유한 풀에서 가져옵니다. IP 주소는 예약된 고정 주소 또는 임시 주소일 수 있습니다.
IPv6 주소 지원: 전달 규칙은 서브넷의
/64
외부 IPv6 주소 범위에서 IP 주소의/96
범위를 참조합니다. 서브넷은ipv6-access-type
이EXTERNAL
로 설정된 이중 스택 서브넷이어야 합니다. 프리미엄 등급에서만 외부 IPv6 주소를 사용할 수 있습니다. IPv6 주소 범위는 예약된 고정 주소 또는 임시 주소일 수 있습니다.프로토콜 옵션:
AH
,ESP
,ICMP
,SCTP
,TCP
(기본값),UDP
,L3_DEFAULT
:L3_DEFAULT
전달 규칙 프로토콜 설정은 모든 IP 프로토콜 트래픽을 제공하는 데 사용할 수 있습니다.- ICMP 프로토콜은 IPv4 주소만 지원하므로 IPv6 전달 규칙은
ICMP
프로토콜 설정을 지원하지 않습니다. ICMPv6 및 GRE 트래픽을 제공하려면 전달 규칙 프로토콜을L3_DEFAULT
로 설정합니다.
포트 지정 옵션: 인접한 포트 범위 또는 모든 포트
전달 규칙을 사용할 때 다음 사항에 유의하세요.
프로토콜 전달의 경우 전달 규칙이 단일 대상 인스턴스만 참조할 수 있습니다.
내부 패스 스루 네트워크 부하 분산기 및 백엔드 서비스 기반의 외부 패스 스루 네트워크 부하 분산기의 경우 전달 규칙이 단일 백엔드 서비스만 참조할 수 있습니다.
전달 규칙을 삭제하고 다시 만들지 않고도 내부 프로토콜 전달과 내부 패스 스루 네트워크 부하 분산기 간에 전환할 수 있습니다. 외부 프로토콜 전달과 백엔드 서비스 기반의 외부 패스 스루 네트워크 부하 분산기 간에 전환하려면 전달 규칙을 삭제하고 다시 만들어야 합니다. 자세한 내용은 대상 인스턴스와 백엔드 서비스 간 전환을 참조하세요.
포트 정보는 포트 개념이 있는 프로토콜(
TCP
,UDP
또는SCTP
)에만 지정할 수 있습니다.L3_DEFAULT
프로토콜 옵션은 모든 AH, ESP, GRE, ICMP, ICMPv6, SCTP, TCP, UDP 프로토콜을 전달합니다. TCP, UDP, SCTP 프로토콜의 경우L3_DEFAULT
는 모든 포트를 전달합니다.조각화된 UDP 패킷이 수신될 것으로 예상되면 다음 중 하나를 수행하여 모든 조각(포트 정보가 없는 조각 포함)이 인스턴스로 전달되도록 합니다.
- 단일
L3_DEFAULT
전달 규칙 사용 또는 - 모든 포트를 전달하도록 구성된 단일
UDP
전달 규칙 사용
- 단일
대상 인스턴스
대상 인스턴스는 동일한 영역에서 하나의 VM 인스턴스를 참조하는 영역별 리소스입니다. 대상 인스턴스를 참조하는 전달 규칙은 대상 인스턴스의 영역이 포함된 리전에 있어야 합니다. 대상 인스턴스에는 Cloud NAT 정책이 적용되지 않으므로 NAT를 순회할 수 없는 IPsec 트래픽에 사용할 수 있습니다.
멀티 NIC 지원
대상 인스턴스는 참조하는 VM 인스턴스의 네트워크 인터페이스(NIC) 지정을 지원합니다. --network
플래그를 사용하여 참조된 VM에 NIC가 있는 VPC 네트워크 이름을 지정합니다.
--network
플래그를 생략하면 대상 인스턴스가 참조하는 VM의nic0
인터페이스로 패킷을 전달합니다.--network
플래그를 사용하는 경우 대상 인스턴스가 참조하는 VM의 NIC가 VPC 네트워크에 있어야 합니다.- 내부 프로토콜 전달의 경우 전달 규칙에서 사용하는 서브넷이 대상 인스턴스의 네트워크 인터페이스에서 사용하는 VPC 네트워크에 있어야 합니다.
IPv6 지원
외부 프로토콜 전달 배포에서 IPv6 트래픽을 지원하도록 하려면 VM 인스턴스를 IPv6 전달 규칙과 동일한 리전에 있는 이중 스택 서브넷에 구성해야 합니다. VM 인스턴스에 대해 ipv6-access-type
이 EXTERNAL
또는 INTERNAL
로 설정된 서브넷을 사용할 수 있습니다. ipv6-access-type
이 INTERNAL
로 설정된 서브넷을 사용하려면 외부 전달 규칙에 대해 ipv6-access-type
이 EXTERNAL
로 설정된 이중 스택 서브넷을 구분해야 합니다. 자세한 내용은 이중 스택 서브넷 추가를 참조하세요.
또한 VM 인스턴스 자체가 이중 스택 인스턴스여야 합니다. VM의 stack-type
을 IPv4_IPv6
로 설정하세요. VM은 서브넷에서 ipv6-access-type
설정(EXTERNAL
또는 INTERNAL
)을 상속합니다. 자세한 내용은 VM 만들기 및 IPv6 사용 설정을 참조하세요. 기존 VM을 사용하려면 gcloud compute instances network-interfaces
update
명령어를 사용하여 VM을 이중 스택으로 업데이트합니다.
요청 및 반환 패킷의 IP 주소
대상 인스턴스가 클라이언트에서 패킷을 수신하면 요청 패킷의 소스 및 대상 IP 주소는 다음 표와 같습니다.
프로토콜 전달 유형 | 소스 IP 주소 | 대상 IP 주소 |
---|---|---|
외부 프로토콜 전달 | Google Cloud VM과 연결된 외부 IP 주소 또는 인터넷에 있는 클라이언트의 외부 IP 주소입니다. | 전달 규칙의 IP 주소입니다. |
내부 프로토콜 전달 | 클라이언트의 내부 IP 주소로, Google Cloud 클라이언트의 경우 기본 내부 IPv4 주소 또는 IPv6 주소, 또는 VM 네트워크 인터페이스의 별칭 IP 범위에 있는 IPv4 주소입니다. | 전달 규칙의 IP 주소입니다. |
대상 인스턴스 VM에서 실행되는 소프트웨어는 다음을 수행하도록 구성되어야 합니다.
- 전달 규칙 IP 주소 또는 모든 IP 주소(
0.0.0.0
또는::
)를 리슨(결합) - 전달 규칙의 프로토콜이 포트를 지원하는 경우 전달 규칙에 포함된 포트를 리슨(결합)
반환 패킷은 대상 인스턴스에서 클라이언트로 직접 전송됩니다. 응답 패킷의 소스 및 대상 IP 주소는 프로토콜에 따라 달라집니다.
- TCP는 연결 지향적입니다. 대상 인스턴스는 전달 규칙의 IP 주소와 일치하는 소스 IP 주소를 가진 패킷으로 응답해야 합니다. 이렇게 하면 클라이언트가 응답 패킷을 적절한 TCP 연결과 연결할 수 있습니다.
- AH, ESP, GRE, ICMP, ICMPv6, UDP는 연결 지향적이지 않습니다. 대상 인스턴스는 전달 규칙의 IP 주소와 일치하거나 전달 규칙과 동일한 VPC 네트워크에 있는 VM의 NIC에 할당된 모든 IP 주소와 일치하는 소스 IP 주소를 가진 응답 패킷을 전송할 수 있습니다. 사실상 대부분의 클라이언트는 패킷을 전송한 IP 주소와 동일한 IP주소에서 응답을 받아야 합니다.
다음 표에는 응답 패킷에 대한 소스 및 대상이 요약되어 있습니다.
트래픽 유형 | 소스 IP 주소 | 대상 IP 주소 |
---|---|---|
TCP | 전달 규칙의 IP 주소입니다. | 요청 패킷의 소스 IP 주소입니다. |
AH, ESP, GRE, ICMP, ICMPv6, UDP* | 대부분의 사용 사례에서 전달 규칙의 IP 주소입니다.† | 요청 패킷의 소스 IP 주소입니다. |
* AH, ESP, GRE, ICMP, ICMPv6는 외부 프로토콜 전달에서만 지원됩니다.
† 내부 프로토콜 전달을 사용하면 응답 패킷의 소스를 VM NIC의 기본 내부 IPv4 주소 또는 IPv6 주소 또는 별칭 IP 주소 범위로 설정하면 됩니다. VM에 IP 전달이 사용 설정된 경우 임의의 IP 주소 소스를 사용할 수도 있습니다. 전달 규칙의 IP 주소를 소스로 사용하지 않는 경우는 클라이언트가 요청 패킷을 전송한 IP 주소와 일치하지 않는 내부 IP 주소로부터 응답 패킷을 받으므로 고차원적 시나리오에 해당합니다.
대상 인스턴스의 아웃바운드 인터넷 연결
대상 인스턴스에서 참조하는 VM 인스턴스는 연결된 전달 규칙의 IP 주소를 아웃바운드 연결의 소스 IP 주소로 사용하여 인터넷에 대한 연결을 시작할 수 있습니다.
일반적으로 VM 인스턴스는 항상 자체 외부 IP 주소 또는 Cloud NAT를 사용하여 연결을 시작합니다. 전달 규칙 IP 주소는 VM 인스턴스가 동일한 외부 IP 주소에서 연결을 시작하고 수신해야 하는 경우와 같은 특수한 시나리오에서만 대상 인스턴스에서 연결을 시작하는 데 사용합니다.
대상 인스턴스 VM에서 인터넷으로 직접 전송되는 아웃바운드 패킷에는 트래픽 프로토콜과 포트에 대한 제한이 없습니다. 아웃바운드 패킷이 전달 규칙의 IP 주소를 소스로 사용한다고 해도 패킷의 프로토콜 및 소스 포트는 전달 규칙의 프로토콜 및 포트 사양과 일치할 필요가 없습니다. 하지만 인바운드 응답 패킷은 전달 규칙의 전달 규칙 IP 주소, 프로토콜, 대상 포트와 일치해야 합니다. 자세한 내용은 외부 패스 스루 네트워크 부하 분산기 및 외부 프로토콜 전달의 경로를 참조하세요.
대상 인스턴스 VM에서 인터넷에 연결하는 이 경로는 Google Cloud의 암시적 방화벽 규칙에 따른 의도된 기본 동작입니다. 하지만 이 경로를 열어 두는 것이 보안상 우려되는 경우 타겟팅된 이그레스 방화벽 규칙을 사용하여 인터넷으로 향하는 원치 않는 아웃바운드 트래픽을 차단할 수 있습니다.
제한사항
- 전달 규칙은 둘 이상의 대상 인스턴스를 가리킬 수 없습니다.
- 대상 인스턴스에서는 상태 확인이 지원되지 않습니다. 필요한 소프트웨어가 대상 인스턴스에서 참조하는 VM에서 실행되고 작동하는지 확인해야 합니다.
- IPv6 트래픽의 내부 프로토콜 전달에는 다음과 같은 제한사항이 있습니다.
L3_DEFAULT
프로토콜은 지원되지 않습니다.TCP
또는UDP
를 사용하세요.- 멀티 NIC는 지원되지 않습니다.
API 및 gcloud 참조
전달 규칙은 다음을 참조하세요.
대상 인스턴스는 다음을 참조하세요.
가격 책정
프로토콜 전달에는 부하 분산과 동일한 요금이 부과됩니다. 전달 규칙 및 대상 인스턴스에서 처리되는 인바운드 데이터에 대한 요금이 부과됩니다.
모든 가격 정보는 가격 책정을 참조하세요.
할당량 및 한도
프로토콜 전달에 대한 전달 규칙의 할당량은 할당량 및 한도: 전달 규칙을 참조하세요.