Private NAT를 사용하여 네트워크 주소 변환 설정 및 관리
이 페이지에서는 Cloud NAT에서 비공개 간 네트워크 주소 변환(NAT)을 구성하는 방법을 설명합니다.
시작하기 전에
Private NAT를 설정하기 전에 다음 작업을 완료합니다.
Private NAT 사양 검토
다음 사양 및 요구사항을 참고하세요.
- 일반 사양은 Private NAT를 참조하세요.
- VPC 스포크 및 하이브리드 스포크를 포함한 Network Connectivity Center 허브의 스포크 간 트래픽은 Network Connectivity Center 스포크용 Private NAT를 참조하세요.
- Cloud Interconnect 또는 Cloud VPN을 통한 Virtual Private Cloud(VPC) 네트워크와 Google Cloud 외부 네트워크 간 트래픽은 Hybrid NAT를 참조하세요.
IAM 권한 가져오기
Compute 네트워크 관리자 역할(roles/compute.networkAdmin
)은 Cloud Router에서 NAT 게이트웨이를 만들고, NAT IP 주소를 예약 및 할당하고, 트래픽이 NAT 게이트웨이의 네트워크 주소 변환을 사용해야 하는 서브네트워크(서브넷)를 지정할 수 있는 권한을 부여합니다.
Google Cloud 설정
시작하기 전에 Google Cloud에서 다음 항목을 설정합니다.
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
Enable the Compute Engine API.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
이 페이지의 Google Cloud CLI 안내에서는 명령어를 실행하기 전에 프로젝트 ID를 설정했다고 가정합니다.
다음 명령어를 사용하여 프로젝트 ID를 설정할 수 있습니다.
gcloud config set project PROJECT_ID
이미 설정된 프로젝트 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에만 사용됩니다.
콘솔
Google Cloud 콘솔에서 VPC 네트워크 페이지로 이동합니다.
VPC 네트워크 세부정보 페이지를 표시하려면 VPC 네트워크 이름을 클릭합니다.
서브넷 탭을 클릭합니다.
서브넷 추가를 클릭합니다. 서브넷 추가 대화상자에서 다음을 수행합니다.
- 서브넷 이름을 입력합니다.
- 리전을 선택합니다.
- 용도에서 Private NAT를 선택합니다.
서브넷의 기본 IPv4 범위에 해당하는 IP 주소 범위를 입력합니다.
RFC 1918 주소가 아닌 범위를 선택하는 경우 범위가 기존 구성과 충돌하지 않는지 확인합니다. 유효한 IPv4 서브넷 범위에 대한 자세한 내용은 IPv4 서브넷 범위를 참조하세요.
추가를 클릭합니다.
gcloud
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 구성
소스 VPC 네트워크에서 Private NAT 게이트웨이를 만들어 Private NAT를 구성합니다. 각 게이트웨이는 단일 VPC 네트워크, 리전, Cloud Router와 연결됩니다.
Private NAT를 구성할 때 다음 중 하나 또는 둘 다를 사용 설정할 수 있습니다.
- Network Connectivity Center 스포크용 Private NAT. 다음의 트래픽 사이에 NAT를 사용 설정합니다.
- 동일한 Network Connectivity Center 허브에 있는 소스 VPC 네트워크와 대상 VPC 네트워크. 두 네트워크 모두 VPC 스포크로 구성해야 합니다.
- Network Connectivity Center 허브에서 VPC 스포크로 구성된 소스 VPC 네트워크와 하이브리드 스포크를 통해 허브에 연결된 대상 온프레미스 또는 기타 클라우드 제공업체 네트워크(미리보기)
- Hybrid NAT. 소스 VPC 네트워크와 대상 온프레미스 또는 기타 클라우드 제공업체 네트워크 간의 트래픽에 NAT를 사용 설정합니다. 네트워크는 Cloud Interconnect 또는 Cloud VPN을 통해 연결되어야 합니다.
Private NAT 게이트웨이 만들기
NAT를 구성하려는 소스 VPC 네트워크에서 Private NAT 게이트웨이를 만듭니다.
콘솔
Google Cloud 콘솔에서 Cloud NAT 페이지로 이동합니다.
시작하기 또는 Cloud NAT 게이트웨이 만들기를 클릭합니다.
게이트웨이 이름을 입력합니다.
NAT 유형에서 비공개를 선택합니다.
NAT 게이트웨이의 VPC 네트워크를 선택합니다.
NAT 게이트웨이의 리전을 선택합니다.
리전에서 Cloud Router를 선택하거나 만듭니다.
VM 인스턴스가 소스 엔드포인트 유형으로 선택되었는지 확인합니다.
소스 목록에서 커스텀을 선택합니다.
NAT를 수행하도록 할 서브넷을 선택합니다.
추가 범위를 지정하려면 서브넷 및 IP 범위 추가를 클릭합니다.
규칙 추가를 클릭합니다.
규칙 번호 필드에
1
에서65000
사이의 값을 입력합니다.일치에서 다음 옵션 중 하나를 선택합니다.
- Hybrid NAT를 사용 설정하려면 하이브리드 연결 경로를 선택합니다.
- Network Connectivity Center 스포크에 Private NAT를 사용 설정하려면 Network Connectivity Center 허브를 선택합니다.
- 두 옵션을 모두 사용 설정하려면 하이브리드 연결 경로 및 Network Connectivity Center 허브를 선택합니다.
Private NAT 서브넷 범위를 만들거나 선택합니다.
완료를 클릭합니다.
선택사항: 고급 구성 섹션에서 다음 설정을 조정합니다.
- 로깅을 구성할지 여부입니다. 기본적으로 로깅 없음이 선택되어 있습니다.
- Cloud NAT에서 포트를 할당하는 방식을 변경할지 여부입니다. 기본적으로 동적 포트 할당 사용 설정이 선택되어 있습니다. 정적 포트 할당을 구성하려면 동적 포트 할당 사용 설정을 선택 해제하고 VM 인스턴스당 최소 포트 수를 지정합니다. 기본값은
64
입니다. - 프로토콜 연결의 NAT 제한 시간을 업데이트할지 여부입니다. 이러한 제한 시간 및 기본값에 관한 자세한 내용은 NAT 제한 시간을 참고하세요.
만들기를 클릭합니다.
gcloud
NAT를 구성하려는 VPC 네트워크에 Cloud Router를 만듭니다.
gcloud compute routers create
명령어를 사용합니다.gcloud compute routers create ROUTER_NAME \ --network=NETWORK --region=REGION
다음을 바꿉니다.
ROUTER_NAME
: Cloud Router의 이름입니다.NETWORK
: Cloud Router를 만들 VPC 네트워크입니다.REGION
: Cloud Router를 만들 리전입니다.
Private NAT 게이트웨이를 만들고 NAT를 구성하려는 소스 VPC 네트워크의 서브넷을 하나 이상 지정합니다.
--type
플래그를PRIVATE
로 설정하여gcloud 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,SUBNETWORK_2:ALL,...] | \ [--nat-all-subnet-ip-ranges]
다음을 바꿉니다.
NAT_CONFIG
: 만들려는 Private NAT 구성의 이름입니다.ROUTER_NAME
: 이 게이트웨이에 사용할 Cloud Router의 이름입니다. 이 라우터는 이전 단계에서 만든 Cloud Router이며 다른 리소스에서 사용 중이면 안 됩니다.SUBNETWORK
: NAT를 사용하려는 서브넷의 이름 또는 서브넷 목록입니다.서브넷 목록을
SUBNETWORK_1
,SUBNETWORK_2
같은 쉼표로 구분된 형식으로 지정할 수도 있습니다. Private NAT는 항상 지정된 서브넷이나 서브넷 목록의 모든 서브넷 IP 범위에서 NAT를 수행합니다.
Private NAT는 기본적으로 동적 포트 할당을 사용합니다. 정적 포트 할당으로 Private NAT 게이트웨이를 만들려면
--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,...] | \ [--nat-all-subnet-ip-ranges] --no-enable-dynamic-port-allocation \ [--min-ports-per-vm=VALUE]
VALUE
를 VM당 할당할 최소 포트 수로 바꿉니다. 지정되지 않은 경우 Google Cloud가 기본값64
를 할당합니다.구성하는 NAT 유형에 따라 트래픽과 일치하는 NAT 규칙을 만듭니다.
--match
플래그가 다음 옵션 중 하나로 설정된gcloud compute routers nats rules create
명령어를 사용합니다.nexthop.is_hybrid
: 소스 VPC 네트워크의 아웃바운드 트래픽을 Cloud Interconnect 또는 Cloud VPN을 통해 Google Cloud에 연결된 온프레미스 또는 기타 클라우드 제공업체 네트워크로 변환합니다.nexthop.hub
: 소스 VPC 스포크의 아웃바운드 트래픽을 소스 VPC 스포크와 동일한 Network Connectivity Center 허브에 연결된 VPC 또는 하이브리드 스포크로 변환합니다.nexthop.is_hybrid || nexthop.hub
: 두 가지 유형의 Private NAT 모두 구성합니다.
하이브리드 NAT의 NAT 규칙을 만들려면 다음 명령어를 실행합니다.
gcloud 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
Network Connectivity Center 스포크의 Private NAT에 관한 NAT 규칙을 만들려면 다음 명령어를 실행합니다.
gcloud 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
Network Connectivity Center 스포크의 Hybrid NAT 및 Private NAT에 모두 NAT 규칙을 만들려면 다음 명령어를 실행합니다.
gcloud compute routers nats rules create NAT_RULE_NUMBER \ --router=ROUTER_NAME --region=REGION \ --nat=NAT_CONFIG \ --match='nexthop.is_hybrid || nexthop.hub == "//networkconnectivity.googleapis.com/projects/PROJECT_ID/locations/global/hubs/HUB"' \ --source-nat-active-ranges=NAT_SUBNET
다음을 바꿉니다.
NAT_RULE_NUMBER
: NAT 규칙을 고유하게 식별하는 규칙 번호입니다(1
~65000
).ROUTER_NAME
: 앞에서 만든 Cloud Router의 이름입니다.REGION
: Cloud Router의 리전입니다.NAT_CONFIG
: 앞에서 만든 Private NAT 구성의 이름입니다.PROJECT_ID
: Network Connectivity Center 허브의 Google Cloud 프로젝트입니다.HUB
: Network Connectivity Center 허브의 이름입니다.NAT_SUBNET
: 앞에서 만든 Private NAT 서브넷의 이름입니다. 쉼표로 구분된 형식으로 서브넷 목록을 지정할 수도 있습니다.
Private NAT 구성 보기
콘솔
Google Cloud 콘솔에서 Cloud NAT 페이지로 이동합니다.
NAT 게이트웨이 세부정보, 매핑 정보, 구성 세부정보를 보려면 NAT 게이트웨이 이름을 클릭합니다.
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와 연결된 서브넷 변경
콘솔
Google Cloud 콘솔에서 Cloud NAT 페이지로 이동합니다.
NAT 게이트웨이를 클릭합니다.
수정을 클릭합니다.
Cloud NAT 매핑의 소스 목록에서 커스텀을 선택합니다.
사용 가능한 서브넷 목록에서 새 서브넷을 선택합니다.
추가 범위를 지정하려면 서브넷 및 IP 범위 추가를 클릭한 후 다른 서브넷을 선택합니다.
저장을 클릭합니다.
gcloud
gcloud 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 게이트웨이에서 삭제할 수 있습니다.
콘솔
Google Cloud 콘솔에서 Cloud NAT 페이지로 이동합니다.
NAT 게이트웨이를 클릭합니다.
수정을 클릭합니다.
NAT 매핑에서 삭제하려는 서브넷을 삭제합니다.
저장을 클릭합니다.
Private NAT 구성에 NAT 서브넷 추가
트래픽에 NAT를 수행하기 위해 Private NAT 구성은 PRIVATE_NAT
용도의 서브넷에서 NAT IP 주소를 사용합니다.
Private NAT 구성에 사용 가능한 NAT IP 주소 수보다 더 많이 필요한 경우 구성에 PRIVATE_NAT
용도의 서브넷을 더 추가할 수 있습니다.
콘솔
Google Cloud 콘솔에서 Cloud NAT 페이지로 이동합니다.
NAT 게이트웨이를 클릭합니다.
수정을 클릭합니다.
기존 규칙을 펼칩니다.
서브넷 범위 추가를 클릭합니다.
새 NAT 서브넷 범위를 선택하거나 만든 후 완료를 클릭합니다.
저장을 클릭합니다.
gcloud
gcloud 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 구성의 이름입니다.ROUTER_NAME
: 이 게이트웨이에 사용할 라우터의 이름입니다.NAT_SUBNET
: 기존 NAT 구성에 추가할 Private NAT 서브넷의 이름입니다.
NAT 구성 삭제
게이트웨이 구성을 삭제하면 Cloud Router에서 NAT 구성이 삭제됩니다. 라우터 자체는 삭제하지 않습니다.
콘솔
Google Cloud 콘솔에서 Cloud NAT 페이지로 이동합니다.
삭제하려는 게이트웨이 구성 옆의 체크박스를 선택합니다.
메뉴에서 삭제를 클릭합니다.
gcloud
gcloud compute routers nats delete NAT_CONFIG \ --router=ROUTER_NAME \ --region=REGION
다음을 바꿉니다.
NAT_CONFIG
: NAT 구성 이름ROUTER_NAME
: Cloud Router의 이름REGION
: 삭제할 NAT의 리전입니다. 지정하지 않으면 리전을 선택하라는 메시지가 표시될 수 있습니다(대화형 모드만 해당).
다음 단계
- Cloud NAT에 로깅 및 모니터링을 구성합니다.
- NAT 구성의 일반적인 문제를 해결합니다.