Jak dotrzeć do adresów IPv4 z sieci opartej tylko na IPv6?

11

Chciałbym skontaktować się z tym adresem za pośrednictwem adresu IPv6:
http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/

W naszych routerach Freifunk nie ma DNS, więc nazwy downloads.openwrt.orgnie można rozwiązać. Wszystkie serwery w Internecie są dostępne tylko za pośrednictwem adresów IPv6. Teraz nie możemy dotrzeć do tego pakietu lustrzanego z routera, aby zainstalować pakiety za pośrednictwem opkg install.

Byłoby rozwiązaniem, gdybyśmy mogli dodać to do naszej konfiguracji na przykład:

http://[2001:db8::1]/attitude_adjustment/12.09/ar71xx/generic/packages/

Nasze routery działają w trybie OpenWRT i są przeznaczone tylko dla IPv6. Chciałbym dodać wpis, /etc/hostsaby nazwa domeny została downloads.openwrt.orgrozpoznana na odpowiednim adresie IPv6

Czy można przekierować IPv6 do domeny?

rubo77
źródło
2
Ta strona z jakiegoś powodu nie ma adresu IPv6. Być może powinieneś wyjaśnić, na czym polega Twój rzeczywisty problem, a nie na czym polega jego rozwiązanie ?
Michael Hampton
Dlaczego przez IPv6? Na jakim systemie operacyjnym jesteś.
JakeGould
@MichaelHampton: Dodałem powód mojego pytania
rubo77
Zredagowałem twój tytuł, aby wyjaśnić, jakie jest rzeczywiste pytanie, ponieważ łatwo jest przeoczyć w treści pytania.
Michael Hampton

Odpowiedzi:

12

Nie można po prostu „dodać” adresu IPv6, aby dotrzeć do hosta, który jest dostępny tylko przez IPv4. Są to dwa zupełnie różne i niezgodne protokoły.

Aby Twoja sieć tylko IPv6 mogła uzyskać dostęp do adresów IPv4, wymagana jest brama, która ma dostęp do IPv4. Zwykle odbywa się to za pomocą bramy NAT64 / DNS64, która tłumaczy adresy IPv4 na „fałszywe” adresy IPv6 i akceptuje połączenia z tymi „fałszywymi” adresami IPv6 i tłumaczy połączenia na sieć IPv4. Te adresy IPv6 będą w 64:ff9b::/96zakresie.

W OpenWrt NAT64 odbywa się za pomocą Tayga, a DNS64 z bindem. Więcej informacji na temat ich konfigurowania jest dostępnych na wiki OpenWrt . Będziesz potrzebował Dostosowania Postawy lub Łamacza Barier; poprzednie wersje OpenWrt nie miały dostatecznie pełnej obsługi IPv6 i innych technologii.

Możesz dodać publiczne resolwery DNS64 / NAT64 do pliku /etc/resolv.conf:

nameserver 2001:67c:2b0::4
nameserver 2001:67c:2b0::6

Możesz także „przywrócić” tłumaczenie na stronie klienta, używając 464xlat . 464xlat używa tych samych narzędzi. (wspomniane powyżej, ale tylko w inny sposób). Dzięki 464xlat możesz także dotrzeć do adresów URL z dosłownymi adresami IP.

Michael Hampton
źródło
2

Domena downloads.openwrt.orgma adres IPv4, ale nie ma adresu IPv6. Nie można więc do niego dotrzeć za pośrednictwem protokołu IPv6, chyba że użyje się mechanizmu tłumaczenia. Możesz użyć NAT64, aby móc utworzyć połączenie TCP z tym serwerem tylko IPv4 z klienta tylko IPv6.

Ale dlaczego miałbyś używać klienta opartego tylko na IPv6? Wybór podwójnego stosu jest dobrym pomysłem, ale na razie tylko IPv6 jest naprawdę przydatny tylko do testowania dla tych, którzy znają ograniczenia, które wprowadzają w świecie, który ma zbyt wiele hostów tylko IPv4.

Jeśli uda ci się otworzyć połączenie TCP z serwerem, staniesz przed kolejnym wyzwaniem. Wersja HTTP 1.1 wymaga od klienta wysłania nazwy serwera, z którym się kontaktuje, za pośrednictwem połączenia HTTP. Wiele witryn, w tym także downloads.openwrt.orgwymaga wysłania tego nagłówka.

Twój klient HTTP może wysłać ten nagłówek tylko wtedy, gdy zna nazwę domeny do wysłania. Lepiej więc powiadomić klienta o oryginalnym adresie URL i w jakiś sposób dać mu dostęp do rozwiązania tej nazwy na adres IP. Jeśli musi to być IPv6, nadal oznacza to, że będziesz potrzebować NAT64. Jednak mapowanie z nazwy domeny na adres IP NAT64 może być wprowadzone /etc/hostsi powinno działać dobrze.

To może działać dobrze dla pojedynczej nazwy domeny. Ale jeśli chcesz, aby host tylko IPv6 był w stanie dotrzeć do wielu domen bez konieczności umieszczania każdej z nich /etc/hostsz adresem NAT64, potrzebujesz dynamicznego tłumaczenia adresów. Po to jest DNS64.

Teraz, jeśli klient ma dostęp IPv4 i brakuje tylko DNS, odpowiedź staje się znacznie prostsza. Wystarczy wpisać adres IPv4, /etc/hostsjak sugerował David. Będziesz oczywiście musiał aktualizować ten plik za każdym razem, gdy zmienia się adres IP serwera, co, miejmy nadzieję, nie będzie zbyt często.

kasperd
źródło
Z pewnością „wybór podwójnego stosu to dobry pomysł”, ale nie wszyscy mogą po prostu „przejść podwójny stos”. Jeśli mój dostawca daje mi tylko jedno lub drugie, niewiele mogę na to poradzić.
paolo,
@ paolo Jeśli mówisz o serwerach, możesz wybrać dostawcę hostingu, który obsługuje podwójny stos. Istnieje tak wiele konkurencyjnych dostawców do wyboru, że naleganie na obsługę dwóch stosów tylko ułatwia wybór, skracając listę dostawców do wyboru. Jeśli mówimy o sieciach z użytkownikami końcowymi, konkurencja jest mniejsza, ponieważ jesteś ograniczony do dostawców usług internetowych na twoim obszarze geograficznym. W takim przypadku korzystanie z tego, co zapewnia dostawca usług internetowych, będzie działało, o ile usługi, na których polegasz, mają podwójny stos, tak jak powinny.
kasperd
@paolo Jeśli mówisz o sieciach, w których użytkownikami są programiści, administratorzy systemu lub inni, którzy potrzebują podwójnego stosu w celu opracowania / obsługi infrastruktury podwójnego stosu, to naprawdę powinieneś wybrać podwójny stos i użyć tunelu, jeśli dostawca usług internetowych nie obsługuje IPv6. Możesz być prawie pewien, że ISP zapewnia jakiś sposób na dostęp do usług opartych wyłącznie na IPv4, prawdopodobnie za pośrednictwem NAT64 lub innego mechanizmu przejścia.
kasperd
Najwyraźniej ta strona obsługuje teraz IPv6 (moja przeglądarka łączy się z rzeczywistym
Paul Stelian
1

Myślę, że możesz zadawać złe pytanie - nie możesz przekierować adresu IPv6 do domeny, ponieważ proces działa w odwrotny sposób, tzn. Domena przekształca się w [lub wiele] hostów.

Nie udało mi się znaleźć żadnych informacji na twoim routerze, ale jeśli działa OpenWRT, powinieneś być w stanie dodać wpis do / etc / hosts, aby nazwa domeny została przetłumaczona na odpowiedni adres IP.

Davidgo
źródło
to właśnie miałem na myśli. ale ponieważ nie ma „odpowiedniego” adresu IP6, pomyślałem, że mogę go jakoś przekierować. Dodałem go do pytania
rubo77