IPv4에서 원격 IPv6 장치로 포트를 투명하게 터널링하는 방법은 무엇입니까?


11

집에서, 나는 IPv6 주소와 연결되어 있으며, 또한 내 공급자는 다른 고객과 공유하는 공용 IPv4 주소를받을 수있는 NAT와 유사한 설정을 제공합니다 (이것이 우리가 IPv4 주소를 적게 사용하는 이유 임).

결과적으로 IPv4 네트워크에있을 때 집에있는 장치 (예 : VPN 게이트웨이)에 연결할 수 없습니다. 그러나 IPv4와 IPv6 주소가 모두있는 서버가 있습니다. 따라서 서버를 통과하면 가정용 장치에 연결할 수 있어야합니다.

지금까지 내가 염두에 두어야 할 것은 다음과 같습니다. IPv6에서 각 장치는 고유 한 IP를 얻으므로 에있는 서버 는 고정 IPv6 IP를 갖습니다. 내 원격 서버에는 이미 정적 IPv4와 IPv6이 모두 있습니다.

이제 집에서 OpenVPN 서버에 연결하고 싶을 때 이전에 라우터에서 포트 1194를 열었고 NAT는 서버로 연결을 전달했습니다. 새로운 시나리오에서는 원격 서버의 포트 1194 (또는 다른 것은 중요하지 않음)에 연결하고 싶습니다.이 연결을 가져 와서 내 홈 서버로 터널링해야합니다 (둘 다 IPv6을 가지고 있음).

그래픽 적으로 이것은 다음을 의미합니다.

모바일 장치 (IPv4)-> 원격 서버 (IPv4 + IPv6)-> 홈 서버 (IPv6)

그러나 이것은 선택된 포트에서만 발생해야합니다 (또는 포트별로 선택하는 것보다 더 영리한 방법이 있습니까?).

제 질문은이 설정을 어떻게 달성합니까?

어느 수준에서 작동해야합니까? 포트별로 수행하려면 TCP / UDP 계층에서 패킷을 전달해야합니다. 내 첫 번째 아이디어는 iptables이지만 iptables는 원격 IP로 패킷을 전달할 수 있습니까? 아니면 다른 소프트웨어가 있습니까? 아니면 두 서버 사이에 터널을 만든 다음 로컬로 전달해야합니까? 어떻게하면 될까요?


1
랩탑에 IPv6 터널 브로커 사용을 고려 했습니까?
Michael Hampton

@MichaelHampton은 제안에 감사드립니다.하지만 전화 (android) 및 다른 장치와 연결하려고하기 때문에 장치를 변경할 필요가없는 방법을 원합니다. 장치 관점에서 이전과 마찬가지로 설정이 간단해야합니다.
javex

답변:


13

마지막 으로 socat을 기본적으로 사용하는 IPv6 전용 호스트로 IPv4 포트를 전달 하는 솔루션을 찾았습니다 .

socat TCP4-LISTEN:22,fork,su=nobody TCP6:[2a01:198:79d:1::8]:22

내 솔루션은 기본적으로 고정 IP를 제외하고 호스트 이름을 사용한다는 점을 제외하면 동일합니다. 호스트 이름으로 대괄호를 사용하지 않도록주의하십시오. 그러면 호스트 이름이 IP로 해석됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.