Dual Stack IPv6 in Heimnetzwerk

Seit diesem Jahr habe ich einen Internetprovider bei dem Dual Stack IPv4/IPv6 möglich ist, ohne DS-Lite. Und nach ca. 7 Jahren!! nach dem IPv6 Launch Day am 6. Juni 2012 bin ich mit meinem Heimneztwerk nun auch im IPv6 Zeitalter angekommen.

Vorgeschichte

Dual Stack Light
Im Prinzip eine Möglichkeit um IPv4-Pakete in IPv6 zu kapseln und somit den Zugang zum IPv4 Internetz sicherzustellen. Hierbei werden dem Kunden nur via IPv6 global routbare IP-Adressen bereitgestellt und im LAN werden private IPv4 Adressen genutzt. Die Umwandlung von einer privaten IPv4 Adresse in eine Öffentliche geschieht beim Provider, weshalb auch das Port-Forwarding nicht mehr funktioniert.
Weitere Probleme kann es mit VoIP, VPNs und beim Gaming geben, weshalb es für mich nicht in Frage kommt.

Source: https://de.wikipedia.org/wiki/IPv6#Dual-Stack_Lite_(DS-Lite)

Das Dual Stack Light ist für die Provider sehr attraktiv, da nur wenige öffentliche IPv4 Adressen verfügbar sein müssen, und so die IPv4-Knappheit gelöst werden kann.

Der Ausbau
Letztes Jahr wurde an meinem Wohnort ein Ausbau der Netzwerkinfrastruktur angekündigt: Glasfaser. Endlich FTTH 🎉
Nicht ganz wie sich herausstellen sollte. In der Schweiz hat die Swisscom den Auftrag, die Grundversorgung sicherzustellen und macht daher neben UPC den Ausbau des Netzwerks. Die Swisscom hat dabei einen Glasfaserausbau an meinem Wohnort beworben, jedoch wurde effektiv nur FTTS (Fiber-to-the-Street) ausgebaut, d.h. Glasfaser bis in den Strassenschacht. Die restliche Strecke bis zum Haus wird wie bis anhin über Kupfer gelöst. Die Swisscom wirbt nun (nach dem Ausbau!) mit “Highspeed” Internet.

Es sind tatsächlich Download-Geschwindigkeiten bis zu 500 Mbit/s möglich, jedoch auf dem Rücken eines toten Technologie-Pferdes: das Kupfer.
Ich muss mich aktuell wohl damit abfinden, noch nicht aktuelle Infrastruktur nutzen zu können.

Provider
Was ich jedoch wählen kann, ist der Provider. Mit der neuen Geschwindigkeit über Kupfer kommen auch andere Anbieter in Frage.
Ich war bisher sehr angetan von Init7, jedoch war das Angebot bisher mit einer langsamen Kupferleitung nicht wirtschaftlich, da immer der gleiche Preis bezahlt wird, gleich welche Geschwindigkeit. Das hat sich nun mit FTTS und G.fast geändert.

Für mich ist Init7 der beste Internet Provider in der Schweiz - und bietet Dual Stack IPv4/IPv6 sowie andere Vorteile wie freie Routerwahl, gratis TV und ist bestens Vernetzt (Peerings).

Konfiguration

So, neu gestartet mit Init7 ins Jahr 2020 und gleich etwas herumexperimentiert.

Als Router verwende ich einen Ubiquiti EdgeMax Light - meine Konfigurationen beziehen sich darauf.

  • eth0 ist mein WAN Interface
  • eth1 ist mein LAN Interface, resp. für die VLANs

Mein tatsächlicher Aufbau ist etwas komplexer: Für verschiedene Anwendungszwecke habe ich verschiedene VLANs z.B eines für WLAN, eines für Multimedia, Büro etc.

Von Init7 bekommt man ein ganzes /48 Netz zu Verwendung zugewiesen.

PPPoE
Copper7 von Init7 benötigt PPPoE für eine Internetverbindung, daher muss ich die Einwahl zuerst konfigurieren:

configure
edit interfaces ethernet eth0 pppoe 0
set default-route auto
set mtu 1492
set name-server auto
set user-id INIT7.xyz@downstream.ch
set password XYZ
commit
save

IPv6
Hier wird IPv6 auf dem PPPoE Interface aktiviert - die Addresse wird dabei über PPPoE bezogen:

configure
edit interfaces ethernet eth0 pppoe 0
set ipv6 address autoconf
set ipv6 dup-addr-detect-transmits 1
set ipv6 enable
commit
save

Nun können Netzwerke mit IPv6 konfiguriert werden. Dazu wird der zugewiesene Prefix vom Provider verwendet (z.B. 2001:1620:999::/48) und eine ID (z.b. 0100) für mein Subnetz: 2001:1620:999:0100::/64. Der neue Prefix darf maximal 64-Bit gross sein, da weitere 64-Bit für die Adressgenerierung für einen Host benötigt werden.

Platz für alle Geräte hat das /64 Netz sicher: 2^64 = 18 Trillionen Einzeladressen. Gute weiterführende Informationen zu IPv6 gibt es hier.

Subnetze kann ich demnach frei wählen (0-ffff) durch den 4. Block:

  • 2001:1620:999:0100 z.B. Vlan 100 für das Büro
  • 2001:1620:999:0102 Vlan 102 für das WLAN
  • du hast es verstanden
configure
edit interfaces ethernet eth1 vif 100
set address 2001:1620:999:0100::1/64
set ipv6 address autoconf
set ipv6 dup-addr-detect-transmits 1
set ipv6 router-advert prefix 2001:1620:999:0100::/64
set ipv6 name server none # oder einen anderen dns-server
set ipv6 send-advert true
commit
save

In den meisten IPv6-fähigen Netzwerken werden die Netzwerkadressen über eine zustandslose Adressautokonfiguration (SLAAC) verteilt. Das ist eine ausgefallene Art zu sagen, dass Hosts in einem IPv6-Netzwerk ihre eigenen IP-Adressen konfigurieren d.h. DHCP entfällt.
Durch das Advertising des neuen Prefixes für dieses Subnetz sollte nun jedes IPv6 fähige Gerät im VLAN 100 eine globale IPv6 Addresse konfigurieren, welche sofern die Firewall richtigt konfiguriert ist, ins Internet kommen:

ping -6 init7.ch
PING init7.ch(camelus.init7.net (2001:1620:2777:23::2)) 56 data bytes
64 bytes from camelus.init7.net (2001:1620:2777:23::2): icmp_seq=1 ttl=58 time=9.07 ms
64 bytes from camelus.init7.net (2001:1620:2777:23::2): icmp_seq=2 ttl=58 time=9.05 ms
64 bytes from camelus.init7.net (2001:1620:2777:23::2): icmp_seq=3 ttl=58 time=8.75 ms

--- init7.ch ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 8.746/8.954/9.071/0.147 ms

IPv6 Privacy Extension
Jedes Gerät bekommt mit IPv6 eine eindeutig identifizierbare IPv6 Adresse, welche aus dem Netzwerk-Prefix und aus der MAC-Adresse errechneten Identifier (EUI-64) zusammengesetzt ist. Daselbe Prinzip wäre das, wenn jedes Gerät eine öffentliche IPv4 hätte und NAT nicht angewendet wird.

Obwohl SLAAC in den meisten Netzwerken sehr gut funktioniert und eine sehr effiziente Methode für den Umgang mit IP-Adressen bietet, kann es mehr Informationen über die Geräte im Heimnetzwerk offenlegen, als man das möchte. Websites können durch die IPv6-Adresse die MAC-Adresse des Clients in Netzwerken, die SLAAC verwenden, ermitteln. Dies könnte für Tracking oder Maleware-Kampagnen missbraucht werden. Da gibt es berechtige Bedenken bezüglich Datenschutz und Privatsphäre.

Um das zu Adressieren wurden die Privacy Extensions eingeführt. Sind diese aktiviert, bekommt jede Schnittstelle mindestens eine zusätzliche temporär generierte IPv6-Adresse, welche regelmässig wechselt. Der zufällige Interface Identifier lässt dann keinen Rückschluss mehr auf den Host zu.

Normalerweise ist diese ab Werk aktiv, jedoch sollte dies Überprüft werden. Gerade bei Linux ist dies nicht immer der Fall. Gerade auf Servern oder Nicht-Mobile Geräte ist meistens eine temporäre Adresse nicht erwünscht.

Wenn die Privacy Extensions aktiv sind, sollten mindestes 2 IPv6 Adressen ersichtlich sein und eine hat eine Markierung temporary:

# ip addr show
inet 192.168.100.177/24 brd 192.168.100.255 scope global dynamic
inet6 2001:1620:999:0100:452e:8e5f:f324:dc39/64 scope global temporary dynamic
inet6 2001:1620:999:0100:8d59:1d48:2918:8374/64 scope global dynamic mngtmpaddr noprefixroute
inet6 fe80::959d:24bd:d333:67d1/64 scope link noprefixroute

Es gibt eine Kernel-Tunable, die die temporäre Adressierung auf Linux-Systemen steuert:

# Do not use a temporary address
net.ipv6.conf.all.use_tempaddr = 0
# Set a temporary address, but do not make it the default
net.ipv6.conf.all.use_tempaddr = 1
# Set a temporary address and make it the default
net.ipv6.conf.all.use_tempaddr = 2

Ich empfehle das Setting Permanent auf 2 zu setzen.

Speed

Um das Optimum herauszuholen muss das Hardwareoffloading auf dem Ubiquiti Edgemax aktiviert werden, da sonst die CPU den Durchsatz bei ~80Mbit limitiert. Dadurch werden einige Netzwerk-Operationen an einen speziellen Prozessor ausgelagert.

configure
set system offload ipv4 forwarding enable
set system offload ipv4 pppoe enable
set system offload ipv4 vlan enable
set system offload ipv6 forwarding enable
set system offload ipv4 pppoe enable
commit
save

Im aktuellen Ergebnis fehlen nur 45Mbit bis zur maximalen Download-Bandbreite von 500Mbit und 20Mbit bis zur maximalen Upload-Bandbreite von 130Mbit, welche das Modem ausgemessen hat. Wo der Flaschenhals besteht kann ich aktuell nicht eruieren, jedoch bin ich bereits mit 450 Mbit/s recht zufrieden. Das ist schneller als 99% der Schweizer Nutzer :).

So, Heimnetzwerk launched. ⚡🌐🚀🦄