전공영역 공부 기록

AWS VPC IPv6->IPv4 통신 방법

악분 2024. 3. 2. 14:18
반응형

https://youtu.be/iyLChKT47J4

 

1. IPv6->IPv6 통신

AWS IPv6주소를 갖는 클라이언트가 IPv6 통신하려면, IPv4처럼 Internet gateway 사용하면 됩니다. 라우팅 테이블은 모든 IPv6(::/0) 대해 Internget gateway 사용하도록 설정합니다.

 

2. IPv6->Ipv4 통신 문제

IPv6->IPv4 아쉽지만 IPv6->IPv6처럼 Internet gateway만 사용하여 통신이 불가능합니다. Internget gateway IPv6->IPv4프로토콜 변환기능이 없기 때문입니다.

 

3. IPv6->IPv4 통신 오류 수정방법

IPv6->IPv4 통신을 가능하게 하려면 IPv6->IPv4 프로토콜 변환 과정을 추가해야 합니다. 프로토콜 변환은 Nat Gateway가 담당합니다. 

 

그러므로, IPv6 IPv4로 통신을 때는 Nat Gateway 처리하도록 라우팅 테이블 설정이 필요합니다. 라우팅 규칙은 목적지 IP 64:ff9b::/96 Nat Gateway 설정해주세요. 64:ff9b::/96 목적지는 AWS VPC 정한 규칙입니다. 공식문서 참고해주세요.

 

4. IPv6->IPv4 통신 테스트

라우팅 테이블 설정이 끝났으니, 이제 IPv6 클라이언트에서 IPv4 호출해보겠습니다. 테스트 환경은 아래 그림과 같습니다. 테스트 환경은 테라폼으로 구축했고 저의 github repo 공개되어 있습니다.

 

 

IPv6->IPv4통신을 하기 위해서는 IPv4주소 변환이 필요합니다. 기존 IPv4 주소는 라우팅 테이블 64:ff9b::/96 목적지에 맞지 않기 때문에, IPv6->IPv4통신이 Nat Gateway 전달이 되지 않습니다. 따라서 IPv4주소를 IPv6 변환이 필요합니다. 변환 방법은 IPv4주소를 16진수로 변환하고 라우팅 규칙에 설정한 IPv6 64:ff9b:: prefix 추가하면 됩니다.

 

예를 들어 3.36.112.205 16진수로 변환하면 0x03, 0x24, 0x70, 0xcd입니다. ChatGPT 사용하면 쉽게 변환할 있습니다.

 

그리고 IPv4 16진수를 사용하여 IPv6주소로 변환하면 64:ff9b::324:70cd 됩니다. 변환한 주소로 http 요청을 하면 응답이 옵니다.

curl [64:ff9b::324:70cd];echo

반응형