Erfahrungsbericht beim Einsatz von zwei Point-to-Point-Sessions. Auch hier: Ideen willkommen, aber hauptsächlich ein Erfahrungsbericht und Warnung für andere.
Setup:OPNsense 26.7.4_1-amd64
FreeBSD 15.1-RELEASE-p3
OpenSSL 3.5.8
zwei Glas-Uplinks Telekom mit PPPoE,
die auf demselben BNG terminieren.
Problem:Wenn beide PPPoE-Sessions auf demselben BNG terminieren, haben sie dieselbe Uplink-IP. Der Kernel fügt dann die zweite Route *nicht* in die Routingtabelle ein ("ach guck, die Route hab ich ja schon!"), sondern verwirft die Pakete stumm.
Traffic, der auf der Firewall originiert, funktioniert.
Ein genauerer Aufschrieb ist unter Bug 298932 (https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=298932) aufgeführt.
Das führt jedenfalls dazu, dass der Schwenk beim Ausfall der aktiven Leitung funktioniert (die andere Leitung übernimmt), aber der Schwenk zurück schlägt dann fehl, weil die Route in der Routingtabelle dann auf die Backup-Leitung zeigt.
Mögliche Lösungen:- eine Leitung auf ein anderes BNG ziehen lassen (schwierig bei den Supportkanälen)
- eine Leitung zu einem anderen Provider ziehen
- zwei FIBs (nicht supported unter OPNsense)
- zweite Leitung an ein anderes Gerät ziehen, das die Session hält.
Alles bißchen unschön, aber ich gebe zu, das beide Leitungen denselben Endpunkt haben ist auch nicht hübsch ;-)
Ja das ist schon sehr viele Jahre bekannt.
Was ich Kunden mit so einem Setup empfehle ist mehrere Router die alle die PPPoE session terminieren, und die OPNsense dahinter. Durch eindeutiges Routing hat dann die OPNsense unique default routen pro Leitung.
Doppel NAT kann man verhindern indem man statisches routing verwendet und bei der Haupt OPNsense das Source NAT/Destination NAT ausmacht.
Beispiel Transitnetze
(macht NAT) (Nur Router/Firewall)
PPPoE Router 1 --- 10.0.1.1/30 --- 10.0.1.2 OPNsense
PPPoE Router 2 --- 10.0.2.1/30 --- 10.0.2.2 OPNsense