Cloud NAT 사용

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

않습니다.

기본 요건

Cloud NAT를 설정하기 전에 다음을 수행해야 합니다.

IAM 권한 가져오기

roles/compute.networkAdmin 역할은 Cloud Router에서 NAT 게이트웨이를 만들고, NAT IP 주소를 예약 및 할당하고, 트래픽이 NAT 게이트웨이의 네트워크 주소 변환을 사용해야 하는 서브네트워크(서브넷)를 지정할 수 있는 권한을 부여합니다.

Google Cloud 설정

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

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

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

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

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

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

  4. Cloud SDK 설치 및 초기화

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

NAT 만들기

단순 구성 설정

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

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

게이트웨이의 엔드포인트 독립 매핑을 사용 설정 또는 사용 중지할 수 있습니다. 이 기능은 기본적으로 사용 설정되어 있습니다. gcloud 명령어에서 사용 중지하려면 --no-enable-endpoint-independent-mapping을 지정합니다.

Console

  1. Google Cloud Console에서 Cloud NAT 페이지로 이동합니다.

    Cloud NAT 페이지로 이동

  2. 시작하기 또는 NAT 게이트웨이 만들기를 클릭합니다.

  3. 게이트웨이 이름을 입력합니다.

  4. VPC 네트워크를 선택합니다.

  5. NAT 게이트웨이의 리전을 설정합니다.

  6. 리전에서 Cloud Router를 선택하거나 만듭니다.

  7. 로깅, 최소 포트 수, 제한시간을 클릭하여 해당 섹션을 엽니다.

  8. Stackdriver Logging에서 변환 및 오류를 선택합니다. 그러면 모든 로그가 Cloud Logging으로 전송됩니다.

  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_CONFIG: NAT 구성 이름
  • NAT_ROUTER: Cloud Router의 이름

NAT의 IP 주소 지정

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

Console

  1. Cloud Console에서 Cloud NAT 페이지로 이동합니다.

    Cloud NAT 페이지로 이동

  2. 시작하기 또는 NAT 게이트웨이 만들기를 클릭합니다.

  3. 게이트웨이 이름을 입력합니다.

  4. VPC 네트워크를 선택합니다.

  5. NAT 게이트웨이의 리전을 설정합니다.

  6. 리전에서 Cloud Router를 선택하거나 만듭니다.

  7. NAT IP 주소수동으로 설정합니다.

  8. NAT에 사용할 고정 예약 외부 IP 주소를 선택하거나 만듭니다.

  9. 추가 IP 주소를 지정하려면 IP 주소 추가를 클릭한 후 추가 고정 예약 외부 IP 주소를 선택하거나 만듭니다.

  10. 만들기를 클릭합니다.

gcloud

gcloud compute routers nats create NAT_CONFIG \
    --router=NAT_ROUTER \
    --nat-all-subnet-ip-ranges \
    --nat-external-ip-pool=IP_ADDRESS1,IP_ADDRESS2

다음을 바꿉니다.

  • NAT_CONFIG: NAT 구성 이름
  • NAT_ROUTER: Cloud Router의 이름
  • IP_ADDRESS1: NAT에 사용할 고정 예약 외부 IP 주소
  • IP_ADDRESS2: NAT에 사용할 또 다른 고정 예약 외부 IP 주소

NAT의 서브넷 범위 지정

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

Console

  1. Cloud Console에서 Cloud NAT 페이지로 이동합니다.

    Cloud NAT 페이지로 이동

  2. 시작하기 또는 NAT 게이트웨이 만들기를 클릭합니다.

  3. 게이트웨이 이름을 입력합니다.

  4. VPC 네트워크를 선택합니다.

  5. NAT 게이트웨이의 리전을 설정합니다.

  6. 리전에서 Cloud Router를 선택하거나 만듭니다.

  7. NAT 매핑에서 소스커스텀으로 설정합니다.

  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=SUBNETS

다음을 바꿉니다.

  • NAT_CONFIG: NAT 구성 이름
  • NAT_ROUTER: Cloud Router의 이름
  • SUBNETS: 쉼표로 구분된 서브넷 목록

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

Console

  1. 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_CONFIG: NAT 구성 이름
  • NAT_ROUTER: Cloud Router의 이름

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

NAT에 다른 제한 시간 지정

Console

  1. 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=SUBNETS \
    --udp-mapping-idle-timeout=60s \
    --icmp-mapping-idle-timeout=60s \
    --tcp-established-connection-idle-timeout=60s \
    --tcp-transitory-connection-idle-timeout=60s

다음을 바꿉니다.

  • NAT_CONFIG: NAT 구성 이름
  • NAT_ROUTER: Cloud Router의 이름
  • SUBNETS: 쉼표로 구분된 서브넷 목록

NAT 업데이트

NAT와 연결된 서브넷 및 IP 주소 리소스 변경

Console

  1. Google Cloud Console에서 Cloud NAT 페이지로 이동합니다.

    Cloud NAT 페이지로 이동

  2. NAT 게이트웨이를 클릭합니다.

  3. 수정을 클릭합니다.

  4. NAT 매핑에서 소스커스텀으로 설정합니다.

  5. 서브넷을 선택합니다.

  6. IP 범위 드롭다운 목록에서 포함할 서브넷 IP 범위를 선택합니다.

  7. 추가 범위를 지정하려면 서브넷 및 IP 범위 추가를 클릭합니다.

  8. NAT IP 주소 드롭다운 목록을 클릭한 후 자동 또는 수동을 선택합니다.

  9. 수동을 선택하는 경우 외부 IP 주소를 지정합니다.

  10. 수동 IP 주소로 고가용성을 유지하려면 IP 주소 추가를 클릭하고 두 번째 주소를 추가합니다.

  11. 'Save(저장)'를 클릭합니다.

gcloud

gcloud compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    --nat-external-ip-pool=IP_ADDRESS2,IP_ADDRESS3 \
    --nat-custom-subnet-ip-ranges=SUBNETS:range1

다음을 바꿉니다.

  • NAT_CONFIG: NAT 구성 이름
  • NAT_ROUTER: Cloud Router의 이름
  • IP_ADDRESS2: 수동 외부 IP 주소
  • IP_ADDRESS3: 다른 수동 외부 IP 주소
  • SUBNETS: 쉼표로 구분된 서브넷 목록

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

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

Console

  1. Cloud Console에서 Cloud NAT 페이지로 이동합니다.

    Cloud NAT 페이지로 이동

  2. NAT 게이트웨이를 클릭합니다.

  3. 수정을 클릭합니다.

  4. NAT IP 주소 드롭다운 목록을 클릭한 후 자동 또는 수동을 선택합니다.

  5. 수동을 선택하는 경우 외부 IP 주소를 지정합니다.

  6. 고가용성을 위해 IP 주소 추가를 클릭하고 두 번째 주소를 추가합니다.

  7. 'Save(저장)'를 클릭합니다.

gcloud

gcloud compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    --nat-external-ip-pool=IP_ADDRESS2,IP_ADDRESS3

다음을 바꿉니다.

  • NAT_CONFIG: NAT 구성 이름
  • NAT_ROUTER: Cloud Router의 이름
  • IP_ADDRESS2: 수동 외부 IP 주소
  • IP_ADDRESS3: 다른 수동 외부 IP 주소

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

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

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

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

NAT IP 주소의 상태를 확인하려면 NAT 상태를 표시하면 됩니다.

Console

  1. Cloud Console에서 Cloud NAT 페이지로 이동합니다.

    Cloud NAT 페이지로 이동

  2. NAT 게이트웨이를 클릭합니다.

  3. 수정을 클릭합니다.

  4. NAT IP 주소에서 IP 주소 옆에 있는 IP 드레이닝 값을 켜기로 설정합니다.

  5. 'Save(저장)'를 클릭합니다.

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_ADDRESS3: IP_ADDRESS2를 생략하도록 활성 풀을 업데이트
  • --nat-external-drain-ip-pool=IP_ADDRESS2: 드레이닝 풀에 IP_ADDRESS2를 추가

다음을 바꿉니다.

  • NAT_CONFIG: NAT 구성 이름
  • NAT_ROUTER: Cloud Router의 이름
  • IP_ADDRESS3: IP 주소
  • IP_ADDRESS2: 다른 IP 주소

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

Console

  1. Cloud Console에서 Cloud NAT 페이지로 이동합니다.

    Cloud NAT 페이지로 이동

  2. NAT 게이트웨이를 클릭합니다.

  3. 수정을 클릭합니다.

  4. 로깅, 최소 포트 수, 제한 시간을 클릭합니다.

  5. VM 인스턴스당 최소 포트 수 필드를 수정합니다.

  6. 'Save(저장)'를 클릭합니다.

gcloud

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

gcloud compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    --min-ports-per-vm=128

다음을 바꿉니다.

  • NAT_CONFIG: NAT 구성 이름
  • NAT_ROUTER: Cloud Router의 이름

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

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

Console

  1. Cloud Console에서 Cloud NAT 페이지로 이동합니다.

    Cloud NAT 페이지로 이동

  2. NAT 게이트웨이를 클릭합니다.

  3. 수정을 클릭합니다.

  4. 로깅, 최소 포트 수, 제한 시간을 클릭합니다.

  5. 변경하려는 제한 시간 값을 수정합니다.

  6. 'Save(저장)'를 클릭합니다.

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_CONFIG: NAT 구성 이름
  • NAT_ROUTER: Cloud Router의 이름

NAT와 연결된 연결 시간 제한을 기본값으로 재설정

Console

  1. Cloud Console에서 Cloud NAT 페이지로 이동합니다.

    Cloud NAT 페이지로 이동

  2. NAT 게이트웨이를 클릭합니다.

  3. 수정을 클릭합니다.

  4. 로깅, 최소 포트 수, 제한 시간을 클릭합니다.

  5. 재설정하려는 사용자 구성 값을 모두 삭제합니다.

  6. 'Save(저장)'를 클릭합니다.

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

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_CONFIG: NAT 구성 이름
  • NAT_ROUTER: Cloud Router의 이름

엔드포인트 매핑 설정

게이트웨이의 엔드포인트 독립 매핑을 사용 설정 또는 사용 중지할 수 있습니다. 이 기능은 기본적으로 사용 설정되어 있습니다.

Console

대신 gcloud 명령어를 사용하세요.

gcloud

기존 게이트웨이 업데이트

gcloud alpha compute routers nats update NAT_CONFIG \
    --router=NAT_ROUTER \
    [--enable-endpoint-independent-mapping | --no-enable-endpoint-independent-mapping]

다음을 바꿉니다.

  • NAT_CONFIG: NAT 구성 이름
  • NAT_ROUTER: Cloud Router의 이름

로깅 구성

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

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 구성, IP:포트 범위, 상태 표시

Console

  1. Google Cloud Console에서 Cloud NAT 페이지로 이동합니다.

    Cloud NAT 페이지로 이동

  2. NAT 게이트웨이 세부정보, 매핑 정보, 구성 세부정보를 보려면 NAT 게이트웨이 이름을 클릭합니다.

  3. NAT 상태를 보려면 NAT 게이트웨이의 상태 열을 확인합니다.

gcloud

gcloud compute routers nats describe NAT_CONFIG --router=NAT_ROUTER

다음을 바꿉니다.

  • NAT_CONFIG: NAT 구성 이름
  • NAT_ROUTER: Cloud Router의 이름
gcloud compute routers get-nat-mapping-info

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

gcloud compute routers get-status

할당량 및 한도

주어진 할당량 또는 한도는 리소스별로 계산됩니다. 할당량 및 한도는 프로젝트별, 네트워크별, 리전별, 기타 리소스별로 적용될 수 있습니다. 자세한 내용은 할당량 페이지를 참조하세요.

설정 예시

이 예시에서는 Google Cloud로 Cloud NAT를 테스트하는 방법을 보여줍니다.

다음 단계