프로토콜 전달 개요

프로토콜 전달은 리전별 전달 규칙을 사용하여 특정 프로토콜의 패킷을 단일 가상 머신(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-typeINTERNAL로 설정된 이중 스택 서브넷이어야 합니다. 프리미엄 등급에서만 내부 IPv6 주소를 사용할 수 있습니다. 리전 내부 IPv6 주소 예약은 인스턴스에만 지원되므로 전달 규칙에 임시 IPv6 주소를 사용해야 합니다.

    • 프로토콜 옵션: TCP(기본값) 및 UDP

    • 포트 지정 옵션: 최대 5개 연속, 비연속 포트 또는 모든 포트의 목록

  • 외부 프로토콜 전달:

    • IPv4 주소 지원: 전달 규칙은 단일 리전별 외부 IPv4 주소를 참조합니다. 리전 외부 IPv4 주소는 각 Google Cloud 리전에 고유한 풀에서 가져옵니다. IP 주소는 예약된 고정 주소 또는 임시 주소일 수 있습니다.

    • IPv6 주소 지원: 전달 규칙이 서브넷의 /64 외부 IPv6 주소 범위에서 IP 주소의 /96 범위를 참조합니다. 서브넷은 ipv6-access-typeEXTERNAL로 설정된 이중 스택 서브넷이어야 합니다. 프리미엄 등급에서만 외부 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-typeEXTERNAL 또는 INTERNAL로 설정된 서브넷을 사용할 수 있습니다. ipv6-access-typeINTERNAL로 설정된 서브넷을 사용하려면 외부 전달 규칙에 대해 ipv6-access-typeEXTERNAL로 설정된 이중 스택 서브넷을 구분해야 합니다. 자세한 내용은 이중 스택 서브넷 추가를 참조하세요.

또한 VM 인스턴스 자체는 이중 스택 인스턴스여야 합니다. VM의 stack-typeIPv4_IPv6로 설정하세요. VM은 서브넷에서 ipv6-access-type 설정(EXTERNAL 또는 INTERNAL)을 상속합니다. 자세한 내용은 VM 만들기 및 IPv6 사용 설정을 참조하세요. 기존 VM을 사용하려면 gcloud compute instances network-interfaces update 명령어를 사용하여 VM을 이중 스택으로 업데이트합니다.

요청 및 반환 패킷의 IP 주소

대상 인스턴스가 클라이언트에서 패킷을 수신하면 요청 패킷의 소스 및 대상 IP 주소는 다음 표와 같습니다.

표 1. 요청 패킷의 소스 및 대상 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 주소와 일치하는 소스 IP 주소 또는 전달 규칙과 동일한 VPC 네트워크에 있는 VM의 NIC에 할당된 모든 IP 주소와 일치하는 응답 패킷을 보낼 수 있습니다. 사실상 대부분의 클라이언트는 패킷을 전송한 IP 주소와 동일한 IP주소에서 응답을 받아야 합니다.

다음 표에는 응답 패킷에 대한 소스 및 대상이 요약되어 있습니다.

표 2. 반환 패킷의 소스 및 대상 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 주소로부터 응답 패킷을 받으므로 고차원적 시나리오에 해당합니다.

제한사항

  • 전달 규칙은 2개 이상의 대상 인스턴스를 가리킬 수 없습니다.
  • 대상 인스턴스에서는 상태 확인이 지원되지 않습니다. 필요한 소프트웨어가 대상 인스턴스에서 참조하는 VM에서 실행되고 작동하는지 확인해야 합니다.
  • IPv6 트래픽의 내부 프로토콜 전달에는 다음과 같은 제한사항이 있습니다.
    • L3_DEFAULT 프로토콜은 지원되지 않습니다. TCP 또는 UDP를 사용하세요.
    • 멀티 NIC는 지원되지 않습니다.

API 및 gcloud 참조

전달 규칙은 다음을 참조하세요.

대상 인스턴스의 경우 다음을 참조하세요.

가격 책정

프로토콜 전달에는 부하 분산과 동일한 요금이 부과됩니다. 전달 규칙 및 대상 인스턴스에서 처리되는 인바운드 데이터에 대해 요금이 부과됩니다.

모든 가격 책정 정보는 가격 책정을 참조하세요.

할당량 및 한도

프로토콜 전달의 전달 규칙 할당량은 할당량 및 한도: 전달 규칙을 참조하세요.

다음 단계