Home Network Remote Access IPv6 mit Routerkaskade und PD

Mit Präfix-Delegation (RFC 3633). 

Ohne VPN, ohne fixed-IPs *), ohne DynDNS, ohne legacy-IP
und ohne WHOIS Eintrag ;-)

IPv6 connect auch als Praesentation verfuegbar.

Warum nicht "Remote Desktop"-tools? Eine Antwort:  Remote Desktop via RDP: Liebstes Kind der Cybercrime-Szene und eine klare Bewertung von Bruce Schneier.  

Darum lieber:

"Ohne Fummel und Gemurkse."  (Clemens Schrimpe in "RFCE014: IPv6" )


Zugriff auf Hosts im Heimnetz ist möglich.
(alle Beispieladressen sind anonymisiert)

1) Fritz Box konditionieren
2) Router Port Forwarding
3) Rechner (Hosts) passend konfigurieren
4) Zugriffsdaten synthetisieren

1) Fritz Box konditionieren

Internet / Zugangsdaten / IPv6 /
 - IPv6-Unterstützung aktiv  JA
 - Native IPv6-Anbindung verwenden JA
 - Globale Adresse automatisch aushandeln JA
sonst nichts.

Internet / Freigaben / Portfreigaben 
(Client-Geraet muss hier eingetragen sein. )
Geraet: Zielgeraet Router Eintrag (Turris) ueber den Stift auswaehlen;
IPv6 Interface-ID ist gesetzt.
IPv6-Einstellungen
 - PING6 freigeben JA
 - Firewall für delegierte IPv6-Präfixe dieses Gerätes öffnen JA
sonst nichts.
Unter Internet / Online-Monitor sollte jetzt Portfreigabe als Link blau erscheinen.

Freigaben / Fritz!Box-Dienste / Internetzugriff 
Nichts setzen.
(Zertifikat im Firefox importieren: Ja)

Heimnetz / Netzwerk / Netzwerkeinstellungen
Betriebsart im Heimnetz
 - Internet-Router JA

Heimnetzfreigaben
nichts / alle nein.

Heimnetz / Netzwerk /  IP-Adressen / IPv6-Adressen

Unique Local Addresses
 - Unique Local Addresses (ULA) zuweisen, solange keine IPv6-Internetverbindung besteht (empfohlen)  JA

Weitere IPv6-Router im Heimnetz
 - Auch IPv6-Präfixe zulassen, die andere IPv6-Router im Heimnetz bekanntgeben  JA
 - Diese FRITZ!Box stellt den Standard-Internetzugang zur Verfügung  JA
 - Hoch JA

DNSv6-Server im Heimnetz
 - Lokaler DNSv6-Server ist ausgefuellt mit der FritzBox-Adresse (!) 
GLEICH der oben bei Unique Local Address Ihrer FRITZ!Box: fd00::7da:38fe:f5a8:a9f8/64
sonst nichts.

DHCPv6-Server im Heimnetz

DHCPv6-Server in der FRITZ!Box für das Heimnetz aktivieren:
 - DNS-Server und IPv6-Präfix (IA_PD) zuweisen
NICHT "DNS-Server, Präfix (IA_PD) und IPv6-Adresse (IA_NA)" (=feste IP) zuweisen
sonst nichts.



Emailfunktion einrichten:

System / Push_Service / Absender
Push Service aktiv JA
Eintragen von E-Mail-Adresse: und Kennwort:
System / Push_Service / Absender / Kontodaten - weitere Einstellungen
Eintragen von  E-Mail-Benutzername: und SMTP-Server: und Port:
Dieser Server unterstützt eine sichere Verbindung (SSL) JA
E-Mail-Versand nach Übernahme der Einstellungen testen. JA

System / Push_Service / Push_Services / FRITZ!Box System Senden an
 - Änderungsnotiz
 - Aktuelle IP-Adresse
Push Service aktiv JA
Empfängermail eintragen.

(Anmerkung: Die Email-Funktion zur Kommunikation der PD-Adresse liesse sich alternativ mit MQTT oder anderen Mechanismen abbilden.)

Ergaenzung:
Eine sehr verkuerzte Anleitung zur Präfix Delegation gibt es auch bei AVM unter dem Namen "IPv6-Subnetz in FRITZ!Box einrichten".

2) Router Port Forwarding

Im IPv6 braucht es kaum Port forwarding mehr :-)

Turris
Weboberflaeche Turris LuCI starten
Network / Firewall / Traffic_Rules / Open ports on router.
siehe hier: https://doc.turris.cz/doc/en/howto/accessing_turris_from_wan

Name: wan2lan4interfun0001
Restrict to address family:  IPv6 only (!keinen v4-Dreck eintreten!)
Protocol: TCP    (sollte reichen)
SouceZone: wan+wan6 roter Kombi
Source MAC address: Any    (evtl. auf FritzBox begrenzen)
Source address: Any
Source port: Any
Destination zone: gruener LAN Kombi
Destination address: any  (evtl. noch weiter begrenzen)
Destination port: 22
Action: accept

das wars.

Generell vorausgesetzt: Prefix Delegation funktioniert einwandfrei.
Anmerkung:
Network / Interfaces / WAN / DHCP Server / IPv6 Settings : kann alles disabled.
Network / Interfaces / LAN / DHCP Server / IPv6 Settings :
Router Advertisement-Service  "server mode" (MUSS)
DHCPv6-Service "server mode"  (muss)
NDP-Proxy  "relay mode" (funktioniert gut)
DHCPv6-Mode  "stateless  +  stateful"   (funktioniert gut)
alle weiteren leer lassen.
Verbesserungsmoeglichkeit
In einem 1-LAN Netz reicht eine /64 Zuweisung. Dann erübrigt sich das Problem mit der flippenden 00--fc im letzten Block des Netwerk-Teils wegen uneindeutiger /62 Zuordnung.
In LuCI
Network / Interfaces / WAN6 / Common Configuration; General Setup ; Request IPv6-prefix of length auf /64 einstellen.
Dann wird fuer das lokale LAN nur noch ein /64er Praefix angefordert und erteilt.



3) Rechner (Hosts) passend konfigurieren

Ubuntu Netzwerk settings fuer die Verbindungen konfigurieren:

Settings muessen sein: 
 - IPv6Erweiterungen (privacy extensions): Aktivieren temporaere Adresse (prefer temporary address)
 - IPv6 Adresserstellmodus (addresss generation mode): EUI64 (NOT stable privacy)
(in /etc/NetworkManager/system-connections/)
Das bedeutet, NetworkManager (hier Ubuntu) muss ueber GUI oder mit nmcli gesetzt werden auf
 - addr-gen-mode=eui64 und
 - ip6-privacy=2
sonst nicht vorhersagbar u/o. nicht datenschuetzend.
Dazu:
    nmcli connection modify MEINECONNECTIONNAME     ipv6.ip6-privacy 2   
    nmcli connection modify MEINECONNECTIONNAME      ipv6.addr-gen-mode eui64
als sudo.


4) Zugriffsdaten synthetisieren


    inet6 2009:176:7fc2:25fc:7da:38fe:f5a8:a9f8/64 scope global dynamic mngtmpaddr noprefixroute


Aufbau
Herleitung der Adresse fuer Host

Input

Email IN-Adresse:
IPv6:     [2009:176:2:50:7eff:11ff:7fc6:f7b] NICHT brauchbar
Host/Interface-ID ist statisch

Email „Portfreigaben“:
Exposed Host ... (2009:176:7fc2:25fc::/62)
2009:176:7fc2:25fc:   <<-- wichtig. Endet gerne auf fc:.


Peters tatsaechliche Adresse:
Settings muessen sein: 
 - IPv6Erweiterungen (privacy extensions): Aktivieren temporaere Adresse (prefer temporary address)
 - IPv6 Adresserstellmodus (addresss generation mode): EUI64 (NOT stable privacy)
(in /etc/NetworkManager/system-connections/)

IST:
2009:176:7fc2:25fc:7da:38fe:f5a8:a9f8/64  scope  global  dynamic  mngtmpaddr  noprefixroute   


Analyse Praefix und Interface ID, host part

Prefix:
„Portfreigaben“  die 4 Bloecke nehmen:
2009:176:7fc2:25fc     (stimmt bei /62 nur in etwa ueberein)  GUI sagt: 2009:176:7fc2:2500
Die Email von AVM stimmt nicht immer ueberein mit deren Angabe zur PD in der GUI.
Wenn NetworkManager (hier Ubuntu) mit addr-gen-mode=eui64 und ip6-privacy=2 entsprechend (temporaere externe Adresse) gefahren wird, sind die Email-Angaben oft so abzuaendern: 
Beim Prefix (2009:176:7fc2:25fc::/62 lt. mail) die letzten beiden Hexadezimalstellen  entweder auf 00 setzen oder auf fc. Wegen /62 unklar.
Aus "2009:176:7fc2:25fc::x/62" wird dann "2009:176:7fc2:2500::x/62"
und die tatsaechliche IP lautet vielleicht auf "2009:176:7fc2:2500:7da:38fe:f5a8:a9f8".
62 .. 64 ... Warum auch immer ... meist 00:, manchmal fc:

 -  -  -  -

Host/Interface-ID :
4 Bloecke aus der EUI64(!) machen,

Erzeugen
der EUI mit Bieringers ipv6calc
Die enp6s0 hat die MAC 74:9a:38:a1:18:b7
ipv6calc --mac_to_eui64   "74:9a:38:a1:18:b7"
769a:38ff:fea1:18b7


daraus ergibt sich z.B.:
2009:176:7fc2:25fc:769a:38ff:fea1:18b7 oder 2009:176:7fc2:2500:769a:38ff:fea1:18b7  (probieren)

Der ping:
ping6  2009:176:7fc2:25fc:769a:38ff:fea1:18b7  (OK)
       
Das ssh:
ssh -6  -i ~/.ssh/thenetwork.key -l username -p 22  ping6  2009:176:7fc2:25fc:769a:38ff:fea1:18b7   [KEINE Klammern!!!]

Beim Turris:
praefix from „Portfreigaben“ + "::1"
2009:176:7fc2:25fc und "::1" ergibt 2009:176:7fc2:25fc::1        soweit nicht geblockt.

 - - - - -

Danke an P. Bieringer und C. Schrimpe fuer ihre Arbeiten.

External ID:
https://test.schrimpe.de/
https://www.ipv6.bieringer.de/ 
https://requestforcomments.de/archives/412      IPv6 - wie es geht
https://tools.ietf.org/html/rfc4291      IPv6 Addressen - wie es geht

Dokumentation des ip Befehls (Datei ip-cref.ps) von Alexey N. Kuznetsov



Sonstiges:
overhead reduction:
ip a | awk '$1 == "inet6" && $2 ~ /2[0-9,a-z][0-9,a-z][0-9,a-z][:]/ && $0 ~  /prefixroute/ {print  $2 "  " $3"  " $4 "  "$5 "  "$6 "  "$7 "  "$8  "  "$9}'


ipv6 test





 * )   Permanente IP anstatt Fixed IP !
IPv6 ist kein gewendetes IPv4.
Richtig werden verlässlich permanente IPs so erzeugt:

For local IP addressing, there is a construct called a Unique Local Address (ULA) that is a section of private IPv6 address space carved-out specifically for traffic on LANs.
To maintain a consistent IPv6 address for each host on the LAN, it will be necessary to generate an IPv6 ULA prefix and assign a subnet within the ULA to each LAN (internal) interface on your router.
This becomes the "predictable" IPv6 address that hosts within the LAN will use
to communicate with one another, and can be used in the internal DNS server for the LAN, etc. "

Vorgehen:
Setzen des Praefix 
config globals 'globals'
    option ula_prefix 'fd34:1234:1234::/48'    (oder angepasst mit Subnet ID)







The Turtle is dancing!