m-net DS-Lite Anschluss mit pfSense

This post is in German as it describes the configuration of pfSense for a German ISP — the details are probably only interesting if you live in Germany.

Ich habe zu Hause jetzt auf einen m-net “Glasfaseranschluss” gewechselt. Technisch handelt es sich dabei um einen “fiber-to-the-buiding” Anschluss, bei dem im Keller ein (vermutlich) 10GBit Glasfaserkabel auf (in meinem Fall) bis zu 16 Teilnehmer aufgeteilt wird; die Kommunikation zwischen dem Kasten im Keller (APL/IAD) und einem Gerät in meiner Wohnung (m-net liefert eine fritzBox mit) passiert durch eine DSL-Technik, in meinem Fall mit G.fast.

Ich will keine fritzBox als Netzzentrale verwenden, da ich die 100%ige Kontrolle haben möchte und die fritzBox denkt einfach zu sehr mit. Daher wollte ich weiterhin eine pfSense als Router/Firewall verwenden. Die Hauptschwierigkeit dabei ist, das man von m-net nur noch einen IPv6-Anschluss bekommt und jede IPv4-Verbindung darüber tunneln muss.

Ich möchte hier zusammenfassen, wie ich das alles zum Laufen brachte:

  1. Statt der fritzBox ein “dummes” Modem verwenden
  2. Die pfSense konfigurieren per PPPoE eine Internetverbindung aufzubauen
  3. Die pfSense konfigurieren über diese Verbindung dann IPv4-Pakete zu tunneln

Klingt zunächst mal alles ganz einfach, aber der Reihe nach.

Das Modem

Ich kannte aus anderen Projekten die Produkte der Firma DrayTek und in der Tat gibt es ein G.fast-kompatibles Modell, den Vigor166. Das Gerät wird als Modem konfiguriert ausgeliefert, versucht also nicht sich ins Internet einzuwählen.

Die einzige Einstellung, die ich vornehmen musste ist die VLAN-id, die m-net in meinen Anschlusseinstellungen als 40 angibt:

.png

Update 2022-02-20: Von einem Leser habe ich erfahren, dass die Verbindung auch mit einem “EchoLife HG8012H” funktioniert: Hier kann man VLAN nicht im Gerät einstellen, sondern muss den Switch oder die PfSense konfigurieren, so dass PPPoE über VLAN 40 läuft.

IPv6 per PPPoE

Auch das war im Prinzip einfach; m-net zeigt wie vorgeschrieben die Zugangsdaten im Kundenportal an:

.png

Im m-net-Forum (das man erst nach Anmeldung und Freischaltung lesen kann) gibt es sogar Konfigurationsvorschläge; konkret bedeutet das, dass man in der pfSense die IPv4-Konfiguration auf “PPPoE” und die IPv6-Konfiguration auf “DHCPv6” stellt:

.png

Die PPPoE-Konfiguration ist einfach, hier müssen die Daten von der m-net-Seite eingegeben werden:

.png

Für DHCPv6 ist es wichtig einzustellen, dass a) die Abfrage durch die IPv4 Verbdingung geschieht, b) dass ein Prefix von 56 bit verlangt werden soll und c) dieser Prefix auch in der Abfrage wirklich verlangt wird:

.png

Damit dann Geräte im LAN diese IPv6-Verbindung auch wirklich nutzen können, muss man auf dem LAN-Interface noch einstellen, dass es sich seine IPv6-Adresse vom WAN-Interface holen soll:

.png

.png

Wenn man dann noch IPv6 DNS-Server für den pfSense DNS-Forwarder einträgt, hat man schon halbes Internet (die modernere Hälfte) — vorausgesetzt die firewall-Regeln lassen auch IPv6-Traffic zu.

AFTR/DS-Lite/IPv4 over IPv6

Das hat mir mehr Kopfzerbrechen bereitet. Es gibt einen Forumspost von 2016 im m-net-Forum in dem jemand beschreibt, wie man die Einstellungen auf der Konsole der pfSense durchführen kann. Inzwischen hat die pfSense auch die nötigen Features um es per Konfigurationoberfläche einzurichten.

Man legt also ein “GIF”-Interface mit folgenden Einstellungen an:

.png

Gotchas dabei:

Dann konnte ich das Gateway der Verbindung (192.0.0.1) als default-Gateway eintragen und hatte sofort V4-Internet (Update 2021-11-30: siehe ganz unten für einen Hinweis!). Ich musste auch kein NAT konfigurieren, da der Traffic sowieso in ein CG-NAT läuft.

Ich hoffe, dass jemand diesen Post findet, bevor so viel Zeit verschwendet ist, wie ich es tun musste :-D

Update 2021-11-30: Danke an Marc für den folgenden Hinweis: Wichtig ist, dass man nicht nur das GRE gif0 erstellt, sondern dem auch noch über “Interface Assignments” ein Interface zur konfiguration zuweist; erst dann taucht das gateway unter “System->Routing” auf und kann als default gateway eingestellt werden.