PfSense - IPSec mit IPv4 Remote IP wird aber IPv6 genommen
Aus znilwiki
Problem
Wie in diesem Artikel beschrieben FritzBox - Site to Site VPN zu pfSense 2.2 nutze ich einen IPSec-Tunnel zwischen meiner Fritz!Box 7390 zu Hause und inzwischen mehreren pfSense-Appliances.
Nachdem ich auf den pfSense-Systemen nun auch IPv6 voll durchkonfiguriert habe gab es ein neues Problem welches auch schon in die Fehlerliste der pfSense-Entwickler aufgenommen wurde:
https://redmine.pfsense.org/issues/4147
Leider steht da nichts von einem Workaround, also einer Anleitung wie man den Fehler umschiffen kann.
Der Fehler netsetht dadurch das für den IPSec Verbindungsaufbau die Fritz!Box ihren DynDNS-Namen nutzt. Die pfSense löst diesen Namen per DNS auf und erhält nun 2 Antworten:
- Die IPv4 Adresse
- Die IPv6 Adresse
Nun vergleicht die pfSense bei einer eingehenden Anfrage die IP-Adresse der Fritz!Box mit der aus der DNS-Abfrage. Da es ein IPv4 Tunnel ist passt die Adresse nicht zur IPv6 Adresse welche die pfSense zum vergleich nimmt.
Umgekehrt, wenn die pfSense versucht Verbindung zur Fritz!Box aufzunehmen passt es auch nicht da diese dann mit Ihrer IPv6 ankommt und auf der Fritz!Box nur die IPv4 hinterlegt ist.
In der Status-Übersicht sieht das dann so aus:
IPv6 wieder abschalten wollte ich nun auch wieder nicht - also was tun?
Lösung 1: IPv4 zum bevorzugten Protokoll machen
Nach einigen Suchen (Google ist toll - das schwierige ist die richtige Frage zu formulieren) fand ich diese Anleitung:
https://doc.pfsense.org/index.php/Controlling_IPv6_or_IPv4_Preference
Darin wird erklärt das die pfSense bei konfigurierten IPv6 diese auch immer gleich bevorzugt.
Im Prinzip toll und richtig - solange es den Bug gibt aber schlecht für uns. Also konfigurieren wir das um das er bitte schön IPv4 bevorzugt.
Wir gehen zu:
System -> Advanced -> Networking
und Setzen dort den Haken bei
[X] Prefer to use IPv4 even if IPv6 is available