인스턴스 및 인스턴스 템플릿에 IPv6 구성


VM이 연결된 서브넷에 IPv6 범위가 구성된 경우 가상 머신(VM) 인스턴스에 IPv6 주소를 구성할 수 있습니다.

IPv6에 대한 자세한 내용은 IPv6 서브넷 범위를 참조하세요.

사양

  • IPv4 및 IPv6 구성을 모두 포함하는 VM은 이중 스택입니다. 이중 스택 VM의 인터페이스에는 IPv6 주소의 단일 /96 범위가 할당됩니다. 범위에서 첫 번째 IPv6 주소(/128)는 인터페이스에 구성됩니다. IPv6 주소는 인터페이스에 구성된 IPv4 주소에 추가로 제공됩니다. IPv6 주소만 사용하도록 VM을 구성할 수 없습니다.

  • 모든 VM 인스턴스에 IPv6 주소를 구성할 수 있습니다. 다중 네트워크 인터페이스 구성에 대한 자세한 내용은 다중 네트워크 인터페이스 개요를 참조하세요.

  • VM 인터페이스에 IPv6 주소를 구성하려면 인터페이스가 이중 스택 서브넷에 연결되어 있어야 합니다.

  • 서브넷의 IPv6 액세스 유형 구성에 따라 서브넷에 내부 또는 외부 IPv6 범위가 포함되는지 결정됩니다. 연결된 VM은 서브넷에서 IPv6 액세스 유형을 상속합니다.

IPv6 주소를 사용하여 VM에 액세스

암시적 IPv6 거부 인그레스 방화벽 규칙은 해당 IPv6 주소로 들어오는 연결을 차단하여 인스턴스를 보호합니다. IPv6 주소를 사용하여 VM에 액세스하려면 수신 액세스를 허용하는 우선순위가 더 높은 규칙이 있어야 합니다.

방화벽 규칙에 대한 자세한 내용은 VPC 방화벽 개요계층식 방화벽 정책 개요를 참조하세요.

VPC 방화벽 규칙 예시는 일반적인 사용 사례에 대한 방화벽 규칙 구성을 참조하세요.

IPv6 주소 할당

  • VM에는 DHCPv6을 사용하여 IPv6 주소가 할당됩니다. 메타데이터 서버는 VM의 DHCPv6 요청에 응답하고 응답에서 할당된 /96 범위의 첫 번째 IPv6 주소(/128)를 전송합니다.

  • 메타데이터 서버는 경로 공지를 사용하여 기본 경로를 VM에 게시합니다. 그런 후 VM은 모든 IPv6 트래픽에 이 기본 경로를 사용할 수 있습니다.

    gateway-ipv6 항목에 대해 메타데이터 서버를 쿼리하여 VM 인스턴스의 기본 경로를 찾을 수 있습니다.

    curl http://metadata.google.internal/computeMetadata/v1/instance/network-interfaces/0/gateway-ipv6 -H "Metadata-Flavor: Google"
    

    메타데이터 서버에 대한 자세한 내용은 VM 메타데이터 쿼리를 참조하세요.

  • VM은 fe80::/10 범위에서 할당된 링크 로컬 IP 주소로 구성되지만 이웃 검색에만 사용됩니다.

  • VM 네트워크 인터페이스의 MTU 구성은 IPv4 및 IPv6 패킷 모두에 적용되지만 모든 상황에서 모든 MTU 값이 지원되지는 않습니다. 자세한 내용은 최대 전송 단위 개요를 참조하세요.

이중 스택 VM 만들기

이중 스택 VM을 만들려면 VM을 이중 스택 서브넷에 연결합니다.

공유 VPC를 사용하는 경우 공유 서브넷에 연결된 이중 스택 VM을 만들려면 공유 VPC 문서의 인스턴스 만들기를 참조하세요.

콘솔

  1. 인스턴스 만들기 페이지로 이동

    인스턴스 만들기로 이동

  2. 인스턴스의 이름을 입력합니다.

  3. IPv6 범위가 구성된 서브넷을 포함하는 리전을 선택합니다.

  4. 영역을 선택합니다.

  5. 고급 옵션 섹션을 펼칩니다.

  6. 네트워킹을 확장하고 다음을 수행합니다.

    1. 네트워크 인터페이스 섹션에서 네트워크 인터페이스를 확장하여 수정합니다.

    2. 네트워크서브네트워크에서 사용할 네트워크와 서브네트워크를 선택합니다.

      IPv6 범위가 구성된 서브넷을 선택합니다. 서브넷의 IPv6 액세스 유형에 따라 VM이 내부 IPv6 주소 또는 외부 IPv6 주소를 수신하는지가 결정됩니다.

    3. IP 스택 유형IPv4 및 IPv6(이중 스택)을 선택합니다.

    4. 기본 내부 IP에 대해 다음 중 하나를 선택합니다.

      • 임시: 새 임시 IPv4 주소 할당
      • 목록에서 예약된 IPv4 주소
      • 고정: 새 고정 IPv4 주소 할당
    5. 외부 IPv4 주소에 대해 다음 중 하나를 선택합니다.

      • 임시: 새 임시 IPv4 주소 할당
      • None(없음): 외부 IPv4 주소를 할당하지 않음
      • 목록에서 예약된 IPv4 주소
      • 새 IP 주소 만들기: 새 고정 IPv4 주소 할당
    6. 네트워크 인터페이스 수정을 완료하려면 완료를 클릭합니다.

  7. VM 만들기 프로세스를 계속 진행합니다.

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

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

  1. 이미지를 선택합니다. 이미지 이름 또는 이미지 계열과 이미지가 포함된 프로젝트의 이름을 기록해 둡니다.
  2. instances.insert 메서드를 사용하여 이미지 계열 또는 특정 버전의 OS 이미지로 VM을 만듭니다.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
    

    다음을 바꿉니다.

    • PROJECT_ID: VM을 만들 프로젝트의 ID
    • ZONE: VM을 만들 영역입니다.

    요청 본문 예시:

    {
     "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: 새 VM에 사용할 머신 유형이 포함된 영역입니다.
    • MACHINE_TYPE: 새 VM의 머신 유형(사전 정의 또는 커스텀)입니다. 예를 들면 n1-standard-1입니다.
    • INSTANCE_NAME: 새 VM의 이름입니다.
    • SUBNET: IPv6가 구성된 서브넷입니다.
    • REGION: 서브넷의 리전입니다.
    • IMAGE_URI: 사용하려는 이미지의 URI입니다.

      예를 들어 "sourceImage": "projects/debian-cloud/global/images/family/debian-10"을 지정하면 Compute Engine이 Debian 10 이미지 계열에서 최신 버전의 OS 이미지를 사용하여 VM을 만듭니다.

VM의 스택 유형 변경

기존 VM의 스택 유형을 변경할 수 있습니다. 스택 유형은 다음 중 하나로 설정할 수 있습니다.

  • IPv4만(단일 스택)
  • IPv4 및 IPv6(이중 스택)

스택 유형을 이중 스택으로 변경할 경우 VM이 이중 스택 서브넷에 연결되어야 합니다. VM이 연결된 서브넷을 변경해야 할 경우 VM을 중지하고 서브넷을 변경합니다. 서브넷이 업데이트된 후 VM의 IP 스택 유형을 변경할 수 있습니다.

콘솔

  1. VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. IPv6 주소를 할당하려는 인스턴스 이름을 클릭합니다.
  3. 인스턴스 세부정보 페이지에서 다음 단계를 완료합니다.
    1. 수정을 클릭합니다.
    2. 네트워크 인터페이스에서 수정할 인터페이스를 확장합니다.
    3. IP 스택 유형 선택: IPv4만(단일 스택) 또는 IPv4 및 IPv6(이중 스택).
    4. 완료를 클릭합니다.
  4. 저장을 클릭합니다.

gcloud

gcloud compute instances network-interfaces update 명령어를 사용하여 VM의 스택 유형을 업데이트합니다.

gcloud compute instances network-interfaces update INSTANCE_NAME \
  --stack-type=STACK_TYPE \
  --zone=ZONE

다음을 바꿉니다.

  • INSTANCE_NAME: 인스턴스 이름입니다.
  • ZONE: 인스턴스가 배포된 영역입니다.
  • STACK_TYPE: VM의 스택 유형(IPV4_ONLY 또는 IPV4_IPV6)입니다.

REST

instances.updateNetworkInterface 메서드에 대해 PATCH 요청을 수행하여 VM의 스택 유형을 업데이트합니다.

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONEinstances/INSTANCE_NAME/updateNetworkInterface

다음을 바꿉니다.

  • PROJECT_ID: 인스턴스가 포함된 프로젝트의 ID입니다.
  • ZONE: 인스턴스가 배포된 영역입니다.
  • INSTANCE_NAME: 인스턴스 이름

요청 본문 예시:

{
  "stackType": "STACK_TYPE",
}

STACK_TYPE을 VM의 스택 유형인 IPV4_ONLY 또는 IPV4_IPV6로 바꿉니다.

IPv6 주소로 인스턴스 템플릿 만들기

이중 스택 VM을 만드는 데 사용할 수 있는 리전 또는 전역 인스턴스 템플릿을 만들 수 있습니다. 자세한 내용은 인스턴스 템플릿 만들기를 참조하세요.

이중 스택 VM을 만드는 인스턴스 템플릿을 만들려면 Google Cloud CLI 또는 REST를 사용해야 합니다.

gcloud

리전 또는 전역 인스턴스 템플릿을 만들려면 gcloud compute instance-templates create 명령어를 사용합니다. 리전 인스턴스 템플릿을 만들려면 --instance-template-region 플래그를 사용하여 인스턴스 템플릿의 리전을 지정해야 합니다.

다음 예시에서는 전역 인스턴스 템플릿을 만듭니다.

gcloud compute instance-templates create TEMPLATE_NAME \
    --subnet=SUBNET \
    --stack-type=IPV4_IPV6

다음을 바꿉니다.

  • TEMPLATE_NAME: 템플릿의 이름입니다.
  • SUBNET: IPv6 서브넷 범위가 있는 서브넷입니다.

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": "IPV4_IPV6",
      },
    ],
    "disks":
    [
      {
        "type": "PERSISTENT",
        "boot": true,
        "mode": "READ_WRITE",
        "initializeParams":
        {
          "sourceImage": "IMAGE_URI"
        }
      }
    ]
  }
}

다음을 바꿉니다.

  • INSTANCE_TEMPLATE_NAME: 인스턴스 템플릿의 이름입니다.
  • MACHINE_TYPE: VM의 머신 유형입니다. 예를 들면 n1-standard-1입니다.
  • SUBNET: IPv6 서브넷 범위가 있는 서브넷입니다.
  • REGION: 서브넷의 리전입니다.
  • IMAGE_URI: 사용하려는 이미지의 URI입니다.

    예를 들어 "sourceImage": "projects/debian-cloud/global/images/family/debian-10"을 지정하면 Compute Engine이 Debian 10 이미지 계열에서 최신 버전의 OS 이미지를 사용하여 VM을 만듭니다.

요청 매개변수에 대한 자세한 내용은 instanceTemplates.insert 메서드를 참조하세요.