IPv6

Version vom 11. März 2018, 19:10 Uhr von Achim (Diskussion | Beiträge) (Hinzufuegen von Labor-router Teil)
Wechseln zu: Navigation, Suche
IPv6
Beschreibung: IPv6 im lokalen Netz
Kontakt: Achim
Status: aktiv (Was heißt das?)

Das TZH Hausnetz hat kein IPv6. Es über ein Tunnel-provider ins Labornetz zu holen ist nicht ganz trivial. Diese Seite enthält die Einstellungen und Skripte, die dafür notwendig sind.


Aufbau

Der IPv6 Addressraum sowie ein Tunneldienst wird von Hurricane Electric kostenlos zur Verfügung gestellt. Die Seite zur Einrichtung ist tunnelbroker.net.

Der Tunnel von HE nutzt das IPv6-in-IPv4 Protokoll, Protokoll #41. Dazwischen ist keine TCP oder UDP Schicht. Daher ist es nicht einfach, diese Verbindung über einen NAT Router zu leiten. Er müsste Port-forwarding für andere Protokolle als TCP und UDP erlauben. Über den Router vom TZH ließ sich das nicht einrichten.

Daher wird der Tunnel auf einen Rechner bei Hetzner gelegt, und von dort über einen openvpn Link weiter ins Labor verlängert.

Die Verbindung läuft also über (mindestens) 3 router:

  • Ein router im LAbor
  • ein Hetzner server
  • den Tunnelbroker

Multihome

Im Hetzner server stellt sich ein zusätzliches Problem: Er hat bereits eine IPv6 Addresse. Hetzner stellt nur /64 Netze. Sobald der Tunnel zu HU steht, besitzt der Rechner zwei IPv6 Links ins Internet. Daten können über beide Wege reinkommen, aber Pakete raus müssen den HE-Tunnel nehmen, wenn sie vom Labor kommen. In Linux gibt es dafür das "Policy Routing".

Addressräume

  • 2001:470:1f0a:1c1::/64 HE-Tunnel, Endpunkte ::1 und ::2 .
  • fe80:0:0:1ab0::/64 Link Addressen nur für openvpn Hop. Endpunkte ::1 und ::2 .
  • 2001:470:70f4::/48 von HE geroutet zum HE Endpunkt im Hetzner Server
  • 2001:470:70f4:1ab0::/56 Teil davon der in Labor geroutet wird.
  • 2001:470:70f4:1ab0::/64 Teil davon, der im Labor LAN verteilt wird

Config im Hetzner server

Im Hetzner Server wird openvpn installiert, und ein server-Endpunkt eingerichtet. Ebenso wird hier der Endpunkt für den HE-Tunnel eingerichtet. Für die Route zwischen den beiden Netzen wird eine Routing-Regel angelegt, die kommt aber in Tabelle 44 (nicht default 254).

In /etc/network/interface

# Hurricane-electric Tunnel. (Achim)
auto he6
iface he6 inet6 v4tunnel
  address 2001:470:1f0a:1c1::2
  netmask 64
  endpoint 216.66.80.30
  local 148.251.86.7
  ttl 255

# weiterleitender Tunnel. (Achim)
allow-hotplug tap_ovpn
iface tap_ovpn inet6 static
  address fc00:0:0:1ab0::1
  netmask 64
#iface tap_ovpn inet manual
#  address 192.168.90.1
#  netmask 255.255.255.0

Andere Dateien aus /etc sind hier. Das Passwort der Datei ist das selbe wie von dem (IPv4) Router im Labor.

Router im Labor

Als Router im Labor wird ein kleiner extra RaspberryPi ans Netz gehängt. In diesem wird openvpn als client installiert, radvd zum Verteilen von Addressen im LAN.

Die config-files für openvpn heissen "vpn.conf" und "vpn.key". Daher ist der systemd-service:

systemctl enable openvpn-client@vpn.service



In /etc/network/interface

auto enxb827ebb21d54
#ipv4 configuration
iface enxb827ebb21d54 inet static
  address 192.168.4.4
  netmask 255.255.252.0
  network 192.168.4.0
  gateway 192.168.4.1

#ipv6 configuration
iface enxb827ebb21d54 inet6 static
  address 2001:470:70f4:1ab0::1
  netmask 64



allow-hotplug vpntap
#ipv6 configuration
iface vpntap inet6 static
  address fc00:0:0:1ab0::2
  netmask 64
  post-up ip route add 2000::/3 via fc00:0:0:1ab0::1 src 2001:470:70f4:1ab0::1
  pre-down ip route del 2000::/3


ip6_route_verify.service und dazugehörende Skript ip6_route_verify.py ist ein Testprogramm, welches periodisch prüft, ob das Internet noch über IPv6 erreichbar ist (pingt ein paar server). Wenn die Verbindung verlorengeht, kommentiert es die 'route' Regel in radvd.conf aus und starten den radvd.service neu. Damit wird verhindert, daß er nicht funktionierende Routen im Labor LAN verteilt.

Aktivieren mit: systemctl enable ip6_route_verify.service


Dateien in /etc sind hier. Es fehlt die Datei /etc/openvpn/client/vpn.key . Diese vom server kopieren.