IP Regeln von suppress_prefixlength 0 auf Zielnetz umstellen?


#1

Moin,

ich würde gerne zur Diskussion stellen, ob wir die IP-Filter-Regeln (ip rule) auf den Gateways von suppress_prefixlength 0 auf eine Filterung basierend auf dem Ziel umstellen wollen.

Grund ist, dass suppress_prefixlength irgendwie nicht richtig mit dem Blackhole-Mechanismus funktioniert, den wir letzten Mittwoch getestet haben.

Etwas weiter ausgeholt: Wenn alle FFRL-Tunnel wegbrechen und die Tabelle 42 (Freifunk / ffnet) keine Standardroute mehr hat, könnte es passieren, dass die Pakete über das Netz des Hosters rausgehen. Ich bin mir nicht sicher, ob das wirklich passiert, weil wir auf eth0 nicht natten. Es kann auch sein, dass es dann trotzdem einfach kaputt ist. Schön ist es jedenfalls nicht, eine klare Firewallregel wäre schöner.

Dazu wurde seitens des FFRL-Backbone-Teams auf den FFRL-Routingdays empfohlen, eine Standardroute mit niedrigerer Priorität in Bird zu hinterlegen, sodass wenn alle Tunnel wegbrechen und er keine mehr von außen lernt, er diese nutzt.

Leider funktioniert das nicht mit der suppress_prefixlength 0 zusammen. Diese Regel nutzen wir, um alle Pakete zunächst durch die Tabelle 42 zu schicken und aber wieder zurück in die Standardtabelle zu springen, falls im Freifunknetz die Standardroute genutzt würde. Wenn man die beiden Regeln kombiniert, ist die VM komplett offline. Das hatten wir am Mittwoch auf dem Parad0x-Gateway getestet und ich habe es in einer weiteren VM reproduzieren können.

Ich hatte mal auf der netdev-Liste nachgefragt, aber keine Antwort bekommen. Ich bin erst seit kurzem auf der Liste und da kommen so 20 Patches am Tag rein, vermutlich geht es einfach unter. Ich halte das für einen Bug im Kernel.

Optionen:

  • Nichts verändern und ggfs. mal überprüfen, ob Pakete über das Netz und die IP des Hosters rausfallen. Ich vermute, dass das eigentlich nicht geht, weil sie ohne Nat nicht zurückkommen könnten. Es würde also keine echte Verbindung zu Stand kommen.

  • Statt der IP-Regel

    16500: from all iif lo lookup ffnet suppress_prefixlength 0

    auf eine Filterung nach Ziel-IP umstellen. Also alles was in unserem Netz liegt, in Tabelle 42, alles extern über eth0 rausschicken. (Hierbei geht es nur um die Pakete, die auf dem Host selbst erstellt werden. Alle Pakete, die nur durchgehen, werden sowieso nur über die Tabelle 42 geroutet.)

Ich würde mich über Meinungen freuen, @Adminteam

Grüße
Matthias