인스턴스가 연결된 서브넷에 IPv6 범위가 구성된 경우 Compute Engine 인스턴스에서 IPv6 주소를 구성할 수 있습니다.
IPv6에 대한 자세한 내용은 IPv6 서브넷 범위를 참고하세요.
사양
IPv4 및 IPv6 구성을 모두 포함하는 컴퓨팅 인스턴스는 이중 스택입니다. IPv6 주소는 네트워크 인터페이스에 구성된 IPv4 주소에 추가로 제공됩니다.
이중 스택 또는 IPv6 전용 인스턴스의 인터페이스에는 IPv6 주소의 단일
/96
범위가 할당됩니다. 범위에서 첫 번째 IPv6 주소 (/128
)는 인터페이스에 구성됩니다.인스턴스의 모든 인터페이스에 IPv6 주소를 구성할 수 있습니다. 다중 네트워크 인터페이스 구성에 대한 자세한 내용은 다중 네트워크 인터페이스 개요를 참조하세요.
VM의 네트워크 인터페이스의 스택 유형에 따라 연결할 수 있는 서브넷 유형이 결정됩니다.
- IPv4 전용 인터페이스는 이중 스택 및 IPv4 전용 서브넷에 연결할 수 있습니다.
- 이중 스택 인터페이스는 이중 스택 서브넷에 연결할 수 있습니다.
- IPv6 전용 인터페이스는 이중 스택 및 IPv6 전용 서브넷에 연결할 수 있습니다(미리보기).
네트워크 인터페이스에 IPv6 주소를 구성하려면 인터페이스가 이중 스택 또는 IPv6 전용 서브넷(미리보기)에 연결되어 있어야 합니다.
서브넷의 IPv6 액세스 유형 구성에 따라 서브넷에 내부 또는 외부 IPv6 범위가 포함되는지 결정됩니다. 연결된 인스턴스는 서브넷에서 IPv6 액세스 유형을 상속합니다.
IPv6 전용 인스턴스 (미리보기)는 Ubuntu 및 Debian OS에서만 지원됩니다.
IPv6 주소를 사용하여 인스턴스에 액세스
암시적 IPv6 거부 인그레스 방화벽 규칙은 해당 IPv6 주소로 들어오는 연결을 차단하여 인스턴스를 보호합니다. IPv6 주소를 사용하여 인스턴스에 액세스하려면 수신 액세스를 허용하는 우선순위가 더 높은 규칙이 있어야 합니다.
방화벽 규칙에 대한 자세한 내용은 VPC 방화벽 개요 및 계층식 방화벽 정책 개요를 참조하세요.
VPC 방화벽 규칙 예시는 일반적인 사용 사례에 대한 방화벽 규칙 구성을 참고하세요.
IPv6 주소 할당
다음 목록에서는 IPv6 주소가 컴퓨팅 인스턴스에 할당되는 방법을 설명합니다.
컴퓨팅 인스턴스에는 DHCPv6을 사용하여 IPv6 주소가 할당됩니다. 메타데이터 서버는 인스턴스의 DHCPv6 요청에 응답하고 응답에서 할당된
/96
범위의 첫 번째 IPv6 주소 (/128
)를 전송합니다.메타데이터 서버는 경로 공지를 사용하여 기본 경로를 인스턴스에 게시합니다. 그러면 인스턴스는 모든 IPv6 트래픽에 이 기본 경로를 사용할 수 있습니다.
인스턴스에 연결하고 메타데이터 서버에서
gateway-ipv6
항목을 쿼리하여 인스턴스의 네트워크 인터페이스에 대한 기본 경로를 찾을 수 있습니다.curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/gateway-ipv6 -H "Metadata-Flavor: Google"
메타데이터 서버에 대한 자세한 내용은 인스턴스 메타데이터 쿼리를 참고하세요.
컴퓨팅 인스턴스는
fe80::/10
범위에서 할당된 링크 로컬 IP 주소로 구성되지만 이웃 검색에만 사용됩니다.인스턴스의 네트워크 인터페이스의 MTU 구성은 IPv4 및 IPv6 패킷 모두에 적용되지만 모든 상황에서 모든 MTU 값이 지원되지는 않습니다. 자세한 내용은 최대 전송 단위 개요를 참조하세요.
IPv6 주소를 사용하는 인스턴스 만들기
IPv4 주소와 IPv6 주소를 조합하여 사용하는 인스턴스 (이중 스택)를 만들거나 IPv6 주소만 사용하는 인스턴스를 만들 수 있습니다.
이중 스택 인스턴스 만들기
이중 스택 인스턴스를 만들려면 컴퓨팅 인스턴스를 이중 스택 서브넷에 연결합니다.
공유 VPC를 사용하는 경우 공유 서브넷에 연결된 이중 스택 인스턴스를 만들려면 공유 VPC 문서의 인스턴스 만들기를 참고하세요.
콘솔
인스턴스 만들기 페이지로 이동
인스턴스의 이름을 입력합니다.
IPv6 범위가 구성된 서브넷을 포함하는 리전을 선택합니다.
영역을 선택합니다.
고급 옵션 섹션을 펼칩니다.
네트워킹을 확장하고 다음을 수행합니다.
네트워크 인터페이스 섹션에서 네트워크 인터페이스를 클릭하여 펼치고 수정합니다.
네트워크 및 서브네트워크에서 사용할 네트워크와 서브네트워크를 선택합니다.
IPv6 범위가 구성된 서브넷을 선택합니다. 서브넷의 IPv6 액세스 유형에 따라 인스턴스가 내부 IPv6 주소 또는 외부 IPv6 주소를 수신하는지가 결정됩니다.
IP 스택 유형에 IPv4 및 IPv6(이중 스택)을 선택합니다.
기본 내부 IPv4 주소에서 다음 중 하나를 선택합니다.
- 임시: 새 임시 IPv4 내부 주소 할당
- * 목록에서 예약된 IPv4 주소
- * 고정: 새 고정 IPv4 주소 할당
IPv6 주소의 경우 네트워크 인터페이스에서 사용하는 서브넷의 액세스 유형에 따라 다음과 같이 처리됩니다.
기본 내부 IPv6 주소에서 다음 중 하나를 선택합니다.
- 자동 할당: 새 임시 내부 IPv6 주소를 할당합니다.
- 목록의 예약된 고정 내부 IPv6 주소
- 고정 내부 IPv6 주소 예약: 새 고정 내부 IPv6 주소 예약 및 할당
외부 IPv6 주소에 대해 다음 중 하나를 선택합니다.
- 자동 할당: 새 임시 외부 IPv6 주소를 할당
- 목록의 예약된 고정 외부 IPv6 주소
- 고정 외부 IPv6 주소 예약: 새 고정 외부 IPv6 주소 예약 및 할당
외부 IPv4 주소에 대해 다음 중 하나를 선택합니다.
- 임시: 새 임시 IPv4 주소 할당
- None(없음): 외부 IPv4 주소를 할당하지 않음
- 목록에서 예약된 IPv4 주소
- 새 IP 주소 만들기: 새 고정 IPv4 주소 할당
네트워크 인터페이스 수정을 완료하려면 완료를 클릭합니다.
인스턴스 생성 프로세스를 계속 진행합니다.
만들기를 클릭합니다.
gcloud
gcloud compute instances create
명령어를 사용하여 인스턴스를 만듭니다.
gcloud compute instances create INSTANCE_NAME \ --subnet=SUBNET_NAME \ --zone=ZONE \ --stack-type=IPV4_IPV6
다음을 바꿉니다.
INSTANCE_NAME
: 인스턴스의 이름입니다.SUBNET_NAME
: 인스턴스를 연결할 서브넷입니다. 서브넷에 IPv6 서브넷 범위가 있어야 합니다.ZONE
: 인스턴스를 배포할 영역입니다.
REST
- 이미지를 선택합니다. 이미지 이름 또는 이미지 계열과 이미지가 포함된 프로젝트의 이름을 기록해 둡니다.
instances.insert
메서드를 사용하여 이미지 계열 또는 특정 버전의 OS 이미지로 인스턴스를 만듭니다.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
다음을 바꿉니다.
PROJECT_ID
: 인스턴스를 만들 프로젝트의 IDZONE
: 인스턴스를 만들 영역입니다.
요청 본문 예시:
{ "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "INSTANCE_NAME", "networkInterfaces": [ { "subnetwork": "regions/REGION/subnetworks/SUBNET", "stackType": "IPV4_IPV6" } ], "disks": [ { "initializeParams": { "sourceImage": "IMAGE_URI" }, "boot": true } ], }
다음을 바꿉니다.
MACHINE_TYPE_ZONE
: 새 인스턴스에 사용할 머신 유형이 포함된 영역MACHINE_TYPE
: 새 인스턴스의 머신 유형(사전 정의 또는 커스텀)입니다. 예를 들면n1-standard-1
입니다.INSTANCE_NAME
: 새 인스턴스의 이름입니다.SUBNET
: IPv6가 구성된 서브넷입니다.REGION
: 서브넷의 리전입니다.IMAGE_URI
: 사용하려는 이미지의 URI입니다.예를 들어
"sourceImage": "projects/debian-cloud/global/images/family/debian-10"
을 지정하면 Compute Engine이 Debian 10 이미지 계열에서 최신 버전의 OS 이미지를 사용하여 컴퓨팅 인스턴스를 만듭니다.
IPv6 전용 인스턴스 만들기
IPv6 전용 인스턴스를 만들려면 이 섹션의 단계를 따르세요.
단일 네트워크 인터페이스가 있는 Compute Engine 인스턴스의 경우 인터페이스가 연결된 서브넷의 IPv6 액세스 유형에 따라 인스턴스에 내부 또는 외부 IPv6 주소가 있을 수 있습니다. IPv6 주소 범위가 있는 서브넷으로 커스텀 모드 VPC 네트워크를 만들어야 합니다.
내부 및 외부 IPv6 주소를 모두 사용하는 다중 NIC VM 인스턴스를 만들려면 먼저 다음을 만들어야 합니다.
- IPv6 ULA가 사용 설정된 커스텀 모드 VPC 네트워크, IPv6 주소 범위가 있는 서브넷, 액세스 유형이
internal
로 설정된 경우 - 두 번째 커스텀 모드 VPC 네트워크, IPv6 주소 범위가 있는 두 번째 서브넷, 액세스 유형이
external
로 설정됨
인스턴스를 만들 때 내부 IPv6 주소 범위로 서브넷에 연결하는 네트워크 인터페이스와 외부 주소 범위로 서브넷에 연결하는 네트워크 인터페이스를 각각 하나씩 구성합니다.
공유 VPC를 사용하는 경우 공유 서브넷에 연결된 IPv6 전용 인스턴스를 만들려면 공유 VPC 문서의 인스턴스 만들기를 참고하세요.
콘솔
인스턴스 만들기 페이지로 이동
인스턴스의 이름을 입력합니다.
IPv6 범위가 구성된 서브넷이 포함된 리전을 선택합니다.
선택사항: 이 인스턴스의 영역을 변경합니다. 모두를 선택하면 Google에서 머신 유형과 가용성을 기반으로 영역을 자동으로 선택합니다.
고급 옵션 섹션을 펼칩니다.
네트워킹을 확장하고 다음을 수행합니다.
네트워크 인터페이스 섹션에서 네트워크 인터페이스 이름을 클릭하여 네트워크 인터페이스의 설정을 수정합니다.
네트워크 및 서브네트워크에서 사용할 네트워크와 서브네트워크를 선택합니다.
IPv6 범위가 구성된 서브넷을 선택합니다. 서브넷의 IPv6 액세스 유형에 따라 인스턴스가 내부 IPv6 주소 또는 외부 IPv6 주소를 수신하는지가 결정됩니다.
IP 스택 유형에 IPv6 (단일 스택)을 선택합니다.
기본 내부 IPv6 주소에서 다음 중 하나를 선택합니다.
- 자동 할당 (/96): 새 임시 IPv6 주소 할당
- 목록에서 예약된 IPv6 주소
- 고정 내부 IPv6 주소 예약: 새 고정 IPv6 주소 할당
선택사항: 외부 IPv6 주소를 추가하려면 네트워크 인터페이스 추가를 선택합니다.
- 네트워크 및 서브네트워크에서 외부 IPv6 주소용으로 구성한 네트워크와 서브네트워크를 선택합니다.
외부 IPv6 주소에 대해 다음 중 하나를 선택합니다.
- 자동 할당: 새 임시 IPv6 주소 할당
- 목록에서 예약된 IPv6 주소
- 고정 외부 IPv6 주소 예약: 새 고정 IPv6 주소 할당
네트워크 인터페이스 수정을 완료하려면 완료를 클릭합니다.
인스턴스 생성 프로세스를 계속 진행합니다.
만들기를 클릭합니다.
gcloud
gcloud compute instances create
명령어를 사용하여 인스턴스를 만듭니다.
내부 및 외부 IPv6 주소를 모두 할당하려면 네트워크 인터페이스가 2개 이상 있는 인스턴스를 만들어야 합니다.
gcloud compute instances create INSTANCE_NAME \ --zone ZONE \ --machine-type=MACHINE_TYPE \ --create-disk=boot=yes,image='projects/IMAGE_PROJECT/global/images/IMAGE',size=SIZE \ --network-interface=network=NETWORK_INTERNAL_NAME,subnet=SUBNET_INTERNAL_NAME,stack-type=IPV6_ONLY \ --network-interface=network=NETWORK_EXTERNAL_NAME,subnet=SUBNET_EXTERNAL_NAME,stack-type=IPV6_ONLY,ipv6-network-tier=PREMIUM
다음을 바꿉니다.
INSTANCE_NAME
: 인스턴스 이름ZONE
: 인스턴스가 생성되는 영역입니다(예:europe-west1-b
). 인스턴스의 리전은 영역에서 추론됩니다.MACHINE_TYPE
: 선택사항: 인스턴스에 사용할 머신 유형입니다.IMAGE_PROJECT
: 선택사항: 이미지가 포함된 이미지 프로젝트IMAGE
: 선택사항: 다음 중 하나를 지정합니다.- OS 이미지의 특정 버전입니다(예:
debian-12-bookworm-v202410095
). - 이미지 계열이며 형식은
family/IMAGE_FAMILY
여야 합니다. 이렇게 하면 지원 중단되지 않은 최신 OS 이미지를 사용하여 인스턴스가 생성됩니다. 예를 들어family/debian-12
를 지정하면 Compute Engine이 Debian 12 이미지 계열에서 최신 버전의 OS 이미지를 사용하여 인스턴스를 만듭니다. 이미지 계열 사용에 대한 자세한 내용은 이미지 계열 권장사항을 참고하세요.
- OS 이미지의 특정 버전입니다(예:
SIZE
: 선택사항: 새 디스크 크기입니다. 값은 정수여야 합니다. 기본 측정 단위는 GiB입니다.NETWORK_EXTERNAL_NAME
또는NETWORK_INTERNAL_NAME
: 내부 또는 외부 IP 주소로 구성된 네트워크의 이름SUBNET_EXTERNAL_NAME
또는SUBNET_INTERNAL_NAME
: 인스턴스에서 사용할 내부 또는 외부 IP 주소에 대해 구성된 서브넷의 이름입니다.
REST
- 이미지를 선택합니다. 이미지 이름 또는 이미지 계열과 이미지가 포함된 프로젝트의 이름을 기록해 둡니다.
instances.insert
메서드를 사용하여 이미지 계열 또는 특정 버전의 OS 이미지로 인스턴스를 만듭니다.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
다음을 바꿉니다.
PROJECT_ID
: 인스턴스를 만들 프로젝트의 IDZONE
: 인스턴스를 만들 영역입니다.
요청 본문 예시:
{ "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE", "name": "INSTANCE_NAME", "disks": [ { "initializeParams": { "sourceImage":"projects/IMAGE_PROJECT/global/images/IMAGE" }, "boot": true } ], "networkInterfaces": [ { "subnetwork": "regions/REGION/subnetworks/SUBNET_INTERNAL", "stackType": "IPV6_ONLY" }, { "subnetwork": "regions/REGION/subnetworks/SUBNET_EXTERNAL", "stackType": "IPV6_ONLY" } ] }
다음을 바꿉니다.
MACHINE_TYPE_ZONE
: 새 인스턴스에 사용할 머신 유형이 포함된 영역MACHINE_TYPE
: 새 인스턴스의 머신 유형(사전 정의 또는 커스텀)입니다. 예를 들면c3-standard-4
입니다.INSTANCE_NAME
: 새 인스턴스의 이름입니다.IMAGE_PROJECT
: 선택사항: 이미지가 포함된 이미지 프로젝트IMAGE
: 선택사항: 다음 중 하나를 지정합니다.- OS 이미지의 특정 버전입니다(예:
debian-12-bookworm-v20241009
). - 이미지 계열이며 형식은
family/IMAGE_FAMILY
여야 합니다. 이렇게 하면 지원 중단되지 않은 최신 OS 이미지를 사용하여 인스턴스가 생성됩니다. 예를 들어family/debian-12
를 지정하면 Compute Engine이 Debian 12 이미지 계열에서 최신 버전의 OS 이미지를 사용하여 인스턴스를 만듭니다. 이미지 계열 사용에 대한 자세한 내용은 이미지 계열 권장사항을 참고하세요.
- OS 이미지의 특정 버전입니다(예:
REGION
: 서브넷의 리전입니다.SUBNET_INTERNAL
: 내부 IPv6 주소가 구성된 서브넷입니다.SUBNET_EXTERNAL
: 외부 IPv6 주소가 구성된 서브넷입니다.
인스턴스의 스택 유형 변경
기존 Compute Engine 인스턴스의 스택 유형을 변경할 수 있습니다. 스택 유형은 다음 중 하나로 설정할 수 있습니다.
- IPv4만(단일 스택)
- IPv4 및 IPv6(이중 스택)
스택 유형을 이중 스택으로 변경할 경우 인스턴스가 이중 스택 서브넷에 연결되어야 합니다. 인스턴스가 연결된 서브넷을 변경해야 하는 경우 인스턴스를 중지하고 서브넷을 변경합니다. 서브넷이 업데이트된 후 인스턴스의 IP 스택 유형을 변경할 수 있습니다.
IPv6 전용 인스턴스(미리보기)의 스택 유형은 변경할 수 없습니다.
콘솔
VM 인스턴스 페이지로 이동합니다.
IPv6 주소를 할당하려는 인스턴스 이름을 클릭합니다.
인스턴스 세부정보 페이지에서 다음 단계를 완료합니다.
- 수정을 클릭합니다.
- 네트워크 인터페이스에서 수정할 인터페이스를 확장합니다.
- IP 스택 유형 선택: IPv4만(단일 스택) 또는 IPv4 및 IPv6(이중 스택).
- 완료를 클릭합니다.
저장을 클릭합니다.
gcloud
gcloud compute instances network-interfaces update
명령어를 사용하여 인스턴스의 스택 유형을 업데이트합니다.
gcloud compute instances network-interfaces update INSTANCE_NAME \ --stack-type=STACK_TYPE \ --zone=ZONE
다음을 바꿉니다.
INSTANCE_NAME
: 인스턴스 이름입니다.STACK_TYPE
: 인스턴스의 스택 유형(IPV4_ONLY
또는IPV4_IPV6
)입니다.ZONE
: 인스턴스가 배포된 영역입니다.
REST
instances.updateNetworkInterface
메서드에 PATCH
요청을 전송하여 인스턴스의 스택 유형을 업데이트합니다.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/updateNetworkInterface
다음을 바꿉니다.
PROJECT_ID
: 인스턴스가 포함된 프로젝트의 ID입니다.ZONE
: 인스턴스가 배포된 영역입니다.INSTANCE_NAME
: 인스턴스 이름입니다.
요청 본문 예시:
{ "stackType": "STACK_TYPE", }
STACK_TYPE
을 인스턴스의 스택 유형인 IPV4_ONLY
또는 IPV4_IPV6
로 바꿉니다.
IPv6 주소로 인스턴스 템플릿 만들기
이중 스택 또는 IPv6 전용 (미리보기) 인스턴스를 만드는 데 사용할 수 있는 리전 또는 전역 인스턴스 템플릿을 만들 수 있습니다. 자세한 내용은 인스턴스 템플릿 만들기를 참고하세요.
IPv6 주소를 사용하는 인스턴스를 만드는 인스턴스 템플릿을 만들려면 Google Cloud CLI 또는 REST를 사용해야 합니다.
gcloud
리전 또는 전역 인스턴스 템플릿을 만들려면 gcloud compute instance-templates create
명령어를 사용합니다.
리전 인스턴스 템플릿을 만들려면 --instance-template-region
플래그를 사용하여 인스턴스 템플릿의 리전을 지정해야 합니다.
다음 예시에서는 전역 인스턴스 템플릿을 만듭니다.
gcloud compute instance-templates create TEMPLATE_NAME \ --subnet=SUBNET \ --stack-type=STACK_TYPE
다음을 바꿉니다.
TEMPLATE_NAME
: 템플릿의 이름입니다.SUBNET
: IPv6 서브넷 범위가 있는 서브넷입니다.STACK_TYPE
: 스택 유형입니다. 이중 스택 인스턴스의 경우 IPV4_IPV6이고 외부 IPv6 주소가 있는 인스턴스의 경우 IPV6_ONLY입니다.
REST
리전 인스턴스 템플릿을 만들려면 regionInstanceTemplates.insert
메서드를 사용하거나 전역 인스턴스 템플릿을 만들려면 instanceTemplates.insert
메서드를 사용합니다.
다음 예시에서는 전역 인스턴스 템플릿을 만듭니다.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
PROJECT_ID
를 프로젝트 ID로 바꿉니다.
요청 본문 예시:
{ "name": "INSTANCE_TEMPLATE_NAME" "properties": { "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "subnetwork": "regions/REGION/subnetworks/SUBNET", "stackType": "STACK_TYPE", }, ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "initializeParams": { "sourceImage": "IMAGE_URI" } } ] } }
다음을 바꿉니다.
INSTANCE_TEMPLATE_NAME
: 인스턴스 템플릿의 이름입니다.MACHINE_TYPE
: 인스턴스의 머신 유형입니다. 예를 들면c3-standard-4
입니다.SUBNET
: IPv6 서브넷 범위가 있는 서브넷입니다.REGION
: 서브넷의 리전입니다.IMAGE_URI
: 사용하려는 이미지의 URI입니다.예를 들어
"sourceImage": "projects/debian-cloud/global/images/family/debian-12"
을 지정하면 Compute Engine은 Debian 12 이미지 계열의 최신 버전 운영체제 이미지에서 인스턴스를 만듭니다.
요청 매개변수에 대한 자세한 내용은 instanceTemplates.insert
메서드를 참고하세요.