Gibt es eine Möglichkeit, immer dieselbe Teredo-IPv6-Adresse zu verwenden?

1347
Rudloff

Einer meiner Computer befindet sich auf einem nur IPv4-ISP, daher verwende ich miredo, um eine IPv6-Adresse zu haben. Jetzt muss ich mit IPv6 remote auf diesen Computer zugreifen. (Ich kann IPv4 hier nicht verwenden, da es sich hinter einem NAT I befindet und keine neuen Portweiterleitungen hinzufügen kann.) Das Problem ist, dass ich keinen AAAA-DNS-Eintrag hinzufügen kann, da sich bei jedem Computer ein Teil der IP-Adresse zufällig ändert verbindet sich mit dem Netzwerk.

Meine Frage ist also: Gibt es eine Möglichkeit, mit Teredo immer dieselbe IP-Adresse zu verwenden?

4

4 Antworten auf die Frage

2
Per von Zweigbergk

Die IP-Adressen von Teredo hängen von der Wikipedia ab .

Zunächst hängt es von der IPv4-Adresse des Routers ab. Wenn sich das ändern kann, haben Sie ein Problem.

Zweitens hängt es von dem von Teredo verwendeten Quellport ab, der vom NAT-Gerät übersetzt und geändert werden kann. Wenn Ihr NAT-Gerät den von Anwendungen im Inneren verwendeten Quellport beibehält, können Sie diesen möglicherweise unverändert lassen. Unter Windows ist die Option "Clientport" für Teredo möglicherweise hilfreich. Siehe diesen Technet-Artikel.

Kurze Antwort: Möglicherweise können Sie es meistens gleich einstellen, Ihre Laufleistung kann jedoch erheblich variieren. Wahrscheinlich werden Sie nicht in der Lage sein, dies zuverlässig zu erhalten, da das NAT-Gerät möglicherweise den Quellport verfälscht. Sie können dies möglicherweise beenden, indem Sie Portforwards für Ihre Firewall einrichten ... aber das können Sie bereits nicht ... also ...

Eine bessere Option könnte das Einrichten eines dynamischen DNS-Clients sein, vorausgesetzt, Sie können einen finden, der eine IPv6-Adresse einer Teredo-Schnittstelle veröffentlicht.

DDNS ist wahrscheinlich unter allen Umständen erforderlich. Eine andere Lösung ist, einen 6. Tunnel mit einem der Anbieter zu bekommen, der sie kostenlos anbietet. Sie können eine feste / 64 oder sogar eine / 48 erhalten. Ein weiteres Problem ist die Privacy Extensions-Sache, die aber umgangen werden kann. Ich finde, dass viele Leute, die glauben, sie wären nur auf einem IPv4-ISP, IPv6 von ihrem Provider bekommen könnten, aber das eigentliche Problem ist ihr Router. Ron Maupin vor 8 Jahren 0
1
Rudloff

Offensichtlich sind seit RFC 5991 einige Teile der IPv6-Adresse immer zufällig, um sie nicht vorhersagbar zu machen.

Daher war die einfachste Lösung für mich die Verwendung eines dynamischen DNS-Dienstes, der IPv6 unterstützt, wie dynv6.com.

Am Ende habe ich auch einen dynamischen DNS-Dienst verwendet. Rudloff vor 8 Jahren 0
1
kasperd

Ja, das ist mit dem Teredo-Protokoll möglich. Es erfordert jedoch geänderten Code sowohl auf dem Teredo-Client als auch auf dem Teredo-Server.

Um zu erklären, warum es nach der Änderung von Client und Server immer noch als dasselbe Protokoll angesehen werden kann, muss ich zunächst erklären, was die anderen an der Kommunikation beteiligten Komponenten sind.

Teredo-Grundlagen

Die vier kritischen Netzwerkknoten in einer Kommunikation, die das Teredo-Protokoll verwendet, sind:

  • Teredo-Client
  • Teredo-Server (vom Client ausgewählt)
  • Teredo-Relay (vom nativen IPv6-Knoten ausgewählt)
  • Nativer IPv6-Knoten

Letztendlich ist es der Teredo-Client und der native IPv6-Knoten, die IPv6-Pakete austauschen möchten. Die Teredo-Server und Teredo-Relays sind vorhanden, um diesen Datenverkehr zu erleichtern.

Der Teredo-Server ist nur am ersten Verbindungsaufbau beteiligt. Sobald die Verbindung hergestellt ist, wird der Datenverkehr zwischen dem Teredo-Client und dem nativen IPv6-Knoten durch das Relay geleitet, ohne dass der Teredo-Server Datenverkehr empfängt.

Da der Client keinen Einfluss auf die Wahl des Teredo-Relais hat, funktioniert jede Lösung, die Änderungen am Relais erfordern würde, nicht. Zum Glück ist das nicht erforderlich. Die Verbindung zwischen Client und Relay, an die der Hauptteil des Datenverkehrs gesendet wird, ist weiterhin vollständig Teredo-Standardverkehr.

Da Client und Relay weiterhin unter Verwendung des Standard-Teredo kommunizieren und der Client noch eine IPv6-Adresse im 2001::/32Präfix hat, gilt dies als Teredo.

Änderungen nötig

12 der Bits in der Teredo-Adresse werden vom Teredo-Client zufällig ausgewählt. Auf der Clientseite ist eine Änderung erforderlich, damit diese nicht zufällig sind.

48 der Bits in der Teredo-Adresse sind die IPv4-Adresse und die UDP-Portnummer des Teredo-Clients, wie sie vom Teredo-Server angezeigt werden.

Hier ist es sehr wichtig, dass diese 48 Bits die Portadresse sind, die der Server sieht. Aufgrund von NAT denken Client und Relay möglicherweise, dass der UDP-Port eine völlig andere Adresse hat. Welche IPv4-Adresse und Portnummer Client und Relay sehen, hat jedoch keinen Einfluss auf die endgültige IPv6-Adresse.

Normalerweise befindet sich das einzige betroffene NAT in der Nähe des Teredo-Clients. Wenn Sie jedoch die endgültige IPv6-Adresse beeinflussen möchten, kann ein NAT auf demselben Computer wie der Teredo-Server abgelegt werden. Es ist sogar möglich, NAT direkt in den Teredo-Server einzubauen, wenn Sie dazu neigen.

Gibt es eine Implementierung davon?

Wahrscheinlich nicht.

Ich habe zuvor den größten Teil eines Teredo-Servers implementiert . Der Client kann jedoch nur die IPv4-Adresse und nicht die UDP-Portnummer auswählen. Ich brauchte die UDP-Portnummer, um Clients zu unterscheiden.

Ein Teredo-Server mit Unterstützung für das Festhalten der IPv4-Adresse und des UDP-Ports für einen bestimmten Benutzer erfordert eine Möglichkeit, den Benutzer zu erkennen. Es gibt Felder im Protokoll, die möglicherweise dazu verwendet werden können. Ich kenne jedoch keine Implementierung mit Unterstützung für die Identifizierung von Teredo-Clients für Teredo-Server.

Darüber hinaus leidet Teredo an einem erheblichen Zuverlässigkeitsproblem. Dieses Zuverlässigkeitsproblem bezieht sich auf den Teil des Teredo-Protokolls, der von den hier beschriebenen Änderungen nicht berührt wird.

Das Problem mit Teredo

Das Problem ist, wie der native IPv6-Knoten das zu verwendende Teredo-Relay wählt. Idealerweise konfiguriert der Administrator des Netzwerks, auf dem sich der native IPv6-Knoten befindet, ein Teredo-Relay für dieses Netzwerk (und befindet sich außerhalb des NAT, wenn NAT für IPv4 verwendet wird).

Viele Administratoren entscheiden sich jedoch nicht für die Bereitstellung eines Teredo-Relays. Normalerweise wird argumentiert, dass Teredo so unzuverlässig ist, dass sie es nicht unterstützen müssen (ohne zu ahnen, dass diese Überlegung Teredo unzuverlässig macht, eine sich selbst erfüllende Prophezeiung).

Stattdessen wird der Datenverkehr vom nativen IPv6-Knoten über die Standardroute an den Upstream-Provider gesendet, der ihn wiederum an seinen Upstream-Provider senden kann und der Datenverkehr möglicherweise auf einem öffentlichen Relay eines Drittanbieters auf einem AS landet beschlossen zu verkünden 2001::/32.

Die Verwendung eines Relays eines Drittanbieters bedeutet einen längeren Netzwerkpfad, was wiederum eine erhöhte Latenz bedeutet. Dies bedeutet auch, dass es keine SLA gibt und das Teredo-Relais möglicherweise nicht über ausreichende Kapazität für den an ihn gesendeten Datenverkehr verfügt.

In den meisten Fällen, in denen eine statische IP-Adresse gewünscht wird, ist auch eine gewisse Zuverlässigkeit erwünscht. Da Sie selten alle Remote-Knoten steuern, mit denen Sie kommunizieren, haben Sie auch keine Kontrolle darüber, welche Teredo-Relais verwendet werden.

Dies macht Teredo mit statischer IP-Adresse zu einem Nischenprodukt für diejenigen, die bereit sind, einen modifizierten Teredo-Client zu installieren, um eine statische IP-Adresse zu erhalten, für die keine Zuverlässigkeit garantiert wird.

Zum Thema Relais hat Microsoft [lange] (http://lists.cluenet.de/pipermail/ipv6-ops/2013-July/009093.html) [Pläne] (http://lists.cluenet.de) gehabt /pipermail/ipv6-ops/2014-November/010328.html), um seinen `teredo.microsoft.com`-Dienst zu deaktivieren. grawity vor 8 Jahren 0
@ grawity Das sind Teredo-Server, keine Teredo-Relays. Ich glaube nicht, dass Microsoft öffentliche Teredo-Relays betreibt. Zuletzt habe ich überprüft, dass Hurricane Electric der größte Anbieter von öffentlichen Teredo-Relais war. kasperd vor 8 Jahren 0
Ah, stimmt schon, das stimmt. grawity vor 8 Jahren 0
0
BillThor

Mit einem 6in4Tunnel geht es Ihnen vielleicht besser . Dieses Protokoll 41 benötigt keine zusätzlichen NAT-Regeln. Es gibt Makler, die kostenlose Tunnel anbieten. Solange Sie in Ihrem Netzwerk der einzige sind, der die IP-Adresse des Tunnelbrokers verwendet, sollten keine Probleme auftreten.

Wenn die IP-Adresse Ihres Routers nicht statisch ist, müssen Sie das Netzwerk erneut konfigurieren, wenn sich die IP-Adresse ändert. Dies ist ähnlich wie bei DDNS.

Stellen Sie eine Firewall für Ihre Verbindung her, da Sie über kein NAT verfügen, das Sie vor unerwünschtem Datenverkehr schützt.

Unterstützung für beide 6in4und 6to4ist in Linux integriert. Ich habe ursprünglich mit 6to4 angefangen, was funktioniert hat, aber nicht so stabil war, wie ich wollte. Mit hatte 6in4ich stabile Konnektivität. Ich habe es für NTP-Konnektivität verwendet und erhalte stabile Zeitquellen über IPv6.

Protokoll 41 erfordert zusätzliche NAT-Regeln; Oft ist es sogar problematischer als Teredos UDP, da viele günstige Gateways außer TCP oder UDP keine anderen Optionen anbieten. grawity vor 8 Jahren 1
@grawity Ich musste Protokoll 41 nie weiterleiten, und die Router, mit denen ich gearbeitet habe, haben für mich keine Probleme verursacht. Die anfängliche Verbindung wird von meinem Server hergestellt, und ich bekomme Verbindungen mit verschiedenen Protokollen von Servern aller Art. Ich habe weitaus weniger ausgehenden IPv6-Verkehr im Verhältnis zum eingehenden Verkehr. Keiner meiner letzten beiden Router bot eine Option zur Weiterleitung des Protokolls 41 an. BillThor vor 8 Jahren 0
"Die erste Verbindung"? Proto41 ist verbindungslos; Es ist buchstäblich IP über IP. Wenn das erste Paket ausgehend ist, wird es vom Gateway als eine Art "Verbindung" verfolgt, die dem ausgehenden UDP ähnelt. Wenn Sie jedoch eine Zeit lang keine IPv6-Pakete erhalten, verfällt der Status (wiederum wie bei UDP). Wenn der Router ein _incoming_proto41-Paket empfängt, weiß er nicht, wohin er es weiterleiten soll, es sei denn, es gibt einen NAT-Statuseintrag oder eine konfigurierte NAT-Regel. grawity vor 8 Jahren 1
@ grawity Es scheint, als würden selbst billige Router den Status von proto41 gut nachverfolgen. Mein Tunnel-Broker hat möglicherweise eine ausreichend lange Zeit, um den Zustand aufrechtzuerhalten, oder mein Datenverkehr ist hoch genug, um den Zustand aktiv zu halten. BillThor vor 8 Jahren 0