Wie erreiche ich IPv4-Adressen über ein IPv6-Netzwerk?

11

Ich möchte diese Adresse über eine IPv6-Adresse erreichen:
http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/

In unseren Freifunk-Routern ist kein DNS verfügbar, daher kann der Name downloads.openwrt.orgnicht aufgelöst werden. Alle Server im Internet sind nur über IPv6-Adressen erreichbar. Jetzt können wir diesen Paketspiegel nicht mehr aus dem Router heraus erreichen, um Pakete über zu installieren opkg install.

Es wäre eine Lösung, wenn wir dies beispielsweise zu unserer Konfiguration hinzufügen könnten:

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

Unsere Router führen OpenWRT aus und sind nur IPv6-fähig. Ich möchte einen Eintrag hinzufügen, /etc/hostsdamit der Domänenname downloads.openwrt.orgin eine geeignete IPv6-Adresse aufgelöst wird

Ist es möglich, ein IPv6 auf eine Domain umzuleiten?

rubo77
quelle
2
Diese Site hat aus irgendeinem Grund keine IPv6-Adresse. Vielleicht sollten Sie erklären, was Ihr eigentliches Problem ist, und nicht, was Sie für die Lösung halten ?
Michael Hampton
Warum über IPv6? Auf welchem ​​Betriebssystem bist du?
JakeGould
@ MichaelHampton: Ich habe den Grund für meine Frage hinzugefügt
rubo77
Ich habe Ihren Titel bearbeitet, um zu erklären, was die eigentliche Frage ist, da sie im Fragentext leicht zu übersehen ist.
Michael Hampton

Antworten:

12

Sie können nicht einfach eine IPv6-Adresse "hinzufügen", um einen Host zu erreichen, der nur über IPv4 verfügbar ist. Dies sind zwei völlig unterschiedliche und inkompatible Protokolle.

Damit Ihr IPv6- Netzwerk nur IPv4-Adressen erreichen kann, ist ein Gateway erforderlich, das Zugriff auf IPv4 hat. Dies erfolgt im Allgemeinen mit einem NAT64 / DNS64-Gateway, das IPv4-Adressen in "gefälschte" IPv6-Adressen übersetzt, Verbindungen zu diesen "gefälschten" IPv6-Adressen akzeptiert und die Verbindungen zum IPv4-Netzwerk übersetzt. Diese IPv6-Adressen liegen im 64:ff9b::/96Bereich.

In OpenWrt wird NAT64 mit Tayga und DNS64 mit bind ausgeführt. Weitere Informationen zum Einrichten finden Sie im OpenWrt-Wiki . Sie benötigen eine Einstellung oder einen Barrier Breaker. Frühere Versionen von OpenWrt hatten keine ausreichende vollständige Unterstützung für IPv6 und andere Technologien.

Sie können Ihrer /etc/resolv.conf öffentliche DNS64 / NAT64-Resolver hinzufügen:

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

Sie können die Übersetzung auf der Client-Site auch mit 464xlat "zurücksetzen" . 464xlat verwendet dieselben Tools. (oben erwähnt, aber nur auf andere Weise). Mit 464xlat können Sie auch URLs mit wörtlichen IPs erreichen.

Michael Hampton
quelle
2

Die Domäne downloads.openwrt.orghat eine IPv4-Adresse, aber keine IPv6-Adresse. Sie können es also nur über IPv6 erreichen, wenn Sie einen Übersetzungsmechanismus verwenden. Sie können NAT64 verwenden, um von einem IPv6-Client aus eine TCP-Verbindung zu diesem Nur-IPv4-Server herzustellen.

Aber warum sollten Sie einen Nur-IPv6-Client verwenden? Dual Stack ist eine gute Idee, aber im Moment ist IPv6-only nur zum Testen für diejenigen nützlich, die die Einschränkungen kennen, die in einer Welt mit zu vielen IPv4-Hosts auftreten.

Wenn es Ihnen gelingt, eine TCP-Verbindung zum Server herzustellen, stehen Sie vor einer weiteren Herausforderung. Für HTTP Version 1.1 muss der Client den Namen des Servers senden, den er über die HTTP-Verbindung kontaktiert. Für viele Websites muss downloads.openwrt.orgdieser Header gesendet werden.

Ihr HTTP-Client kann diesen Header nur senden, wenn er den zu sendenden Domänennamen kennt. Sie sollten den Client also besser über die ursprüngliche URL informieren und ihm Zugriff gewähren, um diesen Namen in eine IP-Adresse aufzulösen. Wenn es IPv6 sein muss, bedeutet dies immer noch, dass Sie NAT64 benötigen. Es kann jedoch eine Zuordnung vom Domänennamen zur NAT64-IP-Adresse vorgenommen werden /etc/hosts, die einwandfrei funktionieren sollte.

Das kann für einen einzelnen Domainnamen gut funktionieren. Wenn Sie jedoch möchten, dass ein IPv6-Host nur mehrere Domänen erreichen kann, ohne dass jeder einzelne /etc/hostseine NAT64-Adresse eingeben muss, müssen Sie die Adressen dynamisch übersetzen. Dafür ist DNS64 da.

Wenn der Client nun über IPv4-Zugriff verfügt und nur DNS fehlt, wird die Antwort viel einfacher. /etc/hostsGeben Sie einfach die IPv4-Adresse ein, wie von Davidgo vorgeschlagen. Sie müssen diese Datei natürlich jedes Mal aktualisieren, wenn sich die IP-Adresse des Servers ändert, was hoffentlich nicht zu oft der Fall ist.

Kasperd
quelle
Natürlich ist "Dual Stack ist eine gute Idee", aber nicht jeder kann einfach "Dual Stack". Wenn mein Provider mir nur den einen oder anderen gibt, kann ich nicht viel dagegen tun.
Paolo
@paolo Wenn Sie über Server sprechen, können Sie einen Hosting-Anbieter auswählen, der Dual Stack unterstützt. Es gibt so viele konkurrierende Anbieter zur Auswahl, dass das Beharren auf Dual-Stack-Unterstützung die Auswahl nur ein wenig erleichtert, indem die Liste der Anbieter, aus denen Sie auswählen können, reduziert wird. Wenn es sich um Netzwerke mit Endbenutzern handelt, gibt es weniger Wettbewerb, da Sie auf ISPs in Ihrem geografischen Gebiet beschränkt sind. In diesem Fall funktioniert das, was der ISP bereitstellt, so lange, wie die Dienste, auf die Sie sich verlassen, Dual-Stack sind, wie sie sein sollten.
Kasperd
@paolo Wenn Sie über Netzwerke sprechen, in denen die Benutzer Entwickler, Systemadministratoren oder andere sind, die einen Dual-Stack benötigen, um eine Dual-Stack-Infrastruktur zu entwickeln / zu unterstützen, sollten Sie wirklich einen Dual-Stack verwenden und einen Tunnel verwenden, wenn der ISP dies nicht tut unterstützt IPv6. Sie können fast sicher sein, dass der ISP eine Möglichkeit bietet, nur IPv4-Dienste zu erreichen, möglicherweise über NAT64 oder einen anderen Übergangsmechanismus.
Kasperd
1

Ich denke, Sie stellen möglicherweise die falsche Frage: Sie können eine IPv6-Adresse nicht auf eine Domäne umleiten, da der Prozess umgekehrt funktioniert, dh eine Domäne wird in einen [oder mehrere] Hosts aufgelöst.

Ich konnte keine Informationen auf Ihrem Router finden, aber wenn OpenWRT ausgeführt wird, sollten Sie in der Lage sein, einen Eintrag in / etc / hosts hinzuzufügen, damit der Domänenname in die entsprechende IP-Adresse aufgelöst wird.

Davidgo
quelle
das hatte ich mir vorgestellt. aber da es keine "passende" ip6-adresse gibt, dachte ich, ich könnte sie irgendwie umleiten. Ich habe es der Frage hinzugefügt
rubo77