본문 바로가기
카테고리 없음

GCP IPv6 전용 워크로드를 IPv4로 연결하는 구성 가이드

by 나의공간만들기 2026. 1. 3.

    [ 목차 ]

Google Cloud에서 IPv6 전용 환경을 구축할 때 IPv4 기반 서비스에 접근해야 하는 요구가 자주 발생합니다.
IPv4를 제거하고 IPv6만 사용하는 환경을 구성하는 것이 장기적으로 필요한데, 이때 DNS64와 NAT64를 함께 구성하면 IPv6 전용 인스턴스에서 IPv4 서비스에 접근하도록 할 수 있습니다.

GCP IPv6 전용 워크로드를 IPv4로 연결하는 구성 가이드
GCP IPv6 전용 워크로드를 IPv4로 연결하는 구성 가이드

1. 개요

IPv6 전용 환경에서는 IPv4 주소가 없기 때문에 IPv4 기반 서비스의 DNS 조회가 불가능합니다. 이를 해결하기 위해 Google Cloud는 두 가지 기능을 제공합니다.

  • DNS64 : IPv4 전용 서비스 이름을 질의하면, 자동으로 합성된 IPv6 주소를 반환합니다.
  • NAT64 : 그 합성된 IPv6 주소로 들어온 트래픽을 실제 IPv4 네트워크로 변환(트랜슬레이트) 해 줍니다.

즉, DNS64는 이름 → 주소를 만들어주는 역할을 하고, NAT64는 그 패킷을 IPv4로 변환해주는 역할을 합니다.

2. 준비 조건

아래 조건이 만족되어야 합니다.

  • Custom 모드 VPC 네트워크
    IPv6 전용 서브넷을 만들기 위해 Custom 모드 네트워크가 필요합니다.
  • IPv6 전용 서브넷을 사용할 것이므로 서브넷에 IPv6 주소 범위가 할당되어야 합니다.
  • 적절한 IAM 권한이 필요합니다.
    특히 dns.policies.create, compute.networks.create, compute.routers.create 등이 있어야 작업 가능합니다.

3. VPC 및 IPv6 전용 서브넷 만들기

먼저 네트워크와 서브넷을 준비합니다. Terraform 또는 gcloud CLI로 진행할 수 있으며, 여기서는 gcloud 기준입니다.

VPC 네트워크 생성

gcloud compute networks create ipv6-nat64-vpc \
  --project=PROJECT_ID \
  --subnet-mode=custom \
  --mtu=1500 \
  --bgp-routing-mode=regional

IPv6 전용 서브넷 생성

gcloud compute networks subnets create ipv6-only-subnet \
  --network=ipv6-nat64-vpc \
  --region=us-central1 \
  --stack-type=IPV6_ONLY \
  --ipv6-access-type=EXTERNAL

이렇게 구성하면 IPv6 전용 서브넷이 생성됩니다. 이 서브넷에 할당되는 인스턴스는 기본적으로 IPv6만 할당받습니다.

4. IPv6 전용 VM 인스턴스 생성

이 서브넷에 VM 인스턴스를 생성합니다.

gcloud compute instances create v6-only-vm \
  --project=PROJECT_ID \
  --zone=us-central1-a \
  --subnet=ipv6-only-subnet \
  --stack-type=IPV6_ONLY \
  --machine-type=e2-medium

이 인스턴스는 IPv6만 가지고 있으며, 직접적으로 IPv4 서비스를 호출할 수 없습니다.

5. DNS64 서버 정책 구성

IPv6 전용 환경에서도 IPv4 이름을 IPv6 주소로 바꿔주는 DNS64 정책을 구성해야 합니다.

DNS64 정책 생성

gcloud dns policies create dns64-policy \
  --project=PROJECT_ID \
  --networks=ipv6-nat64-vpc \
  --description="Enable DNS64 for IPv6-only workloads" \
  --enable-dns64-all-queries

위 정책은 이 VPC 내에서 DNS 쿼리가 있을 때 IPv4 전용 서비스의 A 레코드를 AAAA로 합성해서 반환합니다.

6. NAT64 게이트웨이 구성

DNS64는 주소를 합성하지만, 실제로 패킷을 IPv4로 보내려면 NAT64가 필요합니다.

1) Cloud Router 생성

gcloud compute routers create nat64-router \
  --project=PROJECT_ID \
  --network=ipv6-nat64-vpc \
  --region=us-central1

2) NAT64 지원 Cloud NAT 생성

 
gcloud beta compute routers nats create nat64-gateway \
  --router=nat64-router \
  --region=us-central1 \
  --project=PROJECT_ID \
  --auto-allocate-nat-external-ips \
  --nat64-all-v6-subnet-ip-ranges

이렇게 구성하면 IPv6 전용 인스턴스에서 온 트래픽이 NAT64 게이트웨이를 통해 IPv4로 변환되어 외부 IPv4 서비스에 접근할 수 있습니다.

7. 확인 및 테스트

구성이 완료되면 테스트를 해 봅니다. IPv6 전용 VM 안에서 다음 명령을 실행합니다.

curl http://ipv4-only-service.example.com

DNS64 정책 덕분에 IPv4 서비스 도메인이 AAAA로 합성되어 돌아오고
NAT64가 그 패킷을 IPv4로 변환하여 정상적으로 응답이 와야 합니다.

만약 연결이 안 된다면 다음을 점검합니다.

  • DNS64 정책이 올바르게 적용된 VPC인지 확인
  • NAT64 게이트웨이가 생성되었는지 확인
  • 방화벽 규칙에서 IPv6 아웃바운드를 허용했는지 확인

8. 제한 사항

DNS64 + NAT64 환경에서도 VPC 내부의 IPv4 전용 서비스에는 기본적으로 접근이 되지 않습니다. 이는 Google Cloud의 NAT64가 외부 인터넷 접근만 지원하기 때문입니다.

9. 결론

이 가이드는 Google Cloud에서 IPv6 전용 워크로드가 IPv4 서비스에 접근할 수 있게 하는 구성을 다룹니다. 기본적으로 다음과 같이 구성합니다.

  1. IPv6 전용 서브넷과 VM 생성
  2. DNS64 정책으로 IPv4 도메인을 IPv6로 합성
  3. NAT64 게이트웨이로 IPv6 → IPv4 트래픽 변환

이 구성을 통해 IPv4 주소 없이도 IPv4 전용 서비스와 통신하도록 할 수 있습니다.