(3) Server – Immer erreichbar

Was wollen wir?

Wir wollen Zugriff auf unser Netzwerk aus dem Internet über das IPv6 Protokoll erreichen.

Erklärung Unterschied IP4 und IPv6:

Aufbau der IPv6 Adresse:

Die 128-Bit IPv6-Adresse besteht aus acht Kommata getrennte 16-Bit Hexadezimal-Blöcke. Die Trennung erfolgt durch einen Doppelpunkt. Zum Beispiel 2dfc:0:0:0:0217:cbff:fe8c:0

Unterschied IP4 & IPv6

Die 32-Bit IPv4-nutzt weltweit eindeutige öffentliche Adressen für Datenverkehrs- und „private“ Adressen.

IPv6 nutzt weltweit einzigartige Unicast- und lokale Adressen.

Beide Protokolle sind nicht kompatibel zueinander und können nicht direkt miteinander kommunizieren. Eine IPv6 ist auch aus einem reinem IP4 Netzwerk nicht aufrufbar, umgekehrt aus einem IPv6 Netzwerk sind IP4 Adressen nicht direkt ansprechbar.

Während man die IP4 Adresse im Browser direkt mit z.b. http://192.168.0.1 eingeben kann, muss man die IPv6 in eckige Klammer packen z.b. http://[2dfc:0:0:0:0217:cbff:fe8c:0]

Es empfiehlt sich aber immer bei einem Domain Anbieter seiner Wahl eine Internet Adresse zu mieten und die Auflösung der IP über einen DNS-Eintrag zu erledigen. Eine Internetadresse ist immer einfacher zu merken als eine IP.

Warum wollen wir das?

Hintergrund:

Bei jedem Internet Anbieter bekommt man eine IP4 Adresse vom Provider zugewiesen, über die wir im Internet surfen können.

Funktionsweise Zugriff bei IP4:

Man bekommt entweder eine feste oder eine wechselnde IP4 vom Provider zugewiesen. Die feste IP4 bleibt dauerhaft bestehen und erleichtert den Zugriff auf das Netzwerk.

Die wechselnde IP hält nur für die Dauer der Verbindung an und wechselt in unterschiedlichen Zeitabständen. Für diesen Fall bieten sich DynDNS Provider an, denen man mit Hilfe des Routers oder eines Servers in bestimmten Intervallen seine aktuelle IP4 mitteilt. Der Provider der dynamischen IP wandelt dann eine Euch zugewiesenen DNS Namen in die IP4 um.

Mit dieser IP4 oder dynamischen DNS kann man von außerhalb auf seinen Router zugreifen. Im Router richtet man nun eine Portweiterleitung an die gewünschte Zieladresse innerhalb des eigenen Netzwerkes ein. Für jeden Port kann es hierbei nur ein Zielgerät geben.

Provider ohne öffentliche IP4

Es gibt nun Provider, die einem keine öffentliche IP4 geben, sondern deren IP4 nur innerhalb des Provider Netzwerkes gültig ist, außerhalb des Provider Netzes ist diese Adresse unbekannt und somit nicht ansprechbar aus dem Internet. Gerade viele Glasfaser Anbieter bieten hier nur DualStack mit CGNATv4 oder DS-Lite (Dual-Stack Lite). DIes wird von Internetanbietern eingesetzt, die nicht über genügend öffentliche IPv4-Adressen für ihre Kunden verfügen und für diese daher IPv6-Internetzugänge einrichten.

Der Vorteil bei diesen Anbietern ist allerdings das man oftmals eine festen IPv6 Adressbereich zugewiesen bekommt.

Funktionsweise Zugriff bei IPv6:

Der Provider weist einem einen IPv6 Präfix zu. Standard ist hier eigentlich /56, aber auch /64 wird häufig verwendet.

Beispiel:

Die Adresse von oben 2dfc:0:0:0:0217:cbff:fe8c:0 wird ungekürzt so geschrieben:

2dfc:0000:0000:0000:0217:cbff:fe8c:0000

Mit einem /56 Präfix kann man nun innerhalb seines Netzwerkes die Adressen von

2dfc:0000:0000:0000:0000:0000:0000:0000   bis

2dfc:0000:0000:00ff:ffff:ffff:ffff:ffff                           vergeben

Der Bereich 2dfc:0000:0000:00 führt also automatisch zu Eurem Router, der Bereich dahinter wird vom Router vergeben und weist jedem Gerät, wenn gewünscht, eine IPv6 Adresse zu.

Wichtig hierbei, die Adressen sind von überall auf der Welt aus dem IPv6 Netzwerk direkt ansprechbar, es erfolgt hier keine Portweiterleitung durch den Router. Freigaben werden bei IPv6 mit einer Firewall Regel erstellt, wo nur die Ports und Adressen durchgelassen werden welche man zwingend benötigt.

Und wie genau geht das?

IPv6 aktivieren

Geht im Controller -> Netzwerk zu Eurem WAN Port und aktiviert DHCPv6 aktivieren, gebt die Präfix-Delegierungsgröße Eures Providers ein.

IPv6 weiter verteilen

Für jedes VLAN kann man nun die Vergabe von IPv6 Adressen aktivieren oder deaktivieren.

Hier muss nur bei IPv6 Schnittstellentyp die Präfix-Delegierung aktiviert werden, das IPv6RA wird auch aktiviert und mit Priorität Hoch versehen. Den Bereich kann man so lassen wie vorgegeben.

https://help.ui.com/hc/en-us/articles/115005868927-UniFi-UDM-USG-Configuring-DHCPv6-PD-and-Static-IPv6-Addressing

Beispiel: 

An dem Bereich von oben 2dfc:0000:0000:00 hängt der Controller nun für das erste VLAN eine 01 an und nummeriert alle VLAN die aktiviert weiter durch -> 2dfc:0000:0000:0001:

Hinter diesem Bereich werden die Adressen den Geräten nun fix vorgegeben.

Aus dem Beispiel oben

2dfc:0000:0000:0000:0217:cbff:fe8c:0000 wird also 2dfc:0000:0001:0000:0217:cbff:fe8c:0000 im erstem VLAN2dfc:0000:0002:0000:0217:cbff:fe8c:0000 im zweiten VLAN, usw.

Hinweis: Hierbei ist zu beachten, wenn man am Anfang nur in einzelnen VLAN das IPv6 aktiviert und später weitere hinzufügt, kann es sein das Unifi die VLAN Nummer verschiebt, dies ist sehr unangenehm, weil sich dadurch die kompletten Adressen eines VLAN verändern können.

IPv6 des Gerätes herausfinden:

Man kann bei IPv6 nicht einfach das Netzwerk scannen und sich die IP-Adressen anzeigen lassen, deshalb müssen diese aus dem Gerät selber ausgelesen werden. Falls diese nach der Aktivierung im Controller noch nicht zugewiesen wurde, muss das Gerät erst neu gestartet werden.

Bei Betriebssystemen wie Windows oder MacOS geht man in die Netzwerkeinstellungen und kann dort neben der IP4 auch die IPv6 auslesen.

Auf einer NAS wie eine Synology findet man diese auch in der Oberfläche unter Netzwerkeinstellungen.

Bei Geräten mit Linux System kann man sich per ssh einloggen und mittels <IP addr>  die Adresse anzeigen lassen, falls das nicht funktioniert kann man auch den Befehl <ifconfig> versuchen.

Oftmals werden hier sehr viele Adressen angegeben, einige sind nur lokal im Netzwerk verfügbar, andere sind dann wirklich global verfügbar. Wichtig bei der Auswahl der korrekten Adresse ist, dass diese mit dem zugewiesenem IPv6 Präfix übereinstimmt, also im Beispiel oben mit 2dfc:0000:00 beginnt.

Dies wird auch mit dem sogenannten Score hinter der Adresse angezeigt.

Die beiden wichtigsten Scopes sind der Link-Local-Scope und Global-Scope. Nur IPv6-Pakete mit einer globalen Absender-Adresse werden außerhalb des lokalen Netzwerks geroutet.

Im Unifi Router (UDM Pro) kann man sich auch per ssh einloggen und mit

ip neighbour 

alle IP Adressen der verbundenen Geräte anzeigen lassen

Die eigene öffentliche Ipv6 wird einem übrigens mit

ip addr
angezeigt. Die Adresse befindet sich in der UDM pro für WAN1 unter eth8

Mit dem Befehl

ipsec statusall

sieht man alle IP4 und IPv6 der in derUDM Pro zugeordneten Adressen.

Zugriff aus dem Internet:

Es gibt hierbei mehrere Lösungen, nicht alle sind kostenlos umzusetzen, aber eine feste IP4 kann bei solchen Anbietern durchaus teurerer werden, meist ist dies nur mit Business Tarifen oder der Zu Buchung einer Option möglich. Jede dieser Möglichkeiten hat Ihre eigenen Vor- und Nachteile. Dabei muss man selber entscheiden welche der Möglichkeiten zu einem passt. Es gibt durchaus auch weitere Möglichkeiten und Anbieter solcher Funktionen, die hier angegebenen Beispiel sind exemplarisch zu sehen.

Möglichkeit 1 DynDNS:

Es gibt Anbieter von dynamischen Adressen, welche auch die IPv6 unterstützen.

Leider unterstützt Unifi nicht die Benutzung des IPv6 Protokolls zur Synchronisation der eigenen IP mit einem externen Anbieter. Man kann dies aber z.b. mit einer Synology umsetzen.

Um Zugriff auf seine Synology zu bekommen installiert man das Tool „DDNS Updater 2“ und richtet es entsprechend mit seiner dynamischen DNS ein.

Nachteil:

Die Geräte sind über die dynamische Adresse nur aus einem IPv6 Netzwerk heraus zu benutzen. Befindet man sich in einem Netzwerk, welches kein IPv6 beherrscht, bekommt man keinen Zugriff. Dies kommt durchaus noch in einigen Handy Netzen und insbesondere aus dem Ausland heraus noch vor. Wer aber vorab prüft von woher er Zugriff benötigt kann mit dieser Lösung bereits seinen Server erreichen.

Möglichkeit 2 Portmapper:

Man benötigt im Internet einen Anbieter einer festen IP4 der über einen zugewiesenen Port die Verbindung zu seiner IPv6 weiter leitet.

Ein bekannter Anbieter ist z.b.

www.feste-IP.net

Die Preise sind durchaus attraktiv, man kauft sich Kredits und kann sich nach seinen Wünschen die Umleitung einrichten. Je nach Anzahl benutzter Ports ist es günstiger oder teurer. Eine günstige Variante ist dabei die Verwendung vom Provider generierter Ports, hier bekommt man keinen Wunsch Port, sondern z.b. den Port 69024 und leitet diesen auf den benötigten Port z.b. 80 um.

Nachteil:

Der komplette Traffic wird nun über diesen Provider geleitet, es empfiehlt sich also alle Verbindungen zu verschlüsseln.

Weiterhin funktioniert die Verbindung nur über das TCP Protokoll, wer UDP benötigt um z.b. eine VPN Verbindung aufzubauen, dem bleibt nur das VPN über IPSec zu nutzen und dort die Verbindung auf TCP umzustellen.

Der Zugriff auf sein Gerät funktioniert nur auf den gekauften Port und in der günstigen Variante nur mit per Zufall generierten Ports. Dies kann man umgehen indem man z.b. bei einem Domainanbieter eine Domainumleitung auf diese IP:Port durchführt, aber spätestens wenn man Server Dienste nutzen möchte, welche nur auf bestimmten Ports möglich sind, kommt man hier schnell an seine Grenzen. Für das Hosting seiner eigenen Webseite reicht dies vollkommen aus.

Möglichkeit 3 eigener VServer:

Die Königsklasse ist ein eigener Server im Internet mit einer festen IP4 Adresse. Dabei gibt es bereits für wenig Geld virtuelle Server. Wichtig bei der Auswahl ist nur, dass er eine feste IP4 beinhaltet und dass es keine Limitierung des Traffic gibt, da auch hier der Traffic über den VServer geleitet wird. Allerdings mit dem Vorteil, dass er einem selber gehört.

Als Beispiel hier die Erklärung mit dem VServer von Ionos, dieser ist in der kleinsten Variante bereits für 1€ im Monat erhältlich und reicht vollkommen aus für den Zugriff.

https://www.ionos.de/server/vps

Bei der Bestellung kann man nun bereits ein Betriebssystem wählen, im Beispiel wählen wir das Ubuntu 20.04, man kann dieses aber später auch noch ändern.

Dann loggt man sich mit den Zugangsdaten ein und wählt Server&Cloud. Dort findet man auch Zugangsdaten, Root Passwort und die IP4 zum neuen Server.

Der Zugang erfolgt dann über ssh, entweder über das Windows Programm Putty oder vom Mac über das Terminal. Eingeloggt wird sich über

ssh root@IP4

Das Passwort sollte hier maximal kompliziert sein, um unberechtigten Zugriff auszuschließen.

Als erstes mach man ein Update des Servers, dies sollte man auch dringend immer wieder durchführen, um das System aktuell zu halten und Sicherheitslücken zu schließen.

Update Server

​sudo apt update && sudo apt dist-upgrade -y

reboot

Nach dem Neustart muss man sich erneut einloggen

6Tunnel

Nun wird das Programm 6Tunnel installiert mit
​apt-get install 6tunnel

Nun erstellt man sich ein Script welches den Tunnel erstellt, dazu wird das Programm nano verwendet. Falls es nicht vorhanden ist, installiert man sich dieses mit <apt-get install nano> nach.

nano /home/tunnels.sh

 

Nun öffnet sich ein Editor in dem man folgenden Text eingibt:

#!/bin/sh # Da das Skript direkt nach dem (Re)Boot ausgefuehrt wird,
# erst einen Moment warten sleep 20s
# Ggf. vorhandene 6tunnel-Instanzen beenden
killall 6tunnel
# Pause
sleep 10s
# 6tunnel starten
# Dies ist ein Beispiel für den Tunnel von Port 80 zu einer IPv6 mit dem Zielport 80
6tunnel 80 2dfc:0000:0001:0000:0217:cbff:fe8c:0000 80

Den Editor verlässt man mit Control&X, dann einem „Y“ zum Speichern und Bestätigung mit Enter Die IPv6 ist dabei an die Adresse des Gerätes anzupassen, welches man erreichen möchte. Die Zeilen die mit einer # beginnen sind nur Kommentare und werden nicht ausgeführt. Die Funktionsweise von 6Tunnel ist dabei:

6tunnel IPv4-Port IPv6-Adresse IPv6-Port

Weitere Zeilen können unter dieser Zeile einfach hinzugefügt werden.

Wichtig hierbei: Auf einem virtuellen Server muss man die Ports, welche man weiterleiten möchte, auch in der Firewall frei schalten.

Das Script muss noch ausführbar gemacht werden mit

​chmod +x /home/tunnels.sh

Damit das Skript auch nach jedem Neustart ausgeführt wird, fügt Ihr dieses in den Crontab ein

sudo crontab -e

(Bei der ersten Verwendung wird man gefragt welchen Editor man verwenden möchte, den Nano kennen wir ja schon und wählen diesen)

Nun fügt man folgende Zeile hinzu und speichert die Datei wieder ab.

​@reboot /home/tunnels.sh

Manuell kann man das Skript mit der Eingabe von „/home/tunnels.sh“ starten.

Mit dem Befehl

ps -ef | grep 6tunnel

kann man sich eine Liste der aktiven Tunnel anzeigen lassen.

Firewall 

Im Controller nicht vergessen die Firewall Regeln für den Zugriff aus dem Internet anzupassen.

Im Controller nicht vergessen die Firewall Regeln für den Zugriff aus dem Internet anzupassen.

Hierzu bei „IPv6 WAN eingehend“ erst entsprechende Regeln für jedes Zielgerät und den entsprechenden Ports erstellen. Falls es mehrere sind, können auch Portgruppen oder Adressgruppen erstellt werden.

Siehe hierzu auch meinen eigenen Block:

(5) Firewall – Die Tür geht zu

Tipp zur Anwendung:

Die Anzahl Offener Ports und die Anzahl der IPv6 Adressen sollten, der Sicherheit wegen, so gering wie möglich genutzt werden. Es ist oftmals wesentlich effektiver den Zugang über einen Reverse Proxy Server zu gewähren. Hierzu kann man eigene Domains oder Subdomain auf die IP4 des VServers umleiten, diese werden über den Tunnel an einen Reverse Proxy Server geleitet und von dort an die entsprechenden Server verteilt. (Siehe hierzu auch meinen Blog https://web.andrejansen.de/14-reverse-proxy-nur-ein-port-viele-ziele/)

Zukünftige Lösungen

die jetzige Lösung läuft schon perfekt, fast perfekt. 2 Dinge möchte ich in Zukunft noch testen

  • VPN Tunnel über meinen VServer
  • Socket Tunnel über meinen VServer
  • UDP Tunnel über VServer

Weitere Informationen über IPv6: https://www.elektronik-kompendium.de/sites/net/1902111.htm

Probleme:

falls ihr Probleme mit dem IPv6 habt, schaut auch mal hier und gebt mir bitte Feedback ob es eine Hilfe war

Troubleshooting IPv6 und Deutsche Glasfaser

Url: https://url.jansen-elten.de/lykt1

https://ubiquiti-networks-forum.de/wiki/entry/47-externer-zugriff-%C3%BCber-ipv6/

Dieser Beitrag wurde unter HomeLab, Proxmox, Synology abgelegt und mit , , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.

4 Antworten zu (3) Server – Immer erreichbar

  1. Maurice sagt:

    Hallo Andre,
    ich habe seit kurzem als ISP die DG. Leider stehe ich genau vor dem IPv6 Problem. Ich habe nun eine kurze Frage zu: „Nachteil:
    Der komplette Traffic wird nun über diesen Provider geleitet, es empfiehlt sich also alle Verbindungen zu verschlüsseln.“ Hier ist nur der Traffic gemeint wenn ich die IPv6 Adresse anspreche beispielsweise über VPN oder? Mein normaler gesamter Traffic wird ja nicht komplett umgeroutet?

    Danke im Voraus und beste Grüße
    Maurice

    • andre sagt:

      Hallo Maurice,
      Damit ist der eingehende Traffic gemeint.
      Es geht ja nur darum, dass dein Netzwerk von außen erreichbar ist.
      Bei einem VServer Anbieter (Möglichkeit 3) muss man also einmal darauf achten das die Bandbreite stimmt und das die Menge nicht limitiert ist (Ionos hat hier kein Limit und eine Bandbreite von 400mbit/s, das kann je nach Anbieter auch anders sein). Da es dein Server ist, kann hier auch keiner so schnell die Daten abfangen.
      Bei Möglichkeit 1&2 könnte der Anbieter mitlesen, d.h. nicht das er es tut.

      Falls du einen Zugang über VPN herstellen möchtest, ist die Leitung ja bereits verschlüsselt. Falls du z.b. einen Webserver bereit stellen möchtest um z.b. eine Nextcloud selber zu hosten, dann sollten die Daten generell über ssl verschlüsselt werden, das empfiehlt sich aber immer, egal welcher Hoster es ist.

      An sich ist IPv6 kein Nachteil, außer die fehlende Unterstützung bei einigen Providern bzw Programmen.
      Falls du zb nur eine VPN von zb deinem Handy auf dein Netzwerk herstellen möchtest, kannst du prüfen ob dein Handy Provider bereits IPv6 unterstützt, dann kannst du ohne Tunnel oder portmapper los legen.
      Falls du aber eine Webseite Hosten möchtest, welche von überall erreichbar sein soll, kommst du um einen portmapper oder vserver nicht drum herum.

      Grüße Andre

      • Maurice sagt:

        Guten Morgen Andre,
        vielen Dank für deine schnelle Antwort.

        Es geht mir tatsächlich nur um meinen VPN-Server. Dieser soll wie gewohnt mit meinem Handy und Laptop funktionieren.

        Hast Du vllt. eine Anleitung wie ich die IPv6 Adresse mit meiner UDMPro und afraid.freedns erreichbar mache? Ich könnte doch einfach die IPv6 Adresse ohne Privacy Extension bei freedns eintragen oder? Wenn ja wie finde ich die IPv6 Adresse ohne die Extension?

        Danke im Voraus 🙂 und ein schönes Wochenende

        • andre sagt:

          Hallo Maurice,
          Verstehe ich das richtig, du willst die UDMPro als VPN Server nehmen?
          Du kannst natürlich die IPv6 Adresse direkt bei einem DNS Anbieter eintragen, allerdings habe ich das noch nicht mit der UDMPro gemacht, ich benutze die Synology als VPN Server und trage diese IPv6 Adresse direkt bei meinem Provider (eigene Domain) als DNS AAAA Eintrag für eine Subdomain ein.
          Ich denke als IPv6 für die UDMPro musst du die Adresse der Schnittstelle BR0 nehmen, nicht des WAN Ports (ETH8). (Aber da bin ich mir nicht sicher)

          Die UDM Pro kann keine DYNDNS mit IPv6, nur IP4. Das heisst du musst bei einer Änderung der IPv6 (warum auch immer die sich ändern sollte), diese manuell bei deinem DNS Anbieter ändern.
          Auch kann die UDMPro (noch) kein OpenVPN. Letzteres ist für mich wichtig da ich über einen Tunnel (oder Portmapper) weiterleite, ein Tunnel kann nur TCP, kein UDP. Alle anderen VPN Server unterstützen nur UDP. Deshalb nehme ich eine Synology als OpenVPN Server.
          Falls du ein spezielles Problem hast, schreibe es doch mal im Forum https://ubiquiti-networks-forum.de/board/, dort sind sehr viele aktive User welche helfen können, auch ich bin dort vertreten https://ubiquiti-networks-forum.de/user/493-uboot21/
          Grüße Andre

Schreibe einen Kommentar zu andre Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.