Private NAT를 사용하여 네트워크 주소 변환 설정 및 관리

이 페이지에서는 Private NAT를 사용하여 네트워크 주소 변환(NAT)을 구성하는 방법을 보여줍니다. Private NAT 구성을 설정하기 전에 Private NAT를 참조하세요.

시작하기 전에

Private NAT를 설정하기 전에 다음 작업을 완료합니다.

IAM 권한 가져오기

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

Google Cloud 설정

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

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. Compute Engine API 사용 설정

    API 사용 설정

  5. Google Cloud CLI를 설치합니다.
  6. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

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

    프로젝트 선택기로 이동

  8. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  9. Compute Engine API 사용 설정

    API 사용 설정

  10. Google Cloud CLI를 설치합니다.
  11. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

    gcloud init

이 페이지의 Google Cloud CLI 안내에서는 명령어를 실행하기 전에 프로젝트 ID를 설정했다고 가정합니다.

  1. 다음 명령어를 사용하여 프로젝트 ID를 설정할 수 있습니다.

    gcloud config set project PROJECT_ID
    
  2. 이미 설정된 프로젝트 ID를 확인할 수도 있습니다.

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

PRIVATE_NAT 용도의 NAT 서브넷 만들기

Private NAT를 구성하기 전에 PRIVATE_NAT 용도의 NAT 서브넷을 만듭니다. NAT 서브넷은 Private NAT 게이트웨이를 만들려는 리전과 동일한 리전에 있어야 합니다. Private NAT 게이트웨이는 이 서브넷의 IP 주소 범위를 사용하여 NAT를 수행합니다. 이 서브넷이 연결된 네트워크의 기존 서브넷과 겹치지 않아야 합니다. 이 서브넷에는 리소스를 만들 수 없습니다. 이 서브넷은 Private NAT에만 사용됩니다.

콘솔

  1. Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.

    VPC 네트워크로 이동

  2. VPC 네트워크 세부정보 페이지를 표시하려면 VPC 네트워크 이름을 클릭합니다.

  3. 서브넷 탭을 클릭합니다.

  4. 서브넷 추가를 클릭합니다. 서브넷 추가 대화상자에서 다음을 수행합니다.

    1. 서브넷 이름을 입력합니다.
    2. 리전을 선택합니다.
    3. 용도에서 Private NAT를 선택합니다.
    4. 서브넷의 기본 IPv4 범위에 해당하는 IP 주소 범위를 입력합니다.

      RFC 1918 주소가 아닌 범위를 선택하는 경우 범위가 기존 구성과 충돌하지 않는지 확인합니다. 유효한 IPv4 서브넷 범위에 대한 자세한 내용은 IPv4 서브넷 범위를 참조하세요.

  5. 추가를 클릭합니다.

gcloud

compute networks subnet create 명령어를 사용하여 서브넷을 만듭니다.

    gcloud compute networks subnets create NAT_SUBNET \
      --network=NETWORK \
      --region=REGION \
      --range=IP_RANGE \
      --purpose=PRIVATE_NAT

다음을 바꿉니다.

  • NAT_SUBNET: 만들려는 Private NAT 서브넷 범위의 이름입니다.
  • NETWORK: 서브네트워크가 속한 네트워크입니다.
  • REGION: 만들려는 서브네트워크의 리전입니다. 지정하지 않으면 리전을 선택하라는 메시지가 표시될 수 있습니다(대화형 모드만 해당).
  • IP_RANGE: 이 서브넷에 할당된 CIDR 형식의 IP 공간입니다. IP_RANGE에서 VM당 필요한 포트 크기를 두 배로 사용하도록 고려해야 합니다.

Private NAT 구성 만들기

다음 Private NAT 제품을 지원하도록 Private NAT 게이트웨이를 구성할 수 있습니다.

  • Inter-VPC NAT: 공통 Network Connectivity Center 허브에 연결된 VPC 스포크로 구성된 VPC 네트워크 간의 트래픽에 NAT를 수행합니다.
  • Hybrid NAT(미리보기): VPC 네트워크와 온프레미스 네트워크 또는 Google Cloud의 엔터프라이즈 하이브리드 연결 솔루션을 통해 연결된 다른 클라우드 제공업체 네트워크 간의 트래픽에 NAT를 수행합니다.

Private NAT 설정

VPC 네트워크와 다른 네트워크 간의 트래픽에 NAT를 수행하는 커스텀 NAT 규칙으로 Private NAT 게이트웨이를 만듭니다.

콘솔

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

    Cloud NAT로 이동

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

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

  4. NAT 유형에서 비공개를 선택합니다.

  5. NAT 게이트웨이의 VPC 네트워크를 선택합니다.

  6. NAT 게이트웨이의 리전을 선택합니다.

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

  8. VM 인스턴스가 소스 엔드포인트 유형으로 선택되었는지 확인합니다.

  9. 소스 목록에서 커스텀을 선택합니다.

  10. NAT를 수행하도록 할 서브넷을 선택합니다.

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

  12. 규칙 추가를 클릭합니다.

  13. 규칙 번호 필드에서 165000 사이의 값을 입력합니다.

  14. 일치에서 다음 옵션 중 하나를 선택합니다.

    • Inter-VPC NAT의 경우 Network Connectivity Center 허브를 선택합니다.
    • Hybrid NAT(미리보기)의 경우 하이브리드 연결 경로를 선택합니다.
  15. Private NAT 서브넷 범위를 만들거나 선택합니다.

  16. 완료를 클릭한 후 만들기를 클릭합니다.

gcloud

  1. NAT를 수행하려는 VPC 네트워크에서 Cloud Router를 만듭니다. compute routers create 명령어를 사용합니다.

    gcloud compute routers create ROUTER_NAME \
      --network=NETWORK --region=REGION
    

    다음을 바꿉니다.

    • ROUTER_NAME: 만들려는 라우터의 이름입니다.
    • NETWORK: 이 라우터의 VPC 네트워크입니다.
    • REGION: 생성할 라우터의 리전입니다. 지정하지 않으면 리전을 선택하라는 메시지가 표시될 수 있습니다(대화형 모드만 해당).
  2. NAT를 수행하려는 소스 VPC 네트워크의 서브넷을 지정하여 Private NAT 게이트웨이를 만듭니다.

    --type 플래그를 PRIVATE로 설정하여 compute routers nats create 명령어를 사용합니다.

    gcloud compute routers nats create NAT_CONFIG \
      --router=ROUTER_NAME --type=PRIVATE --region=REGION \
      --nat-custom-subnet-ip-ranges=SUBNETWORK:ALL|[SUBNETWORK_1:ALL ...] | \
      [--nat-all-subnet-ip-ranges]
    

    다음을 바꿉니다.

    • NAT_CONFIG: 만들려는 Private NAT 구성의 이름입니다.
    • ROUTER_NAME: 이 게이트웨이에 사용할 라우터의 이름입니다. 이전 단계에서 만든 라우터와 동일합니다. 이 라우터와 연결된 다른 리소스가 없어야 합니다.
    • SUBNETWORK: 게이트웨이를 사용하도록 허용할 서브넷의 이름 또는 서브넷 목록입니다. 서브넷 목록을 SUBNETWORK_1, SUBNETWORK_2 같은 쉼표로 구분된 형식으로 지정할 수도 있습니다. Google Cloud는 항상 특정 서브넷 또는 서브넷 목록의 모든 서브넷 IP 범위에서 NAT를 수행합니다.
  3. 요구사항에 따라 트래픽을 일치시키는 규칙을 만듭니다.

    • 소스 VPC 스포크를 통해 일치하는 Network Connectivity Center 허브에 연결된 피어 VPC 스포크로 이그레스되는 트래픽에 NAT를 수행하려면 Private NAT 게이트웨이에 NAT 규칙을 만듭니다. NAT 규칙에 따라 Private NAT 게이트웨이는 Private NAT 서브넷의 NAT IP 주소를 할당하여 트래픽에 NAT를 수행합니다.

      compute routers nats rules create 명령어를 사용합니다.

      gcloud beta compute routers nats rules create NAT_RULE_NUMBER \
      --router=ROUTER_NAME --region=REGION \
      --nat=NAT_CONFIG \
      --match='nexthop.hub == "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/hubs/HUB"' \
      --source-nat-active-ranges=NAT_SUBNET ...
      

      다음을 바꿉니다.

      • NAT_RULE_NUMBER: 만들려는 규칙을 고유하게 식별하는 번호입니다.
      • NAT_CONFIG: 만들려는 규칙의 Private NAT 구성의 이름입니다. 이전 단계에서 만든 구성과 동일합니다.
      • PROJECT_ID: 라우터가 있는 프로젝트의 전역 고유 식별자입니다.
      • HUB: 일치하는 Network Connectivity Center 허브의 이름입니다.
      • NAT_SUBNET: 앞에서 만든 Private NAT 서브넷의 이름입니다. 서브넷 목록을 쉼표로 구분된 형식으로 지정할 수도 있습니다.
    • 소스 VPC 네트워크를 통해 Google Cloud의 엔터프라이즈 하이브리드 연결 솔루션(미리보기)을 통해 온프레미스 또는 다른 클라우드 제공업체 네트워크로 이그레스되는 트래픽에 NAT를 수행하려면 Private NAT 게이트웨이에 NAT 규칙을 만듭니다. NAT 규칙에 따라 Private NAT 게이트웨이는 Private NAT 서브넷의 NAT IP 주소를 할당하여 트래픽에 NAT를 수행합니다.

      compute routers nats rules create 명령어를 사용합니다.

      gcloud beta compute routers nats rules create NAT_RULE_NUMBER \
      --router=ROUTER_NAME --region=REGION \
      --nat=NAT_CONFIG \
      --match='nexthop.is_hybrid' \
      --source-nat-active-ranges=NAT_SUBNET ...
      

      다음을 바꿉니다.

      • NAT_RULE_NUMBER: 만들려는 규칙을 고유하게 식별하는 번호입니다.
      • NAT_CONFIG: 만들려는 규칙의 Private NAT 구성의 이름입니다. 이전 단계에서 만든 구성과 동일합니다.
      • NAT_SUBNET: 앞에서 만든 Private NAT 서브넷의 이름입니다. 서브넷 목록을 쉼표로 구분된 형식으로 지정할 수도 있습니다.

정적 포트 할당을 사용하여 Private NAT 설정

Private NAT는 기본적으로 동적 포트 할당을 사용합니다. 그러나 정적 포트 할당을 사용하도록 Private NAT를 구성할 수도 있습니다.

콘솔

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

    Cloud NAT로 이동

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

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

  4. NAT 유형에서 비공개를 선택합니다.

  5. NAT 게이트웨이의 VPC 네트워크를 선택합니다.

  6. NAT 게이트웨이의 리전을 선택합니다.

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

  8. Cloud NAT 매핑 세부정보를 지정하고 NAT 규칙을 만듭니다. 자세한 내용은 Private NAT 설정을 참조하세요.

  9. 고급 구성을 클릭합니다.

  10. 동적 포트 할당 사용 설정을 선택 해제합니다.

  11. VM 인스턴스당 최소 포트 값을 지정합니다. 기본값은 64입니다.

  12. 완료를 클릭한 후 만들기를 클릭합니다.

gcloud

compute routers nats create 명령어를 --no-enable-dynamic-port-allocation 플래그와 함께 사용합니다.

  gcloud compute routers nats create NAT_CONFIG \
    --router=ROUTER_NAME --type=PRIVATE --region=REGION \
    --nat-custom-subnet-ip-ranges=SUBNETWORK:ALL|[SUBNETWORK_1:ALL,SUBNETWORK_2:ALL,...] \
    --no-enable-dynamic-port-allocation \
    [--min-ports-per-vm=VALUE]

다음을 바꿉니다.

  • NAT_CONFIG: 만들려는 Private NAT 구성의 이름입니다.
  • ROUTER_NAME: 이 게이트웨이와 함께 사용할 라우터의 이름입니다.
  • SUBNETWORK: 게이트웨이를 사용하도록 허용할 서브넷의 이름 또는 서브넷 목록입니다.

    서브넷 목록을 SUBNETWORK_1, SUBNETWORK_2 같은 쉼표로 구분된 형식으로 지정할 수도 있습니다. Google Cloud는 항상 특정 서브넷 또는 서브넷 목록의 모든 서브넷 IP 범위에서 NAT를 수행합니다.

  • VALUE: 게이트웨이에 할당할 VM당 최소 포트입니다. 지정되지 않은 경우 Google Cloud가 기본값 64를 할당합니다.

NAT 구성 보기

콘솔

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

    Cloud NAT로 이동

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

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

gcloud

다음 명령어를 실행하여 NAT 구성 세부정보를 볼 수 있습니다.

  • Private NAT 게이트웨이 구성을 봅니다.

    gcloud compute routers nats describe NAT_CONFIG \
       --router=ROUTER_NAME \
       --region=REGION
    

    다음을 바꿉니다.

    • NAT_CONFIG: NAT 구성 이름
    • ROUTER_NAME: Cloud Router의 이름입니다.
    • REGION: 설명할 NAT의 리전입니다. 지정하지 않으면 리전을 선택하라는 메시지가 표시될 수 있습니다(대화형 모드만 해당).
  • 각 VM의 인터페이스에 할당된 IP:포트-범위의 매핑을 확인합니다.

    gcloud compute routers get-nat-mapping-info ROUTER_NAME \
      --region=REGION
    
  • Private NAT 게이트웨이의 상태를 봅니다.

    gcloud compute routers get-status ROUTER_NAME \
      --region=REGION
    

Private NAT 구성 업데이트

Private NAT 게이트웨이를 설정한 후 요구사항에 따라 게이트웨이 구성을 업데이트할 수 있습니다. 다음 섹션에는 Private NAT 게이트웨이를 업데이트하기 위해 수행할 수 있는 작업이 나열되어 있습니다.

Private NAT와 연결된 서브넷 변경

콘솔

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

    Cloud NAT로 이동

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

  3. 수정을 클릭합니다.

  4. Cloud NAT 매핑소스 목록에서 커스텀을 선택합니다.

  5. 사용 가능한 서브넷 목록에서 새 서브넷을 선택합니다.

  6. 추가 범위를 지정하려면 서브넷 및 IP 범위 추가를 클릭한 후 다른 서브넷을 선택합니다.

  7. 저장을 클릭합니다.

gcloud

gcloud beta compute routers nats update NAT_CONFIG \
  --router=ROUTER_NAME \
  --region=REGION \
  --nat-custom-subnet-ip-ranges=SUBNETWORK:ALL|[SUBNETWORK_1:ALL,SUBNETWORK_2:ALL,..]

다음을 바꿉니다.

  • NAT_CONFIG: 업데이트할 Private NAT 구성의 이름입니다.
  • ROUTER_NAME: 이 게이트웨이와 함께 사용할 라우터의 이름입니다.
  • SUBNETWORK: 사용할 서브넷의 이름입니다.

Private NAT와 연결된 서브넷 삭제

더 이상 사용하지 않는 특정 서브넷을 NAT 게이트웨이에서 삭제할 수 있습니다.

콘솔

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

    Cloud NAT로 이동

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

  3. 수정을 클릭합니다.

  4. NAT 매핑에서 삭제하려는 서브넷을 삭제합니다.

  5. 저장을 클릭합니다.

Private NAT 구성에 NAT 서브넷 추가

트래픽에 NAT를 수행하기 위해 Private NAT 구성은 PRIVATE_NAT 용도의 서브넷의 NAT IP 주소를 사용합니다. Private NAT 구성에 사용 가능한 NAT IP 주소 수보다 더 많이 필요한 경우 구성에 PRIVATE_NAT 용도의 서브넷을 더 추가할 수 있습니다.

콘솔

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

    Cloud NAT로 이동

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

  3. 수정을 클릭합니다.

  4. 기존 규칙을 펼칩니다.

  5. 서브넷 범위 추가를 클릭합니다.

  6. 새 NAT 서브넷 범위를 선택하거나 만든 후 완료를 클릭합니다.

  7. 저장을 클릭합니다.

gcloud

gcloud beta compute routers nats rules update NAT_RULE_NUMBER \
  --nat=NAT_CONFIG \
  --router=ROUTER_NAME \
  --region=REGION \
  --source-nat-active-ranges=NAT_SUBNET_1, NAT_SUBNET_2 ...

다음을 바꿉니다.

  • NAT_RULE_NUMBER: 업데이트할 규칙을 고유하게 식별하는 번호입니다.
  • NAT_CONFIG: 업데이트할 규칙의 Private NAT 구성의 이름입니다.
  • PROJECT_ID: 라우터가 있는 프로젝트의 전역 고유 식별자입니다.
  • NAT_SUBNET: 기존 NAT 구성에 추가할 Private NAT 서브넷의 이름입니다.

NAT 구성 삭제

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

콘솔

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

    Cloud NAT로 이동

  2. 삭제하려는 게이트웨이 구성 옆의 체크박스를 선택합니다.

  3. 메뉴에서 삭제를 클릭합니다.

gcloud

gcloud compute routers nats delete NAT_CONFIG \
    --router=ROUTER_NAME \
    --region=REGION

다음을 바꿉니다.

  • NAT_CONFIG: NAT 구성 이름
  • ROUTER_NAME: Cloud Router의 이름입니다.
  • REGION: 삭제할 NAT의 리전입니다. 지정하지 않으면 리전을 선택하라는 메시지가 표시될 수 있습니다(대화형 모드만 해당).

다음 단계