464XLAT ALG 트래픽 지원 이해하기
모바일 네트워크에 IPv6 응용프로그램을 배포할 때 일부 휴대폰 응용프로그램은 IPv6 전용 환경을 지원하지 않기 때문에 일부 통신사는 해당 사용자에게 IPv6 지원을 제공할 수 없습니다.
해결 방법은 NAT64 메커니즘을 사용하여 운영자 네트워크의 IPv4 전용 콘텐츠에 액세스하고 464XLAT 트래픽을 사용하여 IPv4 전용 애플리케이션이 IPv6 전용 네트워크에서 작동할 수 있도록 하는 것입니다.
464XLAT 아키텍처는 고객 측 변환기(CLAT)의 상태 비저장 변환과 공급자 측 변환기(PLAT)의 상태 저장 변환의 조합입니다. 464XLAT 아키텍처는 스테이트리스(프라이빗 IPv4 주소를 글로벌 IPv6 주소로 또는 그 반대로 변환) 및 스테이트풀(IPv6 주소를 글로벌 IPv4 주소로 또는 그 반대로 변환) 변환의 조합을 사용하여 디바이스의 패킷 정보를 변환하는 데 사용됩니다.
그림 1은 코어의 PLAT에 대한 기존의 잘 알려진 스테이트풀 프로토콜 변환과 에지의 CLAT에 대한 스테이트리스 프로토콜을 결합하여 IPv6 전용 네트워크에서 IPv4 연결을 제공하는 464XLAT 아키텍처를 보여줍니다. 프라이빗 IPv4 호스트는 CLAT 및 PLAT 변환을 통해 글로벌 IPv4 호스트에 연결할 수 있습니다. 반대로 IPv6 호스트는 변환 없이 인터넷의 다른 IPv6 호스트에 직접 연결할 수 있습니다. 즉, CPE(Customer Premises Equipment)는 CLAT를 지원할 수 있으며 네이티브 IPv6 트래픽에 대한 IPv6 네이티브 라우터로도 작동할 수 있습니다.
464XLAT ALG 기능 이해
그림 2 는 주소 변환 아키텍처를 설명하고 PLAT(Provider-Side Translator)에서의 상태 저장 변환과 CLAT(Customer Side Translator)의 상태 비저장 변환의 조합을 사용하여 디바이스의 패킷 정보가 어떻게 변환되는지 보여줍니다. 이 다이어그램에서 클라이언트는 DHCPv6-PD(DHCPv6 Prefix Delegation)와 같은 접두사 위임 메커니즘에서 IPv6 접두사를 위임받습니다. 따라서 클라이언트에는 변환을 위한 전용 IPv6 접두사가 있습니다.
PPTP, RTSP, FTP ALG도 XLAT 기능을 지원합니다.
다음 섹션에서는 디바이스가 PLAT로 작동할 때 PPTP, RTSP 및 FTP ALG가 작동하는 방식을 설명합니다.
PPTP ALG가 PLAT 역할을 하는 장치를 지원하는 방법
그림 3 은 PPTP ALG XLAT 기능을 설명합니다.
PPTP ALG는 대상 포트 기능을 위해 call_ID 사용합니다.
-
The client sends the outgoing call request (with PPTP Access Concentrator (PAC) call_ID) to the server에 추가합니다.
CLAT: 소스 주소/포트가 Ipv4_1/port1에서 Ipv6_1/port1로 변환됩니다. 그러나 페이로드 call_ID는 변경되지 않습니다.
PLAT: 소스 주소/포트 Ipv6_1/port1은 Ipv4_1'/port1'로 변환되며 NAT64 규칙과 일치합니다. 그러나 페이로드의 call_ID은 변경되지 않습니다. PPTP ALG는 server_ip/0->Ipv4_1'/call_ID(Ipv6_1/call_ID)와 같은 게이트를 생성합니다.
The first generic routing encapsulation (GRE) packet reaches the gate from the server side: 첫 번째 GRE 트래픽이 게이트에 도달하면 대상 Ipv4_1'/call_ID가 있는 서버 측의 GRE 패킷이 Ipv6_1/call_ID로 변환됩니다. 마지막으로, GRE 패킷은 CLAT 후 Ipv4_1/call_ID 클라이언트에 도달합니다.
Another special case for call_ID 0:
CLAT: 소스 주소/포트가 Ipv4_1/port1에서 Ipv6_1/port1로 변환됩니다. 그러나 페이로드 call_ID는 변경되지 않습니다.
PLAT: 소스 주소/포트 Ipv6_1/port1은 Ipv4_1'/port1'로 변환되며 NAT64 규칙과 일치합니다. 그러나 페이로드의 call_ID 0은 수동으로 65002로 변환됩니다. PPTP ALG는 server_ip/0->Ipv4_1'/65002(Ipv6_1/0)와 같은 게이트를 생성합니다.
The first GRE packet reaches the gate from the server side: 첫 번째 GRE 트래픽이 게이트에 도달하면 대상 Ipv4_1'/65002가 있는 서버 측의 GRE 패킷이 Ipv6_1/0으로 변환됩니다. 마지막으로, GRE 패킷은 CLAT 후 클라이언트 Ipv4_1/0에 도달합니다.
-
The server sends the outgoing call reply (with PPTP Network Server (PNS) and PAC call_ID) to the client:
PLAT: 소스 주소/포트 Ipv4_2/port2는 Ipv6_2/port2'로 변환되며 NAT64 규칙과 일치합니다. 그러나 페이로드의 call_ID는 변경되지 않으며 PPTP ALG는 client_v6/0->Ipv6_2/call_ID(Ipv4_2/call_ID)와 같은 게이트를 생성합니다.
CLAT: 소스 주소/포트가 Ipv6_2/port2에서 Ipv4_2/port2로 변환됩니다. 그러나 페이로드 call_ID는 변경되지 않습니다.
The first GRE packet reaches the gate from the client side: 첫 번째 GRE 트래픽이 게이트에 도달하면 대상 Ipv4_2'/call_ID가 있는 클라이언트 측의 GRE 패킷은 CLAT 후 Ipv6_2/call_ID로 변환된 다음 Ipv4_2/call_ID로 변환됩니다. 마지막으로 GRE 패킷은 PLAT 후 Ipv4_2/call_ID 서버에 도달합니다.
Another special case for call_ID 0에 추가합니다.
PLAT: 소스 주소/포트 Ipv4_2/port2는 Ipv6_2/port2'로 변환되며 NAT64 규칙과 일치합니다. 그러나 페이로드의 call_ID는 65002로 변환되고 PPTP ALG는 client_v6/0->Ipv6_2/65002(Ipv4_2/0)와 같은 게이트를 생성합니다.
CLAT: 소스 주소/포트가 Ipv6_2/port2에서 Ipv4_2/port2로 변환됩니다. 그러나 페이로드 call_ID는 변경되지 않습니다.
The first GRE packet reaches the gate from the client side: 첫 번째 GRE 트래픽이 게이트에 도달하면 대상 Ipv4_2'/65002가 있는 클라이언트 측의 GRE 패킷은 CLAT 후 Ipv6_2/65002로 변환된 다음 Ipv4_2/0으로 변환됩니다. 마지막으로, GRE 패킷은 PLAT 후 Ipv4_2/0 서버에 도달합니다.
RTSP ALG가 PLAT 역할을 하는 디바이스를 지원하는 방법
그림 4는 RTSP ALG XLAT 기능을 설명합니다.
-
The Windows Media Player on the Windows PC sends a SETUP message:
CLAT: 소스 주소/포트가 Ipv4_1/port1에서 Ipv6_1/port1로 변환됩니다. 그러나 페이로드 Ipv4_2/port3은 변경되지 않습니다.
PLAT: 소스 주소/포트 Ipv6_1/port1은 Ipv4_1'/port1'로 변환되고 NAT64 규칙과 일치하며 페이로드 port3은 port3'으로 변환됩니다. 그러나 페이로드 ULR의 IP 주소는 변경되지 않습니다.
-
The Windows Media Server on the Windows server sends a 200 OK message:
PLAT: 소스 주소/포트 Ipv4_1'/port1'이 Ipv6_1/port1로 변환되고 NAT64 규칙과 일치합니다. 그러나 페이로드의 포트 4는 변경되지 않습니다. port3'은 port3으로 변환됩니다. RTSP ALG는 대상 Ipv4_1'/port1'을 사용하여 서버 측에서 전송된 UDP 미디어 데이터를 통해 c->s Ipv6_1/port1->Ipv6_2/port3 및 s->c Ipv4_2/port4->Ipv4_1'/port3'과 같은 게이트를 생성한 다음 IP 헤더가 Ipv6_1/port1로 변환되어 게이트에 도달합니다.
CLAT: 소스 주소/포트가 Ipv6_1/port1에서 Ipv4_1/port1로 변환됩니다. 그러나 페이로드 port3/port4는 변경되지 않습니다.
-
The server sends the Real-Time Transport Protocol (RTP) over UDP media data에 추가합니다.
PLAT: RTP over UDP 미디어 데이터가 대상 Ipv4_1'/port3을 사용하여 서버 측에서 전송되면 IP 헤더가 Ipv6_1/port3으로 변환되어 게이트에 도달합니다.
CLAT: IP 헤더가 Ipv6_1/port3에서 Ipv4_1/port3으로 변환됩니다.
-
The client sends the RTP over UDP media data에 추가합니다.
CLAT: 소스 주소/포트는 Ipv4_1/port3에서 Ipv6_1/port3으로 변환되고 대상 주소는 Ipv4_2/port4에서 Ipv6_2/port4로 변환됩니다.
PLAT: 소스 주소/포트는 Ipv6_1/port3에서 Ipv4_1'/port3으로 변환되고 대상 주소는 Ipv6_2/port4에서 Ipv4_2/port4로 변환됩니다.
FTP ALG가 PLAT 역할을 하는 디바이스를 지원하는 방법
그림 5와 그림 6은 패시브 모드 및 포트 모드에서의 FTP ALG XLAT 기능을 설명합니다.
-
A 227 message enters passive mode에 추가합니다.
CLAT: 소스 주소/포트가 Ipv4_1/port1에서 Ipv6_1/port1로 변환됩니다. 그러나 페이로드에는 IP 또는 포트 정보가 포함되어 있지 않습니다.
PLAT: 소스 주소/포트 Ipv4_1'/port1'이 Ipv6_1/port1로 변환되고 NAT64 규칙과 일치합니다. 그러나 페이로드 내의 Ipv4_2/port3은 변경되지 않으며, FTP ALG는 Ipv4_1/0(Ipv6_1/0)->Ipv4_2/port3과 같은 게이트를 생성합니다.
-
The first packet reaches the gate from the client side: 트래픽이 게이트에 도달하면 대상 Ipv4_2/port3이 있는 클라이언트 측의 날짜 패킷이 Ipv6_2/port2로 변환됩니다. IP 헤더는 PLAT를 기반으로 NAT64 규칙에 의해 Ipv4_2/port3으로 변환됩니다.
-
FTP port mode sends a PORT message에 추가합니다.
CLAT: 소스 주소/포트가 Ipv4/port1에서 Ipv6/port1로 변환됩니다.
PLAT: 소스 주소/포트가 Ipv6_1/port1이 Ipv4_1'/port1'로 변환되고 NAT64 규칙과 일치합니다. 페이로드의 Ipv4_1/port2는 Ipv4_1'/port2'로 변환되고 FTP ALG는 Ipv4_1'/port2'(Ipv4_1/port2->server_ip/server_port)와 같은 게이트를 생성합니다.
-
The first packet reaches the gate from the server side: 트래픽이 게이트에 도달하면 대상 Ipv4_1'/port2'가 있는 서버 측의 첫 번째 패킷이 Ipv6_1/port2로 변환됩니다. 마지막으로, 패킷은 CLAT 전에 클라이언트 Ipv4_1/port2에 도달합니다.