NAT64 및 DNS64
일부 셀룰러 네트워크는 Reliance Jio의 상당 부분인 T-Mobile US와 같이 수년 동안 IPv6 전용을 실행해 왔습니다. 사용자는 여전히 나머지 웹과 마찬가지로 IPv4 사이트에 접속합니다. 변환은 IPv4와 IPv6 세계를 연결하는 한 쌍의 기술인 NAT64와 DNS64를 통해 이루어집니다. IPv6 전환의 조용한 중간 행위를 어떻게 명확하게 이해합니다.
전체 기사 본문은 아래에 영어로 제공됩니다.
NAT64 및 DNS64는 IPv6 전용 클라이언트가 IPv4 전용 서버에 연결할 수 있게 해주는 기술입니다. 이를 통해 네트워크는 인터넷의 IPv4 부분에 대한 액세스를 잃지 않고 IPv6 전용을 배포할 수 있습니다. T-Mobile US, 기타 여러 주요 이동통신사 및 많은 기업 네트워크는 프로덕션에서 이 패턴을 사용합니다.
그들이 해결하는 문제
IPv4에서 IPv6로의 전환은 점진적이었습니다. 많은 서버가 여전히 IPv4 전용입니다. 네트워크가 IPv6 전용으로 실행되는 경우 프로토콜이 이전 버전과 호환되지 않기 때문에 클라이언트가 해당 서버에 직접 연결할 수 없습니다.
순진한 대답은 듀얼 스택입니다. 모든 장치에는 IPv4 및 IPv6 주소가 모두 있습니다. 듀얼 스택은 작동하지만 두 개의 병렬 네트워크 스택을 무기한 유지해야 합니다. 일부 네트워크는 단일 스택 IPv6을 사용하고 나머지 IPv4 범위에 대해 변환을 사용하기로 결정했습니다.
NAT64 작동 방식
NAT64는 네트워크 경계의 상태 저장 변환기입니다.
- IPv6 전용 네트워크에 연결된 IPv6 인터페이스
- IPv4 인터넷에 연결된 IPv4 인터페이스(IPv4 주소 풀 포함)
- A 변환 테이블은 IPv6 소스를 할당된 IPv4 포트에 매핑
IPv6 클라이언트가 IPv4에 연결하려고 할 때 server:
- 클라이언트는 IPv4 대상을 인코딩하는 특수 IPv6 주소로 IPv6 패킷을 보냅니다.
- NAT64 변환기는 IPv6 인터페이스에서 패킷을 수신합니다.
- IPv6 주소에서 IPv4 대상을 추출하고 IPv4 풀에서 포트를 할당한 다음 할당된 IPv4 소스가 있는 IPv4 패킷으로 패킷을 다시 씁니다. port.
- 패킷은 정상적으로 IPv4 대상으로 흐릅니다.
- 응답 패킷은 NAT64의 IPv4 인터페이스로 돌아옵니다.
- NAT64는 매핑을 조회하고 IPv6 패킷을 재구성한 후 클라이언트로 다시 전달합니다.
개념적으로 NAT44와 유사합니다(일반
IPv4
NAT64가 내장된 IPv6 주소는 마지막 32비트에 IPv4 주소가 내장된 특정 IPv6 접두사(잘 알려진 접두사는 64:ff9b::/96)를 사용합니다.
- 를 통해 198.51.100.42에 도달합니다. NAT64의 경우 클라이언트는 주소 64:ff9b::c633:642a(마지막 32비트는 198.51.100.42를 16진수로 인코딩함)를 사용합니다.
클라이언트는 이것이 변환인지 알 필요가 없으며 단지 IPv6 주소만 볼 수 있습니다. 하지만 클라이언트는 이 특수 주소를 어디서 얻나요?
DNS64가 공백을 메웁니다
대부분의 클라이언트는 IP 주소에 직접 연결하지 않고 DNS를 통해 호스트 이름에 연결합니다. DNS64는 합성을 처리하는 수정된 DNS 확인자입니다.
- Client는 example.com에 대한 DNS를 쿼리합니다.
- DNS64 확인자는 AAAA(IPv6) 레코드를 조회합니다. 존재하는 경우 정상적으로 반환합니다.
- A(IPv4) 레코드만 존재하는 경우 DNS64는 IPv4 주소를 NAT64 접두사에 삽입하여 가짜 AAAA 레코드를 합성합니다.
- Client는 일반 AAAA 레코드처럼 보이는 것을 반환합니다.
- Client는 IPv6 주소에 연결합니다.
- 패킷은 NAT64를 통해 흐릅니다. 그리고 IPv4로 변환됩니다.
클라이언트는 이에 대해 전혀 인식하지 못합니다. IPv6를 보고, IPv6를 보내고, IPv6으로 응답을 받습니다. 번역은 보이지 않습니다.클라이언트 호환성을 위한
464XLAT
NAT64 + DNS64는 거의 모든 응용 프로그램에서 작동하지만 일부 응용 프로그램은 작동하지 않습니다. 특히 IPv4 리터럴(호스트 이름 아님)을 전달하는 응용 프로그램이 중단됩니다. 해결책은 464XLAT(CLAT — 고객 측 변환기):
- 클라이언트 장치는 IPv4 스택이 있는 것처럼 가장하는 CLAT를 실행합니다.
- IPv4가 필요한 앱은 CLAT와 통신하여 IPv6으로 변환됩니다.
- IPv6 패킷은 NAT64를 통과합니다. 일반적으로.
Android와 iOS는 모두 464XLAT를 지원합니다. T-Mobile US는 이 조합을 사용합니다. 결과: T-Mobile의 Android 휴대폰은 네트워크 계층에서 IPv6 전용이지만 앱은 마치 IPv4가 여전히 작동하는 것처럼 작동합니다.
배포된 위치
- T-Mobile US — 2014년부터 NAT64를 사용하여 IPv6 전용을 실행했습니다.
- Reliance Jio(인도) — IPv6 전용 배포, IPv4 대상용 NAT64.
- 많은 기업 대부분 IPv6 내부 네트워크를 갖춘 는 레거시 IPv4 전용 서비스에 NAT64를 사용합니다.
- 일부 클라우드 제공업체는 IPv6 전용 VPC용 NAT64 서비스를 제공합니다.
L제한사항
- State-heavy. 변환기는 모든 활성 연결에 대한 상태를 유지합니다. 트래픽에 따라 리소스 요구 사항이 증가합니다.
- 연결당 제한이 있습니다. 다른 NAT와 마찬가지로 포트 풀은 IPv4 주소당 동시 연결에 대한 최대값을 설정합니다.
- 일부 프로토콜은 어려움을 겪습니다. 페이로드(이전 SIP, FTP)에 IP 주소를 포함하는 프로토콜에는 애플리케이션 계층 게이트웨이가 필요합니다. 대부분의 최신 프로토콜에는 이 문제가 없습니다.
- DNS 전용 변환. DNS를 우회하고 IPv4 리터럴에 연결하는 앱에는 CLAT가 필요합니다.
- DNSSEC 합병증. 합성된 AAAA 레코드는 원본에서 서명되지 않습니다. DNSSEC를 검증하는 클라이언트는 이를 거부할 수 있습니다. 솔루션이 존재하지만 복잡성이 추가됩니다.
최종 게임
NAT64는 전환 기술입니다. 예상되는 최종 상태는 IPv4 전용 대상이 가장자리에서 처리되는 드문 예외일 만큼 충분히 보편적인 IPv6입니다. 그때까지는 NAT64 + DNS64 + 464XLAT를 통해 네트워크가 서비스 저하 없이 IPv6 전용으로 전환될 수 있습니다. 이 조합은 10년 넘게 생산되어 왔으며 진지하게 배포할 수 있을 만큼 충분히 성숙되었습니다.
자주 묻는 질문
- NAT64 뒤에 있습니까?
- T-Mobile US, Reliance Jio 또는 특정 IPv6 전용 네트워크를 사용하지 않는 한 그렇지 않을 수도 있습니다. 대부분의 홈 및 기업 네트워크는 순수 IPv6 + NAT64가 아닌 듀얼 스택(두 프로토콜 모두)입니다.
- NAT64가 성능에 영향을 미치나요?
- 겸손하게. 변환 단계에서는 마이크로초가 추가됩니다. 상태 테이블은 메모리 오버헤드를 추가합니다. 일반적인 웹 브라우징의 경우 그 영향은 측정할 수 없습니다. 연결 속도가 매우 높은 워크로드의 경우 오버헤드가 중요합니다.
- VPN이 NAT64와 작동하나요?
- 주로. 대부분의 VPN 클라이언트는 기본적으로 IPv4를 터널링합니다. NAT64는 이를 투명하게 처리합니다. 이중 NAT와 잘 작동하지 않는 일부 VPN 프로토콜에는 문제가 있을 수 있습니다. 최신 WireGuard 및 OpenVPN 구성은 이를 올바르게 처리합니다.
- 모든 네트워크가 NAT64를 사용하지 않는 이유는 무엇입니까?
- 듀얼 스택은 운영상 더 간단하고 이해하기 쉽습니다. NAT64는 IPv4가 클라이언트에 대해 여전히 작동할 때 한계 이익을 위해 복잡성을 추가합니다. NAT64를 사용하는 순수 IPv6 전용은 조직에 IPv4 주소가 충분하지 않거나 IPv6를 사용하려는 경우 주로 매력적입니다.
- NAT64와 CGNAT의 차이점은 무엇입니까?
- CGNAT는 IPv4에서 IPv4로의 변환입니다(내부 프라이빗 IPv4, 외부 공용 IPv4). NAT64는 IPv6에서 IPv4로의 변환입니다. 다양한 프로토콜 계층 둘 다 IPv4 부족을 위한 전환 기술이지만 서로 다른 문제를 해결합니다.