Obecnie mam konfigurację, w której ze względu na konfigurację, która musiałaby trwać wiecznie, mam serwer, do którego dostęp można uzyskać tylko przez ipv4. Mam też serwer, do którego można uzyskać dostęp za pomocą ipv6. Zastanawiałem się, czy mogę użyć iptables do przekazywania ruchu ipv6 na pewnym porcie z jednego serwera na inny serwer przy użyciu ruchu ipv4.
16
Odpowiedzi:
Tabele IP nie mogą obecnie tego robić, więc potrzebujesz procesu przestrzeni użytkownika do proxy połączeń. socat jest odpowiednim narzędziem do tego:
źródło
Jak zauważono w komentarzach do twojego pytania , NAT64 nie jest jeszcze gotowy, nawet 3 lata później.
Możesz jednak spróbować
6tunnel
, jak sugeruje zdziwienie.Na szczęście jest obecny w repozytoriach Debian i Ubuntu, więc możesz go bardzo łatwo zainstalować
sudo apt-get install 6tunnel
. Jeśli używasz innego systemu, musisz go zbudować ze źródła .Budowanie ze źródła naprawdę nie jest trudne i polega jedynie na uruchomieniu niektórych poleceń (jako root):
Oto jego uproszczona składnia:
[-4|-6]
Jest opcjonalny i pozwala określić, czy będzie wiązać (słuchać) na IPv4 lub IPv6 (odpowiednio).-l
jest również opcjonalny. Pozwala wybrać adres (IPv4 lub IPv6), który chcesz powiązać.Na przykład, jeśli chcesz zezwolić na dostęp do serwera tylko IPv4, nasłuchującego na porcie 1337, za pośrednictwem IPv6, użyj:
Powyższe polecenie nasłuchuje na porcie 1337 na IPv6 i przekieruje ruch do portu 1337 na tym samym komputerze przez IPv4. Następnie będzie działał w tle, więc nie musisz się o to martwić.
Właściwie powinieneś skonfigurować zadanie crona, aby upewnić się, że nadal działa.
6tunnel
stanowi przykład dla Twojej wygody! Uruchomienie go przy rozruchu również nie powinno być złym pomysłem.Aby uzyskać więcej dokumentacji, uruchom
6tunnel -h
lubman 6tunnel
.źródło
Najnowsze wersje
xinetd
mogą również nasłuchiwać na IPv6, a następnie przekazywać połączenie na adres IPv4.Przykładowa konfiguracja, która nasłuchuje połączeń IPv6 na porcie 3389 i przekazuje je do portu 3389 wewnętrznego adresu IPv4:
Może to być przydatne w bardziej ograniczonych środowiskach, ponieważ
xinetd
prawdopodobnie zostanie zainstalowany z systemem podstawowym lub dostępny w zatwierdzonych repozytoriach dostawców.źródło
Chciałem skomentować odpowiedź Leo Lamsa i głosować, ale nie mam wystarczającej reputacji. Po pierwsze: bardzo dziękuję Leo Lam!
Dla każdego, kto podejdzie do tego wątku: Mój dostawca usług internetowych zmienił moje połączenie z IPv4 na IPv6 za pomocą Dual Stack Lite, co oznacza, że nie mam już własnego adresu IPv4. To był problem, ponieważ chcę uzyskać dostęp do mojej kamery IP z dowolnego miejsca, które nie obsługuje IPv6. Aby rozwiązać ten problem, próbowałem:
sudo 6tunnel -6 99 192.168.178.35 80
sudo 6tunnel -4 99 IPV6PREFIXROUTER:IPV6INTERFACEIDUUBUNTUMACHINE 99
Prefiks ipv6 został oznaczony w moim routerze, a identyfikator interfejsu został zmapowany w procesie przekazywania IPv6.
Teraz mogę uzyskać dostęp do kamery z dowolnego miejsca za pomocą domeny vServer example.com:99 .. Idealnie! Planuję albo kupić malinę, która spełni tę pracę, albo banana pi m3 do innych zadań.
źródło
Bardziej na korzyść osób, które znajdują tę stronę niż koniecznie OP (przybyłem tutaj, szukając rozwiązania łączności IPv6 dla aplikacji IPv4 (Twisted)), jedną z możliwości jest aplikacja 6tunnel, nasłuchuje na IPv6 i przesyła żądania do innego interfejsu i Port.
źródło