DNS64 및 NAT64 - Amazon Virtual Private Cloud

DNS64 및 NAT64

NAT 게이트웨이는 IPv6에서 IPv4로의 네트워크 주소 변환을 지원합니다(일반적으로 NAT64라고 함). NAT64는 IPv6 AWS 리소스가 동일한 VPC 또는 다른 VPC, 온프레미스 네트워크 또는 인터넷을 통해 IPv4 리소스와 통신하도록 지원합니다. Amazon Route 53 Resolver 기반 DNS64를 포함하여 NAT64를 사용하거나 자체 DNS64 서버를 사용할 수 있습니다.

DNS64란 무엇입니까?

VPC에서 실행되는 IPv6 전용 워크로드는 IPv6 네트워크 패킷만 보내고 받을 수 있습니다. DNS64 없이는 IPv4 전용 서비스에 대한 DNS 쿼리는 응답으로 IPv4 대상 주소를 출력하며 IPv6 전용 서비스와 통신할 수 없습니다. 이러한 통신 격차를 해소하기 위해 서브넷에 대해 DNS64를 활성화하면 서브넷 내의 모든 해당 AWS 리소스에 적용됩니다. DNS64에서는 Amazon Route 53 Resolver가 쿼리한 서비스에 대한 DNS 레코드를 조회하고 다음 중 하나를 수행합니다.

  • 레코드에 IPv6 주소가 포함되어 있으면 원래 레코드를 반환하고 IPv6을 통한 변환 없이 연결이 설정됩니다.

  • DNS 레코드의 대상과 연결된 IPv6 주소가 없는 경우 Route 53 Resolver는 레코드의 IPv4 주소에 대하여 RFC6052(64:ff9b::/96)에 정의된 잘 알려진 /96 접두사를 가장하여 주소를 합성합니다. IPv6 전용 서비스는 네트워크 패킷을 합성된 IPv6 주소로 보냅니다. 그런 다음 NAT 게이트웨이를 통해 이 트래픽을 라우팅해야 합니다. 이 게이트웨이는 트래픽에 대해 필요한 변환을 수행하여 서브넷의 IPv6 서비스가 해당 서브넷 외부의 IPv4 서비스에 액세스할 수 있도록 합니다.

AWS CLI로 modify-subnet-attribute를 사용하거나 서브넷을 선택하고 작업(Actions) > 서브넷 설정 편집(Edit subnet settings)을 선택하여 VPC 콘솔에서 서브넷의 DNS64를 사용 또는 사용 중지할 수 있습니다.

NAT64란 무엇입니까?

NAT64를 사용하면 Amazon VPC의 IPv6 전용 서비스가 동일한 VPC(다른 서브넷에 있음) 또는 연결된 VPC, 온프레미스 네트워크 또는 인터넷을 통해 IPv4 전용 서비스와 통신할 수 있습니다.

NAT64는 기존 NAT 게이트웨이 또는 새로 만든 NAT 게이트웨이에서 자동으로 사용할 수 있습니다. 이 기능을 활성화하거나 비활성화할 수 없습니다. NAT 게이트웨이가 있는 서브넷은 이중 스택 서브넷이 아니어도 NAT64가 작동합니다.

DNS64를 사용하도록 설정한 후 IPv6 전용 서비스가 NAT 게이트웨이를 통해 합성된 IPv6 주소로 네트워크 패킷을 전송하면 다음과 같은 일이 발생합니다.

  • 64:ff9b::/96 접두사에서 NAT 게이트웨이는 원래 대상이 IPv4임을 인식하고 다음을 대체하여 IPv6 패킷을 IPv4로 변환합니다.

    • 인터넷 게이트웨이에 의해 탄력적 IP 주소로 변환되는 자체 프라이빗 IP가 있는 소스 IPv6

    • 64:ff9b::/96 접두사를 잘라서 대상 IPv6에서 IPv4로 연결합니다.

  • NAT 게이트웨이는 인터넷 게이트웨이, 가상 프라이빗 게이트웨이 또는 전송 게이트웨이를 통해 변환된 IPv4 패킷을 대상으로 전송하고 연결을 시작합니다.

  • IPv4 전용 호스트는 IPv4 응답 패킷을 다시 반환합니다. 연결이 설정된 후 NAT 게이트웨이는 외부 호스트에서 응답 IPv4 패킷을 수락합니다.

  • 응답 IPv4 패킷은 NAT 게이트웨이로 향합니다. 이 게이트웨이는 IP(대상 IP)를 호스트의 IPv6 주소로 바꾸고 소스 IPv4 주소 패킷을 64:ff9b::/96로 다시 가장하여 패킷을 수신합니다. 그런 다음 패킷은 로컬 경로를 따라 호스트로 흐릅니다.

이러한 방식으로 NAT 게이트웨이를 사용하면 서브넷의 IPv6 전용 워크로드가 서브넷 외부의 IPv4 전용 서비스와 통신할 수 있습니다.

DNS64 및 NAT64 구성

이 단원의 단계에 따라 IPv4 전용 서비스와의 통신을 사용하도록 DNS64 및 NAT64를 구성합니다.

AWS CLI를 통해 인터넷에서 IPv4 전용 서비스와의 통신을 활성화합니다.

서브넷 외부의 IPv4 전용 서비스와 통신해야 하는 IPv6 전용 워크로드를 포함한 서브넷이 있는 경우, 이 예에서는 이러한 IPv6 전용 서비스가 인터넷에서 IPv4 전용 서비스와 통신하도록 설정하는 방법을 보여 줍니다.

먼저 퍼블릭 서브넷(IPv6 전용 워크로드가 포함된 서브넷과는 별개)에서 NAT 게이트웨이를 구성해야 합니다. 예를 들어 NAT 게이트웨이가 포함된 서브넷에는 인터넷 게이트웨이를 가리키는 0.0.0.0/0 경로가 있어야 합니다.

이러한 IPv6 전용 서비스가 인터넷에서 IPv4 전용 서비스에 연결할 수 있도록 하려면 다음 단계를 완료하세요.

  1. IPv6 전용 워크로드가 포함된 서브넷의 라우팅 테이블에 다음 세 가지 경로를 추가합니다.

    • NAT 게이트웨이를 가리키는 IPv4 경로(있는 경우).

    • NAT 게이트웨이를 가리키는 64:ff9b::/96 경로. 이렇게 하면 IPv4 전용 서비스로 향하는 IPv6 전용 워크로드의 트래픽이 NAT 게이트웨이를 통해 라우팅될 수 있습니다.

    • 송신 전용 인터넷 게이트웨이(또는 인터넷 게이트웨이)를 가리키는 IPv6 ::/0 경로.

    참고로 ::/0이 인터넷 게이트웨이를 가리키면 외부 IPv6 호스트(VPC 외부)가 IPv6을 통한 연결을 시작할 수 있습니다.

    aws ec2 create-route --route-table-id rtb-34056078 --destination-cidr-block 0.0.0.0/0 --nat-gateway-id nat-05dba92075d71c408

    aws ec2 create-route --route-table-id rtb-34056078 --destination-ipv6-cidr-block 64:ff9b::/96 --nat-gateway-id nat-05dba92075d71c408

    aws ec2 create-route --route-table-id rtb-34056078 --destination-ipv6-cidr-block ::/0 --egress-only-internet-gateway-id eigw-c0a643a9
  2. IPv6 전용 워크로드가 포함된 서브넷에서 DNS64 기능을 활성화합니다.

    aws ec2 modify-subnet-attribute --subnet-id subnet-1a2b3c4d --enable-dns64

이제 프라이빗 서브넷의 리소스가 인터넷의 IPv4 및 IPv6 서비스와 상태 저장 연결을 설정할 수 있습니다. 64:ff9b::/96 트래픽에 대한 송신 및 수신 트래픽을 허용하도록 보안 그룹 및 NACL을 적절히 구성합니다.

온프레미스 환경에서 IPv4 전용 서비스와의 통신 사용

Amazon Route 53 Resolver를 사용하면 VPC를 온프레미스 네트워크로 또는 그 반대로 DNS 쿼리를 전달할 수 있습니다. 이를 위해 다음 정책을 사용할 수 있습니다.

  • VPC에 Route 53 Resolver 아웃바운드 엔드포인트를 생성하고 Route 53 Resolver가 쿼리를 전달할 IPv4 주소를 할당합니다. 온프레미스 DNS 해석기의 경우 이 주소는 DNS 쿼리가 시작되는 IP 주소이므로 IPv4 주소여야 합니다.

  • Route 53 Resolver가 온프레미스 해석기에 전달할 DNS 쿼리의 도메인 이름을 지정하는 규칙을 하나 이상 만듭니다. 또한 온프레미스 해석기의 IPv4 주소를 지정합니다.

  • 이제 Route 53 Resolver 아웃바운드 엔드포인트를 설정했으므로 IPv6 전용 워크로드가 포함된 서브넷에서 DNS64를 활성화하고 NAT 게이트웨이를 통해 온프레미스 네트워크를 대상으로 하는 모든 데이터를 라우팅해야 합니다.

온프레미스 네트워크의 IPv4 전용 대상에서 DNS64 작동 방식:

  1. VPC의 Route 53 Resolver 아웃바운드 엔드포인트에 IPv4 주소를 할당합니다.

  2. IPv6 서비스의 DNS 쿼리는 IPv6을 통한 Route 53 Resolver로 이동합니다. Route 53 Resolver는 전달 규칙과 쿼리를 일치시키고 온프레미스 해석기의 IPv4 주소를 가져옵니다.

  3. Route 53 Resolver는 쿼리 패킷을 IPv6에서 IPv4로 변환하여 아웃바운드 엔드포인트로 전달합니다. 엔드포인트의 각 IP 주소는 DNS 해석기의 온프레미스 IPv4 주소로 요청을 전달하는 하나의 ENI를 나타냅니다.

  4. 온프레미스 해석기는 IPv4를 사용하여 아웃바운드 엔드포인트를 통해 Route 53 Resolver로 응답 패킷을 다시 보냅니다.

  5. 쿼리가 DNS64 지원 서브넷에서 수행되었다고 가정하면 Route 53 Resolver는 다음 두 가지 작업을 수행합니다.

    1. 응답 패킷의 내용을 확인합니다. 레코드에 IPv6 주소가 있는 경우 콘텐츠는 그대로 유지되지만 IPv4 레코드만 포함된 경우에는 IPv4 주소에 대하여 64:ff9b::/96을 가장하여 IPv6 레코드도 합성합니다.

    2. 콘텐츠를 다시 패키징하여 IPv6을 통해 VPC 서비스로 전송합니다.