Cloud NAT 개요

Cloud NAT(네트워크 주소 변환)를 사용하면 외부 IP 주소가 없는 특정 리소스가 인터넷에 대한 아웃바운드 연결을 만들 수 있습니다.

Cloud NAT는 다음 리소스에 대해 발신 연결을 제공합니다.

아키텍처

Cloud NAT는 소프트웨어로 정의되는 분산형 및 관리형 서비스입니다. 프록시 VM 또는 어플라이언스를 기반으로 하지 않습니다. Cloud NAT는 Virtual Private Cloud(VPC) 네트워크를 지원하는 Andromeda 소프트웨어를 구성하여 외부 IP 주소가 없는 VM에 소스 네트워크 주소 변환(소스 NAT 또는SNAT)이 제공되도록 합니다. Cloud NAT는 또한 설정된 인바운드 응답 패킷에만 대상 네트워크 주소 변환(대상 NAT 또는 DNAT)을 제공합니다.

기존 NAT와 Cloud NAT 비교(확대하려면 클릭)
기존 NAT와 Cloud NAT 비교(확대하려면 클릭)

Cloud NAT는 다음 홉이 기본 인터넷 게이트웨이인 VPC 네트워크에서 정적 경로와 함께 아웃바운드 NAT를 구현합니다. 기본 구성에서 VPC 네트워크의 기본 경로는 이 요구사항을 충족합니다.

Cloud NAT는 인터넷에서 수신되는 원치 않는 인바운드 연결을 구현하지 않습니다. DNAT는 아웃바운드 패킷에 대한 응답으로 도착하는 패킷에 대해서만 수행됩니다.

이점

Cloud NAT는 다음과 같은 이점을 제공합니다.

  • 보안

    개별 VM에 각 외부 IP 주소가 포함되어야 하는 필요를 줄일 수 있습니다. 이그레스 방화벽 규칙에 따라 외부 IP 주소가 없는 VM이 인터넷에서 대상에 액세스할 수 있습니다. 예를 들어 업데이트 다운로드 또는 프로비저닝 완료를 위해서만 VM에 인터넷 액세스가 필요할 수 있습니다.

    수동 NAT IP 주소 할당을 사용하여 Cloud NAT 게이트웨이를 구성할 경우 공통 외부 소스 IP 주소 집합을 대상과 확실하게 공유할 수 있습니다. 예를 들어 대상 서비스는 알려진 외부 IP 주소로부터 들어오는 연결만 허용할 수 있습니다.

  • 지원 여부

    Cloud NAT는 소프트웨어로 정의되는 분산형 및 관리형 서비스입니다. 프로젝트의 VM 또는 단일 물리적 게이트웨이 기기에 의존하지 않습니다. 지정한 구성 매개변수를 저장하는 NAT의 제어 영역을 제공하는 Cloud Router에서 NAT 게이트웨이를 구성합니다. Google Cloud는 Google Cloud VM을 실행하는 물리적 머신에서 프로세스를 실행하고 유지관리합니다.

  • 확장성

    사용되는 NAT IP 주소 수를 자동으로 확장하도록 Cloud NAT를 구성할 수 있으며 자동 확장이 사용 설정된 VM을 포함하여 관리형 인스턴스 그룹에 속하는 VM을 지원합니다.

  • 성능

    Cloud NAT는 VM별 네트워크 대역폭을 줄이지 않습니다. Cloud NAT는 Google의 Andromeda 소프트웨어 정의 네트워킹으로 구현됩니다. 자세한 내용은 Compute Engine 문서의 네트워크 대역폭을 참조하세요.

사양

다음에서 전송되는 패킷에 대한 인터넷에 NAT를 제공하도록 Cloud NAT를 구성할 수 있습니다.

  • 네트워크 인터페이스에 할당된 외부 IP 주소가 없는 경우 Compute Engine VM 네트워크 인터페이스의 내부 IP 주소. 네트워크 인터페이스에 할당된 외부 IP 주소가 있는 경우 Google Cloud는 네트워크 인터페이스가 Google Cloud 인터넷 액세스 요구사항을 충족하므로 인터페이스의 기본 내부 IP 주소와 일치하는 소스를 가진 패킷에 대해 일대일 NAT를 자동으로 수행합니다. 인터페이스에 외부 IP 주소가 있으면 항상 우선 적용되며, Cloud NAT를 사용하지 않고 항상 일대일 NAT를 수행합니다.

  • VM의 네트워크 인터페이스에 할당된 별칭 IP 범위. 네트워크 인터페이스에 할당된 외부 IP 주소가 있더라도 인터페이스의 별칭 IP 범위에 속하는 소스의 패킷에 대해 NAT를 제공하도록 Cloud NAT 게이트웨이를 구성할 수 있습니다. 인터페이스에서 외부 IP 주소는 별칭 IP 주소로 일대일 NAT를 수행하지 않습니다.

  • GKE 클러스터의 경우 특정 상황에서 클러스터에 외부 IP 주소가 있는 경우에도 Cloud NAT에서 서비스를 제공할 수 있습니다. 자세한 내용은 GKE 상호작용을 참조하세요.

Cloud NAT는 아웃바운드 연결과 이러한 연결에 대해 인바운드 응답을 허용합니다. 각 Cloud NAT 게이트웨이는 이그레스에서 소스 NAT를 수행하고 설정된 응답 패킷에 대해 대상 NAT를 수행합니다.

Cloud NAT는 방화벽 규칙에서 허용되었더라도 인터넷에서 수신되는 원치 않는 인바운드 요청을 허용하지 않습니다. 자세한 내용은 관련 RFC를 참조하세요.

각 Cloud NAT 게이트웨이는 단일 VPC 네트워크, 리전, Cloud Router와 연결됩니다. Cloud NAT 게이트웨이 및 Cloud Router는 제어 영역을 제공합니다. 이는 데이터 영역에 포함되지 않으므로 패킷이 Cloud NAT 게이트웨이 또는 Cloud Router를 통과하지 않습니다.

경로 및 방화벽 규칙

Cloud NAT는 다음 홉이 기본 인터넷 게이트웨이인 커스텀 정적 경로에 의존합니다. Cloud NAT 게이트웨이를 완전히 활용하려면 VPC 네트워크에 다음 홉이 기본 인터넷 게이트웨이인 기본 경로가 필요합니다. 자세한 내용은 경로 상호작용을 참조하세요.

Cloud NAT에는 Google Cloud 방화벽 규칙 요구사항이 없습니다. 방화벽 규칙은 Cloud NAT 게이트웨이가 아닌 Compute Engine VM의 네트워크 인터페이스에 직접 적용됩니다.

NAT IP 주소에 대한 연결을 허용하는 특별한 방화벽 규칙을 만들 필요가 없습니다. Cloud NAT 게이트웨이가 VM의 네트워크 인터페이스로 NAT를 제공할 때 관련 이그레스 방화벽 규칙은 NAT 전에 네트워크 인터페이스에 대한 패킷으로 평가됩니다. 인그레스 방화벽 규칙은 패킷이 NAT에서 처리된 다음 평가됩니다.

서브넷 IP 주소 범위 관련성

네트워크 인터페이스에 할당된 외부 IP 주소가 없는 한, Cloud NAT 게이트웨이는 Compute Engine VM의 네트워크 인터페이스로부터 전송된 패킷에 대해 NAT 서비스를 제공할 수 있습니다. GKE 클러스터의 경우 특정 상황에서 클러스터 노드에 외부 IP 주소가 있는 경우에도 Cloud NAT에서 서비스를 제공할 수 있습니다. 자세한 내용은 GKE 상호작용을 참조하세요.

VM 네트워크 인터페이스의 기본 내부 IP 주소, 별칭 IP 범위 또는 둘 다에 대해 NAT를 제공하도록 Cloud NAT 게이트웨이를 구성할 수 있습니다. 이 구성은 게이트웨이가 적용될 서브넷 IP 주소 범위를 선택하여 수행됩니다.

다음에 대해 NAT를 제공하도록 Cloud NAT 게이트웨이를 구성할 수 있습니다.

  • 리전 내 모든 서브넷의 기본 및 보조 IP 주소 범위. 단일 Cloud NAT 게이트웨이는 네트워크 인터페이스가 해당 리전의 서브넷을 사용하는 적격한 VM의 기본 내부 IP 주소 및 모든 별칭 IP 범위로 NAT를 제공합니다. 이 옵션은 리전별로 정확히 하나의 NAT 게이트웨이를 사용합니다.

  • 리전에 있는 모든 서브넷의 기본 IP 주소 범위. 단일 Cloud NAT 게이트웨이는 네트워크 인터페이스가 해당 리전의 서브넷을 사용하는 적격한 VM의 서브넷 기본 IP 주소 범위로부터 기본 내부 IP 주소 및 별칭 IP 범위로 NAT를 제공합니다. 해당 리전에서 추가 Cloud NAT 게이트웨이를 만들어 적격한 VM의 서브넷 보조 IP 주소 범위로부터 별칭 IP 범위로 NAT를 제공할 수 있습니다.

  • 커스텀 서브넷 IP 주소 범위. Cloud NAT 할당량 및 한도에 따라 Cloud NAT 게이트웨이를 필요한 만큼 여러 개 만들 수 있습니다. 각 게이트웨이에서 제공되어야 할 서브넷 기본 또는 보조 IP 주소 범위를 선택합니다.

대역폭

Cloud NAT 게이트웨이를 사용해도 VM이 사용할 수 있는 아웃바운드 또는 인바운드 대역폭 양이 변경되지 않습니다. 머신 유형별로 달라지는 대역폭 사양은 Compute Engine 문서의 네트워크 대역폭을 참조하세요.

여러 네트워크 인터페이스가 있는 VM

여러 네트워크 인터페이스가 포함된 VM을 구성할 때 각 인터페이스는 개별 VPC 네트워크에 있어야 합니다. 따라서 다음 사항이 참입니다.

  • Cloud NAT 게이트웨이는 VM의 단일 네트워크 인터페이스에만 적용될 수 있습니다. 개별 Cloud NAT 게이트웨이는 각 게이트웨이가 개별 인터페이스에 적용되는 동일 VM에 NAT를 제공할 수 있습니다.

  • 여러 네트워크 인터페이스 VM의 인터페이스 중 하나가 외부 IP 주소를 가지는 경우에는 Cloud NAT에 적격하지 않지만 외부 IP가 없는 다른 하나의 경우에는 NAT에 적격하며 적절한 서브넷 IP 주소 범위에 적용되도록 Cloud NAT 게이트웨이를 구성했습니다.

NAT IP 주소 및 포트

Cloud NAT 게이트웨이를 만들 때는 게이트웨이가 리전 외부 IP 주소를 자동으로 할당하도록 선택할 수 있습니다. 또는 게이트웨이에 고정된 개수의 리전 외부 IP 주소를 수동으로 할당할 수 있습니다. 각 메서드에 대한 자세한 내용은 NAT IP 주소를 참조하세요.

NAT 서비스를 제공해야 하는 각 VM에 대해 각 Cloud NAT 게이트웨이가 예약하는 소스 포트 수를 구성할 수 있습니다. NAT가 제공되어야 하는 VM은 게이트웨이가 제공하도록 구성된 서브넷 IP 주소 범위에 의해 결정됩니다. 자세한 내용은 포트 및 포트 예약 절차를 참조하세요.

관련 RFC

Cloud NAT는 RFC 5128에서 정의된 엔드포인트 독립 매핑엔드포인트 종속 필터링을 지원합니다. 엔드포인트 독립 매핑을 사용 설정 또는 사용 중지할 수 있습니다. 기본적으로 엔드포인트 독립 매핑은 NAT 게이트웨이를 만들 때 사용 중지됩니다.

엔드포인트 독립 매핑은 VM이 지정된 내부 IP 주소 및 포트 쌍에서 여러 다른 대상으로 패킷을 전송하는 경우, 게이트웨이가 패킷의 대상에 관계없이 이러한 모든 패킷을 동일한 NAT IP 주소 및 포트 쌍으로 매핑하는 것을 의미합니다. 엔드포인트 독립 매핑에 대한 자세한 내용 및 관련 영향은 동시 포트 재사용 및 엔드포인트 독립 매핑을 참조하세요.

엔드포인트 종속 필터링은 인터넷의 응답 패킷이 VM에서 이미 패킷을 전송한 IP 주소 및 포트에서 온 경우에만 입력할 수 있다는 것을 의미합니다. 필터링은 엔드포인트 매핑 유형에 관계없이 엔드포인트에 종속됩니다. 이 기능은 항상 사용 설정되어 있으며 사용자가 구성할 수 없습니다.

포트와 연결 간의 관계에 대한 자세한 내용은 포트 및 연결NAT 흐름 예시를 참조하세요.

Cloud NAT는 RFC 3489에 정의된 포트 제한 Cone NAT입니다.

NAT 순회

엔드포인트 독립 매핑이 사용 설정된 경우 고유 STUN 또는 TURN 서버를 배포하면 Cloud NAT는 STUN 및 TURN과 같은 일반적인 NAT 순회 프로토콜과 호환됩니다.

  • STUN(Session Traversal Utilities for NAT, RFC 5389)은 통신 채널이 설정된 다음 NAT 뒤의 VM 간 직접 통신을 허용합니다.
  • TURN(Traversal Using Relays around NAT, RFC 5766)은 서버에 외부 IP 주소가 포함된 타사 서버를 통해 NAT뒤의 VM 간 통신을 허용합니다. 각 VM이 서버의 외부 IP 주소에 연결되고, 해당 서버가 두 VM 사이의 통신을 릴레이합니다. TURN이 더 강력하지만 대역폭과 리소스 소비량이 더 많습니다.

NAT 제한 시간

Cloud NAT 게이트웨이는 다음 제한 시간을 사용합니다.

제한 시간 Cloud NAT 기본값 구성 가능

UDP 매핑 유휴 제한 시간

RFC 4787 REQ-5

30초

TCP 설정 연결 유휴 제한 시간

RFC 5382 REQ-5

1200초(20분)

TCP 임시 연결 유휴 제한 시간

RFC 5382 REQ-5

30초

참고: 이 제한 시간으로 설정한 값에 관계없이 Cloud NAT는 NAT 소스 IP 주소와 소스 포트 튜플이 새 연결을 처리할 수 있도록 사용되는 데 추가적으로 최대 30초가 소요될 수 있습니다.

TCP TIME_WAIT 제한 시간

RFC 5382 REQ-5

120초

참고: 이 제한 시간으로 설정한 값에 관계없이 Cloud NAT는 NAT 소스 IP 주소와 소스 포트 튜플이 새 연결을 처리할 수 있도록 사용되는 데 추가 시간(일반적으로 30초 미만)이 필요할 수 있습니다.

ICMP 매핑 유휴 제한 시간

RFC 5508 REQ-2

30초
새 TCP 연결에 5-튜플을 다시 사용하기 전의 지연 시간(대상 주소, 대상 포트, 프로토콜과 결합된 NAT 소스 IP 주소 및 소스 포트 튜플) 120초(2분)

N

자세한 내용은 TCP 소스 포트 재사용 지연을 참조하세요.

제품 상호작용

다음 섹션에서는 Cloud NAT와 다른 Google Cloud 제품 간의 중요한 상호작용을 설명합니다.

경로 상호작용

Cloud NAT 게이트웨이는 다음 홉이 기본 인터넷 게이트웨이인 경로만 사용할 수 있습니다. 각 VPC 네트워크는 대상이 0.0.0.0/0이고 다음 홉이 기본 인터넷 게이트웨이인 기본 경로로 시작됩니다. 중요한 배경 정보는 경로 개요를 참조하세요.

다음 예시는 Cloud NAT 게이트웨이가 작동하지 않게 될 수 있는 상황을 보여줍니다.

  • 다음 홉이 다른 유형의 커스텀 정적 경로 다음 홉으로 설정된 커스텀 정적 경로를 만들면 해당 경로의 대상과 일치하는 대상 IP 주소가 포함된 패킷이 기본 인터넷 게이트웨이 대신 다음 홉으로 전송됩니다. 예를 들어 NAT, 방화벽, 프록시 소프트웨어를 실행하는 VM 인스턴스가 있을 때는 이러한 VM에 대한 트래픽을 다음 홉으로 전달하기 위해 커스텀 정적 경로를 만들 필요가 있습니다. 다음 홉 VM에는 외부 IP 주소가 필요합니다. 따라서 다음 홉에 의존하는 VM의 트래픽이나 다음 홉 VM 자체 모두 Cloud NAT를 사용할 수 없습니다.

  • 다음 홉이 Cloud VPN 터널인 커스텀 정적 경로를 만들 경우 Cloud NAT가 이 경로를 사용할 수 없습니다. 예를 들어 대상이 0.0.0.0/0이고 다음 홉 Cloud VPN 터널이 있는 커스텀 정적 경로는 기본 인터넷 게이트웨이가 아닌 해당 터널로 트래픽을 전달합니다. 따라서 Cloud NAT 게이트웨이가 이 경로를 사용할 수 없습니다. 0.0.0.0/1128.0.0.0/1을 포함하여 보다 특정적인 대상의 경우에도 마찬가지입니다.

  • 온프레미스 라우터가 Cloud VPN 터널 또는 Cloud Interconnect 연결(VLAN)을 관리하는 Cloud Router에 커스텀 동적 경로를 공지하는 경우 Cloud NAT 게이트웨이가 이 경로를 사용할 수 없습니다. 예를 들어 온프레미스 라우터가 대상 0.0.0.0/0을 포함하는 커스텀 동적 경로를 공지하면 0.0.0.0/0이 Cloud VPN 터널 또는 Cloud Interconnect 연결(VLAN)로 전달됩니다. 0.0.0.0/1128.0.0.0/1을 포함하여 보다 특정적인 대상의 경우에도 마찬가지입니다.

비공개 Google 액세스 상호작용

Cloud NAT는 선택된 Google API 및 서비스에 대한 외부 IP 주소로 전송되는 트래픽에 대해 NAT를 수행하지 않습니다. 대신 Google Cloud는 사용자가 기본 또는 보조로 서브넷 범위에 적용하기 위해 Cloud NAT 게이트웨이를 구성할 때 서브넷 IP 주소 범위에 대해 비공개 Google Access를 자동으로 사용 설정합니다. 게이트웨이가 서브넷 범위로 NAT를 제공하는 한 해당 범위에 비공개 Google 액세스가 사용되며, 이를 수동으로 사용 중지할 수 없습니다.

Cloud NAT 게이트웨이는 비공개 Google 액세스가 작동하는 방법을 변경하지 않습니다. 자세한 내용은 비공개 Google 액세스를 참조하세요.

공유 VPC 상호작용

공유 VPC는 단일 조직의 여러 서비스 프로젝트가 호스트 프로젝트에 있는 하나의 공통된 공유 VPC 네트워크를 사용할 수 있게 합니다. 공유 VPC 네트워크를 사용하는 서비스 프로젝트에서 VM에 대해 NAT를 제공하기 위해서는 호스트 프로젝트에 Cloud NAT 게이트웨이를 만들어야 합니다.

VPC 네트워크 피어링 상호작용

Cloud NAT 게이트웨이는 단일 리전 및 단일 VPC 네트워크에 있는 서브넷 IP 주소 범위와 연결됩니다. 하나의 VPC 네트워크에서 생성된 Cloud NAT 게이트웨이는 피어링된 네트워크의 VM이 게이트웨이와 동일한 리전에 있더라도 VPC 네트워크 피어링을 사용하여 연결된 다른 VPC 네트워크의 VM에 NAT를 제공할 수 없습니다.

GKE 상호작용

Cloud NAT 게이트웨이는 VPC 기반 클러스터 유형인 비공개 클러스터에서 노드 및 pod에 대해 NAT를 수행할 수 있습니다. Cloud NAT 게이트웨이는 클러스터가 사용하는 서브넷에 대해 최소한 다음 서브넷 IP 주소 범위에 적용되도록 구성되어야 합니다.

  • 서브넷 기본 IP 주소 범위(노드에 사용됨)
  • 클러스터의 pod에 사용되는 서브넷 보조 IP 주소 범위
  • 클러스터의 서비스에 사용되는 서브넷 보조 IP 주소 범위

전체 비공개 클러스터에 대해 NAT를 제공하는 가장 쉬운 방법은 클러스터 서브넷의 모든 IP 주소 범위에 적용되도록 Cloud NAT 게이트웨이를 구성하는 것입니다.

VPC 기반 클러스터가 서브넷 IP 주소 범위를 사용하는 방법에 대한 배경 정보는 VPC 기반 클러스터의 IP 범위를 참조하세요.

Cloud NAT 게이트웨이가 비공개 클러스터로 NAT를 제공하도록 구성된 경우 각 노드 VM에 대해 NAT 소스 IP 주소와 소스 포트를 예약합니다. pod IP 주소는 각 노드 VM에 할당된 별칭 IP 범위로 구현되기 때문에 이러한 NAT 소스 IP 주소와 소스 포트는 pod에서 사용될 수 있습니다. GKE VPC 기반 클러스터는 항상 각 노드에 둘 이상의 IP 주소가 포함된 별칭 IP 범위(/32보다 작은 넷마스크)를 할당합니다. 따라서 Cloud NAT 포트 예약 절차는 노드당 최소 1,024개의 NAT 소스 IP 주소 및 소스 포트를 예약합니다. pod IP 주소 범위 및 VPC 기반 클러스터에 대한 자세한 내용은 pod의 서브넷 보조 IP 주소 범위를 참조하세요.

Cloud NAT와 별개로, 사용자가 클러스터의 IP 매스커레이드 구성을 변경하지 않은 한, pod가 패킷을 인터넷으로 전송할 때 GKE가 각 노드에서 실행되는 소프트웨어를 사용하여 SNAT를 수행합니다. pod의 이그레스 트래픽에 대해 세밀한 제어가 필요하면 네트워크 정책을 사용할 수 있습니다.

특정 상황에서 Cloud NAT는 VPC 기반 및 경로 기반 클러스터를 포함하여 비공개가 아닌 클러스터에도 유용할 수 있습니다. 비공개가 아닌 클러스터의 노드에 외부 IP 주소가 있기 때문에 노드의 기본 내부 IP 주소에서 전송되는 패킷은 Cloud NAT에서 처리되지 않습니다. 그러나 비공개가 아닌 클러스터의 pod에서 전송된 패킷은 다음 두 사항이 모두 참인 경우 Cloud NAT 게이트웨이에서 처리할 수 있습니다.

  • VPC 기반 클러스터의 경우 클러스터 pod의 보조 IP 주소 범위에 적용되도록 Cloud NAT 게이트웨이가 구성됩니다.

  • 클러스터의 IP 매스커레이드 구성은 pod에서 인터넷으로 전송되는 패킷에 대해 클러스터 내에서 SNAT를 수행하도록 구성되지 않습니다.

Cloud Load Balancing 상호작용

Google Cloud 외부 부하 분산기 및 상태 확인 시스템은 특수 경로를 사용하여 VM과 통신합니다. 백엔드 VM은 외부 IP 주소가 필요하지 않으며, Cloud NAT 게이트웨이도 부하 분산기 및 상태 확인을 위해 통신을 관리하지 않습니다. 자세한 내용은 Cloud Load Balancing 개요상태 확인 개요를 참조하세요.

Cloud NAT 규칙

NAT 규칙 기능을 사용하면 Cloud NAT를 사용하여 인터넷에 연결하는 방법을 정의하는 액세스 규칙을 만들 수 있습니다. NAT 규칙은 대상 주소를 기반으로 하는 소스 NAT를 지원합니다.

NAT 규칙 없이 NAT 게이트웨이를 구성하는 경우 해당 NAT 게이트웨이를 사용하는 VM은 동일한 NAT IP 주소 집합을 사용하여 모든 인터넷 주소에 연결됩니다. Cloud NAT를 통과하는 패킷을 더 세밀하게 제어해야 하는 경우 NAT 규칙을 추가할 수 있습니다. NAT 규칙은 일치 조건 및 해당 작업을 정의합니다. NAT 규칙을 지정하면 각 패킷이 각 NAT 규칙과 일치합니다. 패킷이 규칙에 설정된 조건과 일치하면 일치에 해당하는 작업이 수행됩니다.

NAT 규칙 사양

NAT 규칙을 사용하기 전에 다음 사양에 유의하세요.

  • 규칙 번호는 NAT 규칙을 고유하게 식별합니다. 두 개의 규칙이 동일한 규칙 번호를 가질 수 없습니다.
  • 기본 NAT 규칙
    • 각 NAT 구성에는 기본 규칙이 있습니다.
    • 동일한 NAT 구성에서 일치하는 다른 NAT 규칙이 없는 경우 기본 규칙이 적용됩니다.
    • 기본 규칙의 규칙 번호는 65001입니다.
  • Cloud NAT 규칙은 NAT IP 할당 옵션의 값이 MANUAL_ONLY인 경우에만 지원됩니다.
  • 일치 조건의 대상 IP CIDR은 NAT 규칙에서 겹치지 않아야 합니다. 임의의 지정된 패킷과 일치할 수 있는 규칙은 최대 하나일 수 있습니다.
  • NAT 규칙에서 NAT IP 주소가 겹치지 않아야 합니다.
  • 규칙에는 비어 있지 않은 sourceNatActive 또는 비어 있지 않은 sourceNatDrain IP 주소가 있어야 합니다. 규칙에 빈 sourceNatActive IP 주소가 있는 경우 NAT 규칙과 일치하는 새 연결이 삭제됩니다.
  • 엔드포인트 독립 매핑이 사용 설정된 NAT 게이트웨이에는 NAT 규칙을 추가할 수 없습니다. NAT 규칙이 포함된 NAT 게이트웨이에서는 엔드포인트 독립 매핑을 사용 설정할 수 없습니다.

또한 모든 VM은 각 Cloud NAT 규칙의 VM당 최소 포트 값에서 할당된 포트를 가져옵니다. NAT 규칙에서 VM에 할당된 포트가 소진되면 NAT 규칙과 일치하는 새 연결이 끊어집니다.

예를 들어 VM당 4,096개의 포트를 구성하고 16개의 VM과 2개의 NAT 규칙(1개의 IP 주소가 있는 rule1 및 2개의 IP 주소가 있는 rule2)이 있는 경우 2개의 IP 주소가 있는 기본 규칙(default)과 함께 16개의 VM 모두에 NAT 규칙의 각 번들에 있는 4,096개의 포트가 할당됩니다. 이 예시에서 모든 VM에 대해 default 또는 rule2에는 문제가 없지만 rule1은 일부 VM에 포트를 할당할 수 없습니다. 따라서 rule1을 통과해야 하는 VM의 트래픽은 중단되고 이 트래픽은 기본 규칙을 사용하지 않으므로 리소스 부족 징후가 표시될 수 있습니다.

NAT 규칙 구성에 대한 자세한 내용은 NAT 규칙 예시를 참조하세요.

규칙 표현식 언어

NAT 규칙은 Common Expression Language 구문을 사용하여 기록됩니다.

표현식에는 두 가지 구성요소가 필요합니다.

  • 규칙 표현식에서 검사할 수 있는 속성
  • 표현식의 일부로 속성에 수행할 수 있는 작업

예를 들어 다음 표현식은 inIpRange() 작업의 destination.ip 속성과 9.9.9.0/24 속성을 사용합니다. 이 경우 destination.ip198.51.100.0/24 IP 주소 범위가 있으면 표현식은 true를 반환합니다.

inIpRange(destination.ip, '198.51.100.0/24')

NAT 규칙은 다음 속성 및 작업만 지원합니다.

속성

속성은 대상 IP 주소와 같은 발신 패킷의 정보를 나타냅니다.

속성 이름 설명
destination.ip 패킷의 대상 IP 주소

운영

다음 참조는 규칙 표현식을 정의하도록 속성과 함께 사용할 수 있는 연산자를 설명합니다.

작업 설명
inIpRange(string, string) -> bool inIpRange(X, Y)는 IP CIDR 범위 Y에 IP 주소 X가 포함된 경우 true를 반환합니다.
|| 논리 연산자입니다. x || y는 x 또는 y가 true이면 true를 반환합니다.
== 같음 연산자입니다. x == y는 x가 y와 같으면 true를 반환합니다.

표현식 예시

대상 IP 주소 198.51.100.20과 트래픽을 일치시킵니다.

"destination.ip == '198.51.100.20'"

대상 IP 주소 198.51.100.10/30 또는 198.51.100.20과 트래픽을 일치시킵니다.

"inIpRange(destination.ip, '198.51.100.10/30') || destination.ip == '198.51.100.20'."

예시

다음 예시는 Cloud NAT 개념을 보여줍니다.

기본 NAT 구성

Cloud NAT(확대하려면 클릭)
Cloud NAT(확대하려면 클릭)

예를 들면 다음과 같습니다.

  • nat-gw-us-east 게이트웨이가 us-east1 리전에서 subnet-1의 기본 IP 주소 범위에 적용되도록 구성되었습니다. 네트워크 인터페이스에 외부 IP 주소가 없는 VM은 기본 내부 IP 주소 또는 subnet-1,10.240.0.0/16의 기본 IP 주소 범위에서 별칭 IP 범위를 사용하여 트래픽을 인터넷에 전송할 수 있습니다.

  • 네트워크 인터페이스에 외부 IP 주소가 없고 기본 내부 IP 주소가 subnet-2에 있는 VM은 해당 서브넷의 IP 주소 범위에 적용되는 Cloud NAT 게이트웨이가 없기 때문에 인터넷에 액세스할 수 없습니다.

  • nat-gw-eu 게이트웨이가 europe-west1 리전에서 subnet-3의 기본 IP 주소 범위에 적용되도록 구성되었습니다. 네트워크 인터페이스에 외부 IP 주소가 없는 VM은 기본 내부 IP 주소 또는 subnet-3,192.168.1.0/24의 기본 IP 주소 범위에서 별칭 IP 범위를 사용하여 트래픽을 인터넷에 전송할 수 있습니다.

GKE 예시

GKE를 사용한 Cloud NAT(확대하려면 클릭)
GKE를 사용한 Cloud NAT(확대하려면 클릭)

이 예시에서는 컨테이너를 NAT로 변환합니다. 모든 컨테이너 및 GKE 노드에 NAT를 사용하도록 설정하려면 서브넷 1의 모든 IP 주소 범위를 NAT 후보로 선택해야 합니다. container1 또는 container2에만 NAT를 사용 설정할 수는 없습니다.

Cloud NAT 규칙 구성 예시

다음 예시에서는 대상이 일부 IP 주소의 액세스만 허용하는 경우 NAT 규칙을 사용하는 방법을 보여줍니다. 비공개 서브넷의 Google Cloud VM에서 이러한 대상으로 전송되는 트래픽이 허용된 IP 주소로만 소스 NAT 변환되었는지 확인하려 합니다. 다른 대상에는 이러한 IP 주소를 사용하고 싶지 않습니다. VPC 네트워크 test의 서브넷 10.10.10.0/24에 있는 VM에 대한 다음 요구사항을 고려합니다.

  • VM은 NAT IP 주소 203.0.113.20을 사용하여 트래픽을 198.51.100.20/30 대상으로 보내야 합니다.
  • VM은 NAT IP 주소 203.0.113.30을 사용하여 트래픽을 대상 198.51.100.30 또는 198.51.100.31으로 보내야 합니다.
  • VM에서 다른 인터넷 대상으로 트래픽을 전송하려면 NAT IP 주소 203.0.113.40을 사용해야 합니다.

VPC 네트워크 test의 다른 모든 서브넷의 경우 VM은 NAT IP 주소 203.0.113.10을 사용하여 임의의 대상으로 트래픽을 보내야 합니다.

2개의 Cloud NAT 게이트웨이가 있는 Cloud NAT 구성(확대하려면 클릭)
2개의 Cloud NAT 게이트웨이가 있는 Cloud NAT 구성(확대하려면 클릭)

이 예시에서는 NAT 규칙을 사용할 수 있지만 서브넷 10.10.10.0/24에는 다른 서브넷과 다른 NAT 규칙이 있으므로 두 개의 NAT 게이트웨이가 필요합니다. 이 구성을 만들려면 다음 단계를 수행하세요.

  1. NAT IP 주소 203.0.113.40을 사용하여 서브넷 S1에 대한 NAT 게이트웨이(NAT GW 1)를 만들고 다음 규칙을 추가합니다.
    1. NAT GW 1의 NAT 규칙 1: 대상이 198.51.100.20/30인 경우 203.0.113.20과 함께 소스 NAT를 사용합니다.
    2. NAT GW 1의 NAT 규칙 2: 대상이 198.51.100.30 또는 198.51.100.31인 경우 203.0.113.30과 함께 소스 NAT를 사용합니다.
  2. 다른 모든 서브넷에 대해 NAT 게이트웨이 2(NAT GW 2)를 만들고(S1을 제외한 모든 서브넷 나열) NAT IP 주소를 203.0.113.10으로 할당합니다. 이 단계에서는 NAT 규칙이 필요하지 않습니다.

다음 단계