1

Temat: mwan3 - resetowanie tablicy połączeń

Witajcie,

Podczas konfigurowania mwan3 dla aranżacji:
- główne łącze eth
- backup po LTE
natrafiłem na problem utrzymywanie przez router aktywnych sesji sieciowych (poprzez stare łącze).

Praktyczny przykład:
na kompie z windowsem podłączonym do routera mam ustawiony ciągły ping do 1.1.1.1
na routerze wymuszam przełączenie na backup po LTE (np. poprzez wyjęcie eth z głównego łącza).
po 30 sekundach (w mojej konfiguracji) łącze przeskakuje na LTE, ale pingi do 1.1.1.1 w windowsie cały czas są dropowane (bo router trzyma starą tablicę połączeń).
Wszelkie nowe połączenia z windowsa działają OK.

Ta sama sytuacja występuje w drugą stronę, tzn. powrotu z LTE na główne łącze. Aktywne sesje zostają na backupie.
(to jest mniej dotkliwe bo jednak połączenie sieciowe działa. Problemem może tu być zużywanie limitu LTE).

Rozwiązanie jakie znalazłem to wymuszenie wyczyszczenia tablicy połączeń poprzez:

conntrack -F 

(konieczna instalacja pakietu "conntrack")

Żeby to działało automatycznie umieściłem to w skrypcie:
/etc/mwan3.user:

if [ "$ACTION" == "disconnected" ]; then
  /usr/sbin/conntrack -F
fi

if [ "$ACTION" == "connected" ]; then
  /usr/sbin/conntrack -F
fi

Co ciekawe znalazłem opcję w konfiguracji mwan3 (w pliku /etc/config/mwan3), która teoretycznie powinna rozwiazywać ten problem.
Chodzi o:
option flush_conntrack 'always'

Tutaj cala konfiguracja interfejsu "wan":

config interface 'wan'
        option enabled '1'
        list track_ip '8.8.4.4'
        option family 'ipv4'
        option reliability '2'
        option count '1'
        option timeout '2'
        option failure_latency '1000'
        option recovery_latency '500'
        option failure_loss '20'
        option recovery_loss '5'
        option interval '5'
        option down '3'
        option up '8'
        option flush_conntrack 'always'

Ale z jakiegoś powodu to nie działa. Dlatego musiałem zrobić to w skrypcie.

Może komuś się przyda.

No i w sumie jestem ciekaw 2 rzeczy:
- nie widziałem opisu tego problemu przy omawianiu konfiguracji mwan3. Czyżbym tylko ja miał problem z czyszczeniem aktywnych sesji?
- czemu nie działa opcja: option flush_conntrack 'always' ?

Pozdrawiam
Krzysztof

P.S.
Moje wersja pakietu mwan3: 2.8.13-1

2

Odp: mwan3 - resetowanie tablicy połączeń

1. Tak działa mwan3, sesyjnie, od zawsze. Nie przerzuci aktywnej sesji na inne łącze po jego zmianie. Zawsze pisali że trzeba samemu zerwać sesję.
2. zrób ręcznie echo f > /proc/net/nf_conntrack i zobacz czy ci to działa. Dokładnie to robi mwan3.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3

Odp: mwan3 - resetowanie tablicy połączeń

Cezary napisał/a:

1. Tak działa mwan3, sesyjnie, od zawsze. Nie przerzuci aktywnej sesji na inne łącze po jego zmianie. Zawsze pisali że trzeba samemu zerwać sesję.
2. zrób ręcznie echo f > /proc/net/nf_conntrack i zobacz czy ci to działa. Dokładnie to robi mwan3.

po zrobieniu
echo f > /proc/net/nf_conntrack
działa to poprawnie (sesje są zrywane).

Ale chyba:
echo f > /proc/net/nf_conntrack
robi to samo co: conntrack -F ?

Dziwi mnie, że nie działa opcja:
option flush_conntrack 'always'
w konfiguracji interfejsu w /etc/config/mwan3
Na logikę powinno to rozwiązywać problem.

Aha, zauważyłem, że jeśli ręcznie wymuszam restart demona mwan3 to dostaje komunikat:
"WARN : Service section disabled! - TERMINATE"

Nie wiem czy ma to jakikolwiek związek z w/w zachowaniem.

Pozdrawiam
Krzysztof

4

Odp: mwan3 - resetowanie tablicy połączeń

Bo to się nie nazywa always smile

https://github.com/openwrt/packages/blo … _conntrack

dodaj sobie, zrestartuj itd:

list flush_conntrack ifup
list flush_conntrack ifdown

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: mwan3 - resetowanie tablicy połączeń

Cezary napisał/a:

Bo to się nie nazywa always smile

https://github.com/openwrt/packages/blo … _conntrack

dodaj sobie, zrestartuj itd:

list flush_conntrack ifup
list flush_conntrack ifdown

Masz rację, po dodaniu w konfiguracji interfejsów:
list flush_conntrack ifup
list flush_conntrack ifdown
tablica połączeń jest czyszczona. Dzięki !

Niemniej jednak, w definicji tej funkcji:
https://github.com/openwrt/packages/blo … _conntrack
Widzę opcję 'never' i 'always'.
Ale może coś źle interpretuję.

Pozdrawiam

6

Odp: mwan3 - resetowanie tablicy połączeń

Źle interpretujesz. To jest skrypt który wykonuje się raz przy pierwszym starcie systemu żeby przepisać stare opcje na nowe. I nigdy więcej nie jest używany. Jak byś miał obraz który miałby wkompilowanego mwan3 ze starym opcjami (lub zrobił aktualizację z zachowaniem konfigów) to ten skrypt by zadziałał i przepisał to always na ifup/ifdown.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: mwan3 - resetowanie tablicy połączeń

Cezary napisał/a:

Źle interpretujesz. To jest skrypt który wykonuje się raz przy pierwszym starcie systemu żeby przepisać stare opcje na nowe. I nigdy więcej nie jest używany. Jak byś miał obraz który miałby wkompilowanego mwan3 ze starym opcjami (lub zrobił aktualizację z zachowaniem konfigów) to ten skrypt by zadziałał i przepisał to always na ifup/ifdown.

Teraz rozumiem.

Dzięki za pomoc !