개발 기록일지

IPV6 -> IPV4 통신 방법 본문

프로그래밍/Linux,ShellScript

IPV6 -> IPV4 통신 방법

JuoDev 2021. 9. 7. 17:09

IPV6 주소체계에서 IPV4 로 통신하고자 할때는 서로 같은 주소체계 통신을 요청해야 통신이 가능하다.

두개의 다른 ip주소 체계를 서로 통신이 가능하고자 할때 사용되는 기술이 '터널링'이다.

 

1.ping test

ping www.google.com ( O )

 

ping 123.123.12.1 ( X ) 

ipv4 아닌 ipv6 형태로 변환해줘야함

ex) ping 64:ff9b::qw12:qw23 ( O ) 

 

 

ipv4 -> ipv6 해주는 사이트 참고

https://ko.rakko.tools/tools/23/ 

 

2.Iocalhost가 현재 ipv6 주소일때 ipv4로 이루어진 특정 url(port)로 통신하고 싶다면 어떻게 해야하나?

 

이때 tunneling 기술을 사용해서 local의 ipv6 주소를 로컬호스트 ipv4주소로 사용하지 않는포트에다가 터널링해준다 . 

일종의 포트포워딩 개념

 

리눅스 환경 예시)

현재 내 local ipv6 주소 : 64:ff9b::12qw:12qw

통신하고자 하는 상대 ipv4 주소 : 212.123.12.123:10443/qwe/qwe/qw

(ipv6 변환 64:ff9b::d47b:c7b)

 

64::ff9b ( NAT64 접두사 (헤더) )

IPV4->IPV6 변환시 사용되는 메커니즘,변환기술

IPv6 전용 클라이언트가 IPv4 전용 서버와의 통신을 시작하도록 허용하는 것

 

 

sudo apt-get install 6tunnel
sudo 6tunnel -dv 1234 64:ff9b::d47b:c7b 10443

6tunnel 을 통해 통신하려는 ipv4의 호스트에다가 로컬에서 사용하지 않는 ex) 1234 포트로 터널링을 해준다

 

자 그러면 이제 localhost 에서 127.0.0.1:10443/qwe/qwe/qw 로 curl이나 cpprestsdk 등으로 데이터를 주고받는게 가능해진다.

 

예를들어 127.0.0.1:10443/qwe/qwe/qw 로 request를 한다고 가정하며

 

해당 127.0.0.1:10443 으로 전송된 데이터가 212.123.12.123:10443로 가지게 되는것이다.