IPv6/Tunnel

Aus Foxwiki

topic - Kurzbeschreibung

Beschreibung

Ein Tunnelbroker ist im Bereich der Computernetzwerke ein Dienst, der Tunnel bereitstellt, die zum Beispiel dazu genutzt werden können, Verkehr gesichert (Virtual Private Network) oder verkapselt zu transportieren, um z. B. IPv6 über ein IPv4-Netzwerk zu transportieren

Obwohl es mehrere Arten von Tunnelbrokern gibt, werden damit meist Broker bezeichnet, die Tunnel bereitstellen, die es ermöglichen, IPv6-Pakete über alte IPv4-Infrastruktur zu routen (RFC 3053), allerdings kann es auch IPv4-Tunnelbroker geben, die IPv4-Pakete über IPv6-Infrastruktur leiten

  • Um IPv6 über IPv4 zu leiten, werden verschiedene Methoden wie 6in4, 6over4, 6to4 oder 6rd verwendet
  • Heutzutage wird häufig Dual-Stack verwendet, bei dem sowohl IPv4 und IPv6 unabhängig voneinander verwendet werden

Automatische Konfiguration

Normalerweise werden IPv6-Tunnel über das Tunnel Setup Protocol oder Tunnel-Information-Control-Protokoll konfiguriert und erstellt

  • Oft wird ein Tunnel jedoch manuell konfiguriert

Probleme mit Network Address Translation und Routern

Protokoll-41-Tunnel, wobei IPv6 direkt in IPv4 verpackt wird, funktionieren hinter NATs eventuell nicht mehr zuverlässig
Protokoll 41 in Wireshark
  • Mit vielen modernen Routern gibt es allerdings keine Probleme
  • Umgehen kann man auftretende Probleme, indem man den Endpunkt entweder in eine Demilitarisierte Zone legt oder gleich auf das NAT-Gerät; moderne Router für den Heimeinsatz, die IPv6-fähig sind, unterstützen dies inzwischen
  • Ebenfalls möglich ist der Gebrauch von AYIYA oder TSP (Tunnel Setup Protocol), die IPv6-Pakete in UDP-Pakete verpacken
  • Diese können die meisten Firewalls problemlos passieren (vorausgesetzt, es gibt keine verbietende Regel)
Ein Problem, das immer noch auftreten kann, ist, dass eine NAT-Regel aus der Tabelle entfernt wird, obwohl die Verbindung noch besteht
  • Falls dann von außen Pakete für den Tunnel ankommen, kann der Router diese nicht mehr weiterleiten und verwirft sie
  • Das unterbricht die Tunnelverbindung, bis der Nutzer wieder ein Paket durch den Tunnel sendet
Ältere (Heim-)Router routen teilweise generell keine Protokoll-41-Pakete

Dynamische Endpunkte

Falls der Client-Endpunkt des Tunnels eine dynamische IP-Adresse besitzt (wie bei Privatkunden-Breitbandanschlüssen), dann muss der Kunde den Tunnelbroker immer bei einer Änderung über die neue IP-Adresse informieren

  • Das geschieht entweder manuell über die Website des Tunnelbrokers oder über ein automatisches Protokoll wie TSP oder Heartbeat

Andere Tunnelbroker erlauben eine komfortable webbasierte Lösung, bei der eine vorgegebene URL aufgerufen wird, in der Nutzername, Passwort und der Hostname oder die ID des Tunnels enthalten sind. Über die IP des Aufrufers (der Server für diese Lösung ist über IPv4 angebunden) kann der Endpunkt aktualisiert werden

tunnelbroker.net

Hurricane Electric bietet einen kostenlosen tunnel broker Dienst an, der unter Arch relativ einfach zu benutzen ist, wenn Sie einem IPv4-Host IPv6-Konnektivität hinzufügen möchten

Registrierung für einen Tunnel

Gehen Sie auf die Tunnelbroker-Site und füllen Sie die Registrierung aus

Einrichten des Hurricane Electric-Tunnels

Erstellen Sie die folgende systemd-Unit und ersetzen Sie den fettgedruckten Text durch die IP-Adressen, die Sie von HE erhalten haben
Hinweis
Wenn Sie sich hinter einem NAT befinden (typische Heimrouter-Einrichtung), verwenden Sie Ihre lokale IPv4-Adresse für client_IPv4_address, z.B. 192.168.0.2
/etc/systemd/system/he-ipv6.service
[Einheit]
Beschreibung=he.net IPv6-Tunnel
Nach=network.target
[Service]
Typ=oneshot
RemainAfterExit=yes
ExecStart=/usr/bin/ip tunnel add he-ipv6 mode sit remote server_IPv4_address local client_IPv4_address ttl 255
ExecStart=/usr/bin/ip link set he-ipv6 up mtu 1480
ExecStart=/usr/bin/ip addr add client_IPv6_address dev he-ipv6
ExecStart=/usr/bin/ip -6 route add ::/0 dev he-ipv6
ExecStop=/usr/bin/ip -6 route del ::/0 dev he-ipv6
ExecStop=/usr/bin/ip link set he-ipv6 down
ExecStop=/usr/bin/ip tunnel del he-ipv6
[Install]
WantedBy=multi-user.target
Dann start/enable he-ipv6.service

systemd-networkd

Wenn systemd-networkd Ihre Netzwerkverbindungen verwaltet, ist es wahrscheinlich eine bessere Idee, ihn auch den Tunnelbroker verwalten zu lassen (anstatt eine .service-Datei zu verwenden)
/etc/systemd/network/he-tunnel.netdev
[Match]
[NetDev]
Name=he-ipv6
Kind=sit
MTUBytes=1480
[Tunnel]
Lokal=<lokale IPv4>
Entfernt=<Tunnel-Endpunkt>
TTL=255
/etc/systemd/network/he-tunnel.network
[Match]
Name=he-ipv6
[Netzwerk]
Adresse=<lokale IPv6>
Gateway=<IPv6-Gateway>
DNS=2001:4860:4860::8888
DNS=2001:4860:4860::8844

Und fügen Sie diese Zeile in den Abschnitt "[Network]</nowiki>" Ihrer Standard-Internetverbindungsdatei "'.network" ein

Tunnel=he-ipv6

Verwendung des Tunneling mit dynamischer IPv4 IP

Aktualisierung über Cronjob

Der einfachste Weg, das Tunneln mit einer dynamischen IPv4-IP zu nutzen, besteht darin, einen Cronjob einzurichten, der Ihre aktuelle Adresse regelmäßig aktualisiert
  • Die Beispiel-URL und einen Update Key finden Sie auf der Registerkarte Advanced der Seite Tunnel Details
Um zu überprüfen, ob die Aktualisierung funktioniert, führen Sie den folgenden Befehl aus (ersetzen Sie USERNAME, UPDATEKEY und TUNNELID durch die Angaben zu Ihrem Konto und Ihrem Tunnel)
wget -O - https://USERNAME:UPDATEKEY@ipv4.tunnelbroker.net/nic/update?hostname=TUNNELID
Wenn es funktioniert, erstellen Sie einen Cronjob, indem Sie crontab -e öffnen und eine neue Zeile hinzufügen
*/10 * * * * wget -q -O /dev/null https://USERNAME:UPDATEKEY@ipv4.tunnelbroker.net/nic/update?hostname=TUNNELID

Aktualisieren über ddclient

Alternativ kann dies auch durch die Installation von ddclient und die Konfiguration von /etc/ddclient.conf konfiguriert werden
protocol=dyndns2
use=web
web=checkip.dns.he.net
server=ipv4.tunnelbroker.net
ssl=ja
anmeldung=BENUTZERNAME
passwort=UPDATEKEY
TUNNELID

Und schließlich start/enable ddclient.service

Setting up a tunnelbroker.net IPv6 tunnel on Debian

Things you need to find out first

The IP address you plan to use the tunnel from (e.g. your current IP, or the IP of the server you want to set this up on) - $yourip

Getting a tunnelbroker account

  • Hit the registration page and sign up
  • Wait for the confirmation email, then login
  • From the (left-hand-side) “User Functions” menu click “Create Regular Tunnel”
  • Enter the IP you want to use the tunnel from
  • Pick a host near the machine with that IP - the closer it is, the shorter the path your IPv6 packets will have to take to hit the IPv6 Internet

Configure your machine to use the tunnel

Pick a name for the tunnel - it is just used as the interface name on Linux. Let’s say sit1. Now click on the your new tunnel, and you’ll be on the “Tunnel details” page

Open up /etc/network/interfaces:

auto sit1
iface sit1 inet6 v4tunnel
    address $address
    netmask 64
    local $yourip
    endpoint $endpoint
    up ip route add 2000::0/3 via $theirip dev sit1

Where:

$address is the value of “Client IPv6 address”

$yourip is the local IP address

$endpoint is the value of “Server IPv4 address”

$theirip is the value of “Server IPv6 address”, with the /64 removed

Test

Ping

Make sure iputils-ping is installed (sudo aptitude install iputils-ping, if it isn’t), then try ping6 www.kame.net in a terminal::

PING www.kame.net(orange.kame.net) 56 data bytes
64 bytes from orange.kame.net: icmp_seq=1 ttl=54 time=126 ms

Web

If you are setting this up on your desktop, visit Kame using your browser. If this is on a server, use ssh -D1027 yourserver (via ipv4, of course) on your local machine to create a SOCKS proxy, tell your browser to use localhost:1027 as a SOCKS proxy, then visit Kame in your browser. If the tortoise is dancing, you’re done

  1. http://ertius.org/docs/ipv6-tunnel-on-debian/

IPv6 Tunnel unter Debian mit Tunnelbroker.net

Da es ja bald (TM) nur noch IPv6 Adressen gibt, wollte ich damit schon mal frühzeitig etwas herumspielen

Die Frage war nur wie, den natives IPv6 bekommt man nicht von jedem Provider, und als privater DSL Nutzer schon mal garnicht

  • Aber eine Lösung gibt es dennoch, sie heißt IPv6 Tunnel
  • Dabei wird der komplett IPv6 Traffic in IPv4 Pakete verpackt und zu einem Tunnelserver geschickt, der das ganze Entpackt und ins IPv6 Internet weiterleitet
  • Insgesamt eine schöne Sache, und es gibt kostenlose Dienste die einen solchen Service anbieten
  • Einer ist tunnelbroker.net, hier kann man sich Registrieren und bekommt dann Ipv6 Adressen und die Daten zu einem Tunnel Server

Einrichtung Debian

/etc/network/interfaces  folgenden Eintrag hinzugefügt:

#IPv6 TUNNEL
auto 6in4
iface 6in4 inet6 v4tunnel
   address 2001:470:1f0a:cf7::2 #Zugewiesene Addresse des eigenen Endpunkts
  netmask 64
  endpoint 216.66.80.30 #IPv4 Adresse des Tunnelservers auf der anderen Seite
  gateway 2001:470:1f0a:cf7::1 # IPv6 Adresse des Tunnelservers der anderen Seite
  up ip route add ::/0 dev 6in4

Dann speichern und man kann danach mit

ifup 6in4 #Tunnel anfahren
ifdown 6in4 #Tunnel herrunterfahren


Anhang

Siehe auch


Links

Projekt
Weblinks
  1. Free IPv6 Tunnel broker service betrieben von Hurricane Electric
  2. https://wiki.archlinux.org/title/IPv6_tunnel_broker_setup