Cloud NAT 사용

소개

이 페이지에서는 Cloud NAT를 구성하는 방법을 설명합니다. Cloud NAT를 구성하기 전에 Cloud NAT 개요를 읽어보세요.

기본 요건

IAM 권한

  • roles/compute.networkAdmin 역할은 Cloud Router에 NAT 게이트웨이를 만들고, NAT IP를 예약/할당하고, NAT 게이트웨이에서 트래픽이 NAT 변환을 사용해야 하는 서브넷을 지정할 수 있습니다.

Google Cloud 설정

시작하기 전에 Google Cloud에서 다음 항목을 설정합니다.

  1. Google 계정으로 로그인합니다.

    아직 계정이 없으면 새 계정을 등록하세요.

  2. Cloud Console의 프로젝트 선택기 페이지에서 Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기 페이지로 이동

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다. 프로젝트에 결제가 사용 설정되어 있는지 확인하는 방법을 알아보세요.

  4. Cloud SDK 설치 및 초기화
  gcloud config set project PROJECT_ID

이미 설정된 프로젝트 ID를 확인할 수도 있습니다.

  gcloud config list --format='text(core.project)'

설정 예시

이 예시에서는 Google Cloud로 Cloud NAT를 테스트하는 방법을 살펴봅니다.

Compute Engine 설정 예시

Compute Engine 설정 예시를 참조하세요.

GKE 설정 예시

GKE 설정 예시를 참조하세요.

사용 시나리오 및 샘플 명령어

NAT 만들기

간단한 구성

이 구성은 리전에 NAT 서비스를 제공하기 위해 필요한 외부 IP 주소를 자동으로 할당합니다. 리전의 모든 서브넷에 외부 IP 주소가 없는 VM 인스턴스는 NAT를 통해 인터넷에 액세스 할 수 있습니다. 또한 모든 로그 유형에 대해 로깅 사용을 설정합니다.

자동 할당을 사용하면 Google Cloud에서 프로젝트의 IP 주소를 자동으로 예약합니다. 이 주소는 프로젝트의 고정 IP 주소 할당량에 반영됩니다.

Console

  1. Google Cloud Console에서 Cloud NAT 페이지로 이동합니다.
    Cloud NAT 페이지로 이동
  2. 시작하기 또는 NAT 게이트웨이 만들기를 클릭합니다.
  3. 게이트웨이 이름을 입력합니다.
  4. VPC 네트워크를 선택합니다.
  5. NAT 게이트웨이의 리전을 설정합니다.
  6. 리전에서 Cloud Router를 선택하거나 만듭니다.
  7. 로깅, 최소 포트 수, 제한 시간을 클릭하여 해당 섹션을 엽니다.
  8. Stackdriver Logging에서 다음을 선택합니다.
    • Logging for translation info and errors — 모든 로그를 Google Cloud 작업 제품군에 전송합니다.
  9. 만들기를 클릭합니다.

gcloud

gcloud compute routers nats create nat-config \
    --router=nat-router \
    --auto-allocate-nat-external-ips \
    --nat-all-subnet-ip-ranges \
    --enable-logging

NAT의 IP 주소 지정

각 IP 주소는 예약된 고정 IP 주소 리소스의 이름입니다.

Console

  1. Google Cloud Console에서 Cloud NAT 페이지로 이동합니다.
    Cloud NAT 페이지로 이동
  2. 시작하기 또는 NAT 게이트웨이 만들기를 클릭합니다.
  3. 게이트웨이 이름을 입력합니다.
  4. VPC 네트워크를 선택합니다.
  5. NAT 게이트웨이의 리전을 설정합니다.
  6. 리전에서 Cloud Router를 선택하거나 만듭니다.
  7. NAT IP 주소Manual로 설정합니다.
  8. NAT에 사용할 고정 예약 외부 IP 주소를 선택하거나 만듭니다.
  9. 추가 IP 주소를 지정하려면 IP 주소 추가를 클릭한 후 추가 고정 예약 외부 IP 주소를 선택하거나 만듭니다.
  10. 만들기를 클릭합니다.

gcloud

gcloud compute routers nats create nat-config \
    --router=nat-router \
    --nat-external-ip-pool=ip-address1,ip-address2

NAT의 서브넷 범위 지정

기본적으로 NAT는 지정된 VPC 네트워크에 대한 리전에서 모든 서브넷의 전체 기본 및 보조 IP 범위에서 작동합니다. NAT를 사용할 수 있는 서브넷 기본 및 보조 범위를 제한할 수 있습니다.

Console

  1. Google Cloud Console에서 Cloud NAT 페이지로 이동합니다.
    Cloud NAT 페이지로 이동
  2. 시작하기 또는 NAT 게이트웨이 만들기를 클릭합니다.
  3. 게이트웨이 이름을 입력합니다.
  4. VPC 네트워크를 선택합니다.
  5. NAT 게이트웨이의 리전을 설정합니다.
  6. 리전에서 Cloud Router를 선택하거나 만듭니다.
  7. NAT 매핑에서 소스Custom으로 설정합니다.
  8. 서브넷을 선택합니다.
  9. IP 범위 드롭다운 목록에서 포함할 서브넷 IP 범위를 선택합니다.
  10. 확인을 클릭합니다.
  11. 추가 범위를 지정하려면 서브넷 및 IP 범위 추가를 클릭합니다.
  12. 만들기를 클릭합니다.

gcloud

gcloud compute routers nats create nat-config \
    --router=nat-router \
    --auto-allocate-nat-external-ips \
    --nat-custom-subnet-ip-ranges=SUBNET_1,SUBNET_3

NAT에 대한 VM당 최소 기본 포트 수를 다르게 지정

자세한 내용은 NAT 포트 및 연결 수를 참조하세요.

Console

  1. Google Cloud Console에서 Cloud NAT 페이지로 이동합니다.
    Cloud NAT 페이지로 이동
  2. 시작하기 또는 NAT 게이트웨이 만들기를 클릭합니다.
  3. 게이트웨이 이름을 입력합니다.
  4. VPC 네트워크를 선택합니다.
  5. NAT 게이트웨이의 리전을 설정합니다.
  6. 리전에서 Cloud Router를 선택하거나 만듭니다.
  7. 로깅, 최소 포트 수, 제한 시간을 클릭합니다.
  8. VM 인스턴스당 최소 포트 수를 다른 값으로 설정합니다.
  9. 만들기를 클릭합니다.

gcloud

gcloud compute routers nats create nat-config \
    --router=nat-router \
    --auto-allocate-nat-external-ips \
    --min-ports-per-vm=128

NAT에 다른 제한 시간 지정

Console

  1. Google Cloud Console에서 Cloud NAT 페이지로 이동합니다.
    Cloud NAT 페이지로 이동
  2. 시작하기 또는 NAT 게이트웨이 만들기를 클릭합니다.
  3. 게이트웨이 이름을 입력합니다.
  4. VPC 네트워크를 선택합니다.
  5. NAT 게이트웨이의 리전을 설정합니다.
  6. 리전에서 Cloud Router를 선택하거나 만듭니다.
  7. 로깅, 최소 포트 수, 제한 시간을 클릭합니다.
  8. 원하는 대로 제한 시간을 수정합니다.
  9. 만들기를 클릭합니다.

gcloud

gcloud compute routers nats create nat-config \
    --router=nat-router \
    --auto-allocate-nat-external-ips \
    --nat-custom-subnet-ip-ranges=SUBNET_1,SUBNET_3 \
    --udp-mapping-idle-timeout=60s \
    --icmp-mapping-idle-timeout=60s \
    --tcp-established-connection-idle-timeout=60s \
    --tcp-transitory-connection-idle-timeout=60s

NAT 업데이트

NAT와 연결된 서브네트워크 및 IP 주소 리소스 변경

Console

  1. Google Cloud Console에서 Cloud NAT 페이지로 이동합니다.
    Cloud NAT 페이지로 이동
  2. NAT 게이트웨이를 클릭합니다.
  3. 수정을 클릭합니다.
  4. NAT 매핑에서 소스Custom으로 설정합니다.
  5. 서브넷을 선택합니다.
  6. IP 범위 드롭다운 목록에서 포함할 서브넷 IP 범위를 선택합니다.
  7. 추가 범위를 지정하려면 서브넷 및 IP 범위 추가를 클릭합니다.
  8. NAT IP 주소 드롭다운 목록을 클릭하고 Automatic 또는 Manual을 선택합니다.
  9. Manual을 선택했다면 외부 IP 주소를 지정합니다.
  10. 수동 IP 주소로 고가용성을 유지하려면 IP 주소 추가를 클릭하고 두 번째 주소를 추가합니다.
  11. 저장을 클릭합니다.

gcloud

gcloud compute routers nats update nat-config \
    --router=nat-router \
    --nat-external-ip-pool=ip-address2,ip-address3 \
    --nat-custom-subnet-ip-ranges=SUBNET_3,SUBNET_3,SUBNET_3:range1

NAT와 연결된 외부 IP 주소 변경

특정 게이트웨이의 외부 IP 주소 목록을 변경할 수 있습니다. 이렇게 하면 GCP가 이전 주소를 삭제하고 새 주소를 추가합니다. 이전 IP 주소의 기존 연결은 즉시 종료됩니다. 기존 IP 주소에서 새 연결을 차단하면서 기존 연결을 계속 허용하려면 NAT와 연결된 외부 IP 주소 드레이닝을 참조하세요.

Console

  1. Google Cloud Console에서 Cloud NAT 페이지로 이동합니다.
    Cloud NAT 페이지로 이동
  2. NAT 게이트웨이를 클릭합니다.
  3. 수정을 클릭합니다.
  4. NAT IP 주소 드롭다운 목록을 클릭하고 Automatic 또는 Manual을 선택합니다.
  5. Manual을 선택했다면 외부 IP 주소를 지정합니다.
  6. 고가용성을 위해 IP 주소 추가를 클릭하고 두 번째 주소를 추가합니다.
  7. 저장을 클릭합니다.

gcloud

gcloud compute routers nats update nat-config \
    --router=nat-router \
    --nat-external-ip-pool=ip-address2,ip-address3

NAT와 연결된 외부 IP 주소 드레이닝

수동으로 구성된 IP 주소를 삭제하기 전에 기존 연결이 중단되지 않도록 드레이닝 할 수 있습니다. IP 주소를 드레이닝하면 모든 기존 연결은 자연적으로 만료될 때까지 계속 허용됩니다. 기존 로그를 보고 기존 상태를 확인할 수 있습니다

드레이닝한 IP 주소에는 새 연결이 허용되지 않습니다. 그러나 IP 주소는 NAT 구성과 연결된 상태로 유지됩니다.

NAT 구성에는 활성 주소가 하나 이상 있어야 합니다. 즉, 구성의 모든 IP 주소를 드레이닝할 수 없습니다.

NAT 상태 표시를 사용하여 NAT IP 주소의 상태를 확인할 수 있습니다.

Console

  1. Google Cloud Console에서 Cloud NAT 페이지로 이동합니다.
    Cloud NAT 페이지로 이동
  2. NAT 게이트웨이를 클릭합니다.
  3. 수정을 클릭합니다.
  4. NAT IP 주소아래에 On에 대한 IP 주소에 IP 드레이닝 값을 설정합니다.
  5. 저장을 클릭합니다.

gcloud

주소를 드레이닝하려면 동일한 명령어에서 주소를 활성 풀에서 드레이닝한 풀로 이동해야 합니다. 단일 명령어의 드레이닝 풀에 추가하지 않고 활성 풀에서 삭제하면 IP 주소가 서비스에서 삭제되고 기존 연결이 즉시 종료됩니다.

IP 주소를 드레이닝 풀에서 활성 풀로 이동하면 IP 주소 드레이닝이 취소됩니다. NAT IP 주소를 두 풀에서 모두 제거하면 NAT 구성에서 연결 해제됩니다.

이 명령어는 NAT 구성의 다른 필드를 변경하지 않습니다.

gcloud compute routers nats update nat-config \
    --router=nat-router \
    --nat-external-ip-pool=ip-address3 \
    --nat-external-drain-ip-pool=ip-address2

각 항목의 의미는 다음과 같습니다.

  • --nat-external-ip-pool=ip-address3ip-address2를 생략하도록 활성 풀을 업데이트합니다.
  • --nat-external-drain-ip-pool=ip-address2는 드레이닝 풀에 ip-address2를 추가합니다.

NAT와 연결된 VM당 할당되는 최소 기본 포트 수 변경

자세한 내용은 NAT 포트 및 연결 수를 참조하세요.

Console

  1. Google Cloud Console에서 Cloud NAT 페이지로 이동합니다.
    Cloud NAT 페이지로 이동
  2. NAT 게이트웨이를 클릭합니다.
  3. 수정을 클릭합니다.
  4. 로깅, 최소 포트 수, 제한 시간을 클릭합니다.
  5. VM 인스턴스당 최소 포트 수 필드를 수정합니다.
  6. 저장을 클릭합니다.

gcloud

이 명령어는 NAT 구성의 다른 필드를 변경하지 않습니다.

gcloud compute routers nats update nat-config \
    --router=nat-router \
    --min-ports-per-vm=128

NAT와 연결된 연결 제한 시간 변경

Console

  1. Google Cloud Console에서 Cloud NAT 페이지로 이동합니다.
    Cloud NAT 페이지로 이동
  2. NAT 게이트웨이를 클릭합니다.
  3. 수정을 클릭합니다.
  4. 로깅, 최소 포트 수, 제한 시간을 클릭합니다.
  5. 변경하려는 모든 제한 시간 값을 수정합니다.
  6. 저장을 클릭합니다.

gcloud

이 명령어는 NAT 구성의 다른 필드를 변경하지 않습니다.

gcloud compute routers nats update nat-config \
    --router=nat-router \
    --udp-mapping-idle-timeout=60s \
    --icmp-mapping-idle-timeout=60s \
    --tcp-established-connection-idle-timeout=60s \
    --tcp-transitory-connection-idle-timeout=60s

연결 제한 시간 관련 NAT를 기본값으로 재설정

Console

  1. Google Cloud Console에서 Cloud NAT 페이지로 이동합니다.
    Cloud NAT 페이지로 이동
  2. NAT 게이트웨이를 클릭합니다.
  3. 수정을 클릭합니다.
  4. 로깅, 최소 포트 수, 제한 시간을 클릭합니다.
  5. 재설정하려는 사용자 구성 값을 모두 삭제합니다.
  6. 저장을 클릭합니다.

삭제한 값은 기본값으로 재설정됩니다.

gcloud

이 명령어는 NAT 구성의 다른 필드를 변경하지 않습니다.

gcloud compute routers nats update nat-config \
    --router=nat-router \
    --clear-udp-mapping-idle-timeout \
    --clear-icmp-mapping-idle-timeout \
    --clear-tcp-established-connection-idle-timeout \
    --clear-tcp-transitory-connection-idle-timeout

로깅 추가, 수정, 삭제

기존 게이트웨이의 로깅을 사용 설정, 수정, 삭제하려면 로깅 구성을 참조하세요

NAT 삭제

이렇게 하면 Cloud Router에서 NAT 구성을 삭제합니다. 라우터 자체는 삭제하지 않습니다.

Console

  1. Google Cloud Console에서 Cloud NAT 페이지로 이동합니다.
    Cloud NAT 페이지로 이동
  2. 삭제하려는 게이트웨이 구성 옆의 체크박스를 선택합니다.
  3. 삭제를 클릭합니다.

gcloud

gcloud compute routers nats delete nat-config --router=nat-router

여기에서는

  • nat-config 를 NAT 구성의 이름으로 대체합니다
  • nat-router를 Cloud Router 이름으로 대체합니다

NAT 정보 표시

NAT 구성 표시

Console

  1. Google Cloud Console에서 Cloud NAT 페이지로 이동합니다.
    Cloud NAT 페이지로 이동
  2. NAT 게이트웨이를 클릭합니다.

gcloud

gcloud compute routers nats describe nat-config --router=nat-router

NAT IP:포트-범위 표시

Console

  1. Google Cloud Console에서 Cloud NAT 페이지로 이동합니다.
    Cloud NAT 페이지로 이동
  2. NAT 게이트웨이를 클릭합니다.

gcloud

gcloud compute routers get-nat-mapping-info

NAT 상태 표시

Console

  1. Google Cloud Console에서 Cloud NAT 페이지로 이동합니다.
    Cloud NAT 페이지로 이동
  2. NAT 게이트웨이의 상태 열을 확인합니다.
  3. 게이트웨이의 이름을 클릭하여 구성 세부정보를 확인합니다.

gcloud

기존 routers get-status 명령어는 NAT 상태를 표시합니다.

gcloud compute routers get-status

할당량 및 한도

할당량 페이지를 참조하세요.

다음 단계

  • NAT 구성에 대한 도움말은 문제해결을 참조하세요.