Wie richtet man einen 6in4/6to4-Tunnelserver auf einem Linux-Gateway ein?

Wie richtet man einen 6in4/6to4-Tunnelserver auf einem Linux-Gateway ein?

Ich habe eine native IPv6-Verbindung (/64-Präfix) und habe versucht, eine IPv6-Verbindung hinter einem OpenWrt-Router einzurichten. Ich habe jedoch festgestellt, dass ich ebtables nicht verwenden konnte, um den gesamten IPv6-Verkehr durchzulassen (Firmware-Einschränkung) oder ndppd verwenden konnte, um alle ICMPv6-Anfragen als Proxy zu verwenden (Neighbor Solicitation/Advertising, Upstream-Router, über den ich keine Kontrolle habe, akzeptiert sie aus unbekanntem Grund nicht).

Es scheint, dass die einzige Möglichkeit, die ich jetzt habe, darin besteht, den gesamten IPv6-Verkehr zu tunneln. Unten sehen Sie die Netzwerktopologie:

   Internet -- Router -- PC
            WAN-Präfix::/64
            wan 219.242.xx
            LAN 10.224.0.1 10.224.36.223

Ich versuche, einen Tunnel zwischen zwei 10.224.xx-Adressen zu erstellen, um den gesamten IPv6-Verkehr zu tunneln und so eine IPv6-Verbindung herzustellen.

Ich habe nach einigen Tutorials gesucht, kann aber nicht herausfinden, welche Adresse ich beim Einrichten des Tunnels als Parameter verwenden soll.

Auf dem PC läuft Windows. Es wäre besser, wenn auch ein Konfigurationsbeispiel bereitgestellt würde.

(Auf dem Gateway läuft OpenWrt, aber ich nehme an, es funktioniert fast wie ein Linux-Gateway?)

Antwort1

Ein Tunnel ist keine Lösung für Ihr Problem.

Sie haben eine direkte physische Verbindung zwischen den beiden Maschinen, die Sie durch einen Tunnel verbinden würden, sodass der Tunnel gar nicht erst erforderlich ist. Jede Adressierung, die Sie über den Tunnel durchführen möchten, kann direkt über die Ethernet-Verbindung zwischen den beiden Endpunkten erfolgen. Und wenn Sie dies über Ethernet statt über einen Tunnel tun, entfallen die zusätzliche Komplexität der Konfiguration sowie der Kapselungsaufwand.

Sie haben noch ein weiteres Problem, nämlich, dass Sie dieser Verbindung keine Adresse zuweisen können. Aber die Verwendung von IPv6 über Ethernet oder IPv6 über einen Tunnel ändert daran nichts. Beide benötigen die gleiche Anzahl von Adressen (außer dass die Verwendung über Ethernet die Verwendung dieses Präfixes durch das gesamte LAN ermöglichen würde).

Wenn du das richtig machen willst, brauchst du ein Präfix für das LAN, welches zu deinem Router geroutet werden muss. Deiner Beschreibung nach hast du momentan nur ein Link-Präfix für das WAN. Das reicht nicht, da du ein weiteres Link-Präfix für das LAN brauchst, welches von einem zu deinem Router gerouteten Präfix übernommen werden muss.

Ich kenne ein standardisiertes Protokoll zum Einrichten dieses gerouteten Präfixes, nämlich DHCPv6. Der Router sollte eine DHCPv6-Anfrage über seine WAN-Schnittstelle senden und ein geroutetes Präfix anfordern. Für das, was Sie jetzt tun möchten, reicht ein geroutetes /64 aus, aber Sie können auch gleich ein /48, /56 ​​oder /60 verwenden, da Sie in Ihrem LAN wahrscheinlich bald Verwendungsmöglichkeiten für mehr als ein einzelnes /64 finden werden. Die Alternative zu DHCPv6 mit Präfixdelegierung besteht darin, dass Ihr ISP eine statische Route für das an Ihren Router geroutete Präfix konfiguriert.

Wenn Ihr ISP über keinen DHCPv6-Server verfügt oder nicht einmal /60 oder /64 delegiert, sollten Sie sich an Ihren ISP wenden und fragen, wie Sie ein Präfix an Ihren Router routen können.

Wenn sie sich weigern, Ihnen ein Präfix zuzuweisen, obwohl Sie es angefordert haben, ist es an der Zeit, nach Workarounds zu suchen. Die beiden mir bekannten Workarounds sind Bridging und Neighbor Discovery Proxying. Aus Sicht des ISPs verhalten sich beide gleich und führen zu einem Anstieg des Speicherverbrauchs in seinem Router. Sie hätten diesen zusätzlichen Speicherverbrauch vermeiden können, indem sie stattdessen ein Präfix an Sie weitergeleitet hätten.

Sie sagen, dass keine der Problemumgehungen von Ihrer Router-Firmware unterstützt wird. Ich denke, das bedeutet, dass Sie auf eine Firmware aktualisieren müssen, die dies unterstützt.

Sie fragen auch nach 6to4, was damit nichts zu tun hat. Ich würde 6to4 als weitgehend irrelevant für Ihr Setup einstufen. Wenn Sie dies jedoch in Ihrer Router-Firmware tun können, würde ich ein 6to4-Relay auf dem Router aktivieren, da dies Ihnen eine zuverlässigere Kommunikation ermöglicht, wenn Sie mit jemandem kommunizieren, der 6to4 verwendet. Aus genau demselben Grund würde ich ein Teredo-Relay aktivieren, das sehr praktisch ist, wenn Sie jemals von einem Laptop aus in einem reinen IPv4-Netzwerk eine Verbindung nach Hause herstellen müssen.

Antwort2

Ist es möglich, Ihr OpenWRT einfach als Bridge zu konfigurieren, sodass es nur den IPv6-Verkehr durchlässt, aber die öffentlichen und privaten IPs zur Bridge-Schnittstelle des Routers hinzufügt, sodass Sie trotzdem noch ein privates IPv4-Netzwerk mit NAT haben können? Das OpenWRT könnte als einarmiger Router fungieren. Andernfalls könnte der nächste Schritt darin bestehen, Ihren NDP-Proxy zum Laufen zu bringen. Sind Sie sicher, dass der Linux-Kernel den NDP-Verkehr nicht verbraucht? Überprüfen Sie /proc/sys/net/ipv6/conf/*/accept_ra, um zu sehen, ob das Verhalten sich ändert, wenn Sie die Kernel-Behandlung von Router-Anzeigen ändern. Ich bin nicht sicher, warum Sie sich ebtables ansehen würden, es sei denn, Sie möchten Layer-2-Verkehr auf einer Bridge filtern. Standardmäßig ist der gesamte Verkehr auf Layer 2 zulässig und die meiste Filterung erfolgt mit iptables auf Layer 3. Wenn Sie Verkehr filtern möchten, können Sie nur IPv6-Verkehr basierend auf seinem in /etc/ethertypes beschriebenen Typ auswählen. Wenn Sie IPv4 filtern möchten, stellen Sie sicher, dass Sie auch ARP zulassen. Dies ist ein anderes Ethernet-Protokoll.

verwandte Informationen