Temat: Archer c5 luci i problem z mwan3

Dzień dobry wszystkim

Jakiś czas temu postanowiłem troszkę zmodernizować swoją sieć i wymienić poczciwego 1043v1 na archer'a c5. Liczyłem co prawda na jakieś wydanie Gargoyle, ale nie doczekałem się wink. Na razie cały czas jako główny pracuje 1043, bo dopiero jak wszystko pokonfiguruję sobie i odpalę co trzeba zamierzam zrobić podmiankę. No ale do rzeczy.
Na początek do Archera wrzuciłem Luci (od Cezarego) próbowałem go ustawić, ale nawet na najzwyklejszym DHCP nie dałem rady. Internet po uruchomieniu na chwilę pojawiał się a potem zanikał. Przeszedłem więc na czyste BB, skonfigurowałem i na początek podstawowe rzeczy działały jak chciałem. Jednak trochę brak GUI mi doskwierał, więc skopiowałem sobie pliki konfiguracyjne i załadowałem najnowsze Luci (OpenWrt Barrier Breaker 14.07 / LuCI 0.12 Branch (0.12+git-14.328.38210-ea67bd1)). No i niestety dalej miałem to samo co wcześniej. Zauważyłem, że po restarcie firewall'a Internet działał do czasu restartu routera lub zrobienia jakiś modyfikacji w sieci. Ostatecznie znalazłem w końcu winowajcę - to mwan3.
W MWAN Interface live status pokazuje najpierw:

wan (eth0.2)
Online (tracking active)

by po paru sekundach zmienić się na:

wan (eth0.2)
Offline

Jak odinstaluję mwan3 wszystko działa jak należy, ale jednak też by mi się on przydał, bo w bliskiej przyszłości na 1043 chcę zrobić sobie zapasowe łącze 3G albo LTE. Kombinowałem z tym mwan3 na wszystkie sposoby, czytałem na wiki openwrt, ale nic nie wydumałem. Po paru sekundach stwierdza że łącze jest offline i zmienia regułki firewall'a. Jeśli zamiast domyślnych IP do sprawdzania podam adres swojej bramki (192.168.1.1 na 1043) to łącze cały czas jest online. Wprowadzę tylko jakiś zewnętrzny IP i zaraz mwan3 wyłącza mi wan. Dodam, że przy wyłączonym mwan3 pingi do dowolnych IP cały czas mi dochodzą bez zakłóceń.

Aktualnie podzieliłem sobie switch'a i wydzieliłem 2 WANy - bez włączonego mwan3 pingi idą przez oba, włączę mwan3 i oba łącza padają. Ja już nie mam pomysłu, poniżej moje Troubleshooting Data:

Software versions : 

OpenWrt - OpenWrt Barrier Breaker 14.07
LuCI - 0.12+git-14.328.38210-ea67bd1

mwan3 - 1.5-8
mwan3-luci - 1.3-5

Output of "cat /etc/config/mwan3" : 

config interface 'wan'
    option enabled '1'
    list track_ip '8.8.4.4'
    list track_ip '8.8.8.8'
    list track_ip '208.67.222.222'
    list track_ip '208.67.220.220'
    option reliability '2'
    option count '1'
    option timeout '2'
    option interval '5'
    option down '3'
    option up '8'

config interface 'wan2'
    list track_ip '8.8.8.8'
    list track_ip '208.67.220.220'
    option reliability '1'
    option count '1'
    option timeout '2'
    option interval '5'
    option down '3'
    option up '8'
    option enabled '1'

config member 'wan_m1_w3'
    option interface 'wan'
    option metric '1'
    option weight '3'

config member 'wan_m2_w3'
    option interface 'wan'
    option metric '2'
    option weight '3'

config member 'wan2_m1_w2'
    option interface 'wan2'
    option metric '1'
    option weight '2'

config member 'wan2_m2_w2'
    option interface 'wan2'
    option metric '2'
    option weight '2'

config policy 'wan_only'
    list use_member 'wan_m1_w3'

config policy 'wan2_only'
    list use_member 'wan2_m1_w2'

config policy 'balanced'
    list use_member 'wan_m1_w3'
    list use_member 'wan2_m1_w2'

config policy 'wan_wan2'
    list use_member 'wan_m1_w3'
    list use_member 'wan2_m2_w2'

config policy 'wan2_wan'
    list use_member 'wan_m2_w3'
    list use_member 'wan2_m1_w2'

config rule 'sticky_even'
    option src_ip '0.0.0.0/0.0.0.1'
    option dest_port '443'
    option proto 'tcp'
    option use_policy 'wan_wan2'

config rule 'sticky_odd'
    option src_ip '0.0.0.1/0.0.0.1'
    option dest_port '443'
    option proto 'tcp'
    option use_policy 'wan2_wan'

config rule 'default_rule'
    option dest_ip '0.0.0.0/0'
    option use_policy 'balanced'

Output of "cat /etc/config/network" : 

config interface 'loopback'
    option ifname 'lo'
    option proto 'static'
    option ipaddr '127.0.0.1'
    option netmask '255.0.0.0'

config globals 'globals'
    option ula_prefix 'fd2a:652b:775d::/48'

config interface 'lan'
    option ifname 'eth1'
    option force_link '1'
    option type 'bridge'
    option proto 'static'
    option netmask '255.255.255.0'
    option ip6assign '60'
    option ipaddr '192.168.10.1'

config interface 'wan'
    option proto 'dhcp'
    option metric '10'
    option _orig_ifname 'eth0'
    option _orig_bridge 'false'
    option ifname 'eth0.2'

config interface 'wan6'
    option ifname '@wan'
    option proto 'dhcpv6'

config switch
    option name 'switch0'
    option reset '1'
    option enable_vlan '1'

config switch_vlan
    option device 'switch0'
    option vlan '1'
    option vid '1'
    option ports '0 2 3 4'

config switch_vlan
    option device 'switch0'
    option vlan '2'
    option vid '2'
    option ports '1 6t'

config switch_vlan
    option device 'switch0'
    option vlan '3'
    option vid '3'
    option ports '5 6t'

config interface 'wan2'
    option proto 'static'
    option ifname 'eth0.3'
    option ipaddr '192.168.1.11'
    option netmask '255.255.255.0'
    option gateway '192.168.1.1'
    option dns '192.168.1.1'
    option metric '20'
    option macaddr 'E8:DE:27:68:6C:58'

Output of "ifconfig" : 

br-lan    Link encap:Ethernet  HWaddr E8:DE:27:68:6C:56  
          inet addr:192.168.10.1  Bcast:192.168.10.255  Mask:255.255.255.0
          inet6 addr: fd2a:652b:775d::1/60 Scope:Global
          inet6 addr: fe80::eade:27ff:fe68:6c56/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14850 errors:0 dropped:0 overruns:0 frame:0
          TX packets:20457 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:2480604 (2.3 MiB)  TX bytes:9249715 (8.8 MiB)

eth0      Link encap:Ethernet  HWaddr E8:DE:27:68:6C:57  
          inet6 addr: fe80::eade:27ff:fe68:6c57/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:31828 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5700 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:9210593 (8.7 MiB)  TX bytes:1513299 (1.4 MiB)
          Interrupt:4 

eth0.2    Link encap:Ethernet  HWaddr E8:DE:27:68:6C:57  
          inet addr:192.168.1.10  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::eade:27ff:fe68:6c57/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:18775 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5669 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:6663088 (6.3 MiB)  TX bytes:1486610 (1.4 MiB)

eth0.3    Link encap:Ethernet  HWaddr E8:DE:27:68:6C:58  
          inet addr:192.168.1.11  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::eade:27ff:fe68:6c58/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:13053 errors:0 dropped:0 overruns:0 frame:0
          TX packets:27 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:1974601 (1.8 MiB)  TX bytes:3457 (3.3 KiB)

eth1      Link encap:Ethernet  HWaddr E8:DE:27:68:6C:56  
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:15225 errors:0 dropped:19 overruns:0 frame:0
          TX packets:20221 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2721667 (2.5 MiB)  TX bytes:9217935 (8.7 MiB)
          Interrupt:5 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:42 errors:0 dropped:0 overruns:0 frame:0
          TX packets:42 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:3007 (2.9 KiB)  TX bytes:3007 (2.9 KiB)

Output of "route -n" : 

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    10     0        0 eth0.2
0.0.0.0         192.168.1.1     0.0.0.0         UG    20     0        0 eth0.3
192.168.1.0     0.0.0.0         255.255.255.0   U     10     0        0 eth0.2
192.168.1.0     0.0.0.0         255.255.255.0   U     20     0        0 eth0.3
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 br-lan

Output of "ip rule show" : 

0:    from all lookup local 
32766:    from all lookup main 
32767:    from all lookup default

Output of "ip route list table 1-250" : 

No data found

Firewall default output policy (must be ACCEPT) : 

ACCEPT

Output of "iptables -L -t mangle -v -n" : 

Chain PREROUTING (policy ACCEPT 7234 packets, 1431K bytes)
 pkts bytes target     prot opt in     out     source               destination         
 7539 1467K fwmark     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain INPUT (policy ACCEPT 3121 packets, 266K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 1561 packets, 570K bytes)
 pkts bytes target     prot opt in     out     source               destination         
 1602  576K mssfix     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT 2259 packets, 798K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 3834 packets, 1369K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain fwmark (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain mssfix (1 references)
 pkts bytes target     prot opt in     out     source               destination         
   81  4204 TCPMSS     tcp  --  *      eth0.2  0.0.0.0/0            0.0.0.0/0            tcp flags:0x06/0x02 /* wan (mtu_fix) */ TCPMSS clamp to PMTU
    1    52 TCPMSS     tcp  --  *      eth0.3  0.0.0.0/0            0.0.0.0/0            tcp flags:0x06/0x02 /* wan2 (mtu_fix) */ TCPMSS clamp to PMTU

Chain qos_Default (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 CONNMARK   all  --  *      *       0.0.0.0/0            0.0.0.0/0            CONNMARK restore mask 0xf
    0     0 qos_Default_ct  all  --  *      *       0.0.0.0/0            0.0.0.0/0            mark match 0x0/0xf
    0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            mark match 0x0/0xf0 length 0:500 MARK xset 0x22/0xff
    0     0 MARK       icmp --  *      *       0.0.0.0/0            0.0.0.0/0            MARK xset 0x11/0xff
    0     0 MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            mark match 0x0/0xf0 tcp spts:1024:65535 dpts:1024:65535 MARK xset 0x44/0xff
    0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            mark match 0x0/0xf0 udp spts:1024:65535 dpts:1024:65535 MARK xset 0x44/0xff
    0     0 CONNMARK   all  --  *      *       0.0.0.0/0            0.0.0.0/0            CONNMARK save mask 0xf0

Chain qos_Default_ct (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            mark match 0x0/0xf tcp multiport ports 22,53 /* ssh, dns */ MARK xset 0x11/0xff
    0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            mark match 0x0/0xf udp multiport ports 22,53 /* ssh, dns */ MARK xset 0x11/0xff
    0     0 MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            mark match 0x0/0xf tcp multiport ports 20,21,25,80,110,443,993,995 /* ftp, smtp, http(s), imap */ MARK xset 0x33/0xff
    0     0 MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            mark match 0x0/0xf tcp multiport ports 5190 /* AOL, iChat, ICQ */ MARK xset 0x22/0xff
    0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            mark match 0x0/0xf udp multiport ports 5190 /* AOL, iChat, ICQ */ MARK xset 0x22/0xff
    0     0 CONNMARK   all  --  *      *       0.0.0.0/0            0.0.0.0/0            CONNMARK save mask 0xff
    0     0 MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            mark match 0x0/0xf tcp multiport ports 22,53 /* ssh, dns */ MARK xset 0x11/0xff
    0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            mark match 0x0/0xf udp multiport ports 22,53 /* ssh, dns */ MARK xset 0x11/0xff
    0     0 MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            mark match 0x0/0xf tcp multiport ports 20,21,25,80,110,443,993,995 /* ftp, smtp, http(s), imap */ MARK xset 0x33/0xff
    0     0 MARK       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            mark match 0x0/0xf tcp multiport ports 5190 /* AOL, iChat, ICQ */ MARK xset 0x22/0xff
    0     0 MARK       udp  --  *      *       0.0.0.0/0            0.0.0.0/0            mark match 0x0/0xf udp multiport ports 5190 /* AOL, iChat, ICQ */ MARK xset 0x22/0xff

Macie jakieś pomysły?

2

Odp: Archer c5 luci i problem z mwan3

1. w przyszłych wydaniach moich luci domyślnie wyłączę mwan3 bo paru ludzi się już z tym spotkało. Tzn już wyłączyłem, ale jeszcze obrazów nie macie smile
2. Powinieneś to zgłosić do autora. jeżeli podane adresy się normalnie pingują a mwan3 szaleje - zgłaszaj to

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

3

Odp: Archer c5 luci i problem z mwan3

Wygląda, że to wina mojego ISP jest, bo nie wraca odpowiedź na pingi, w których są tylko 4 bajty danych. W moim przypadku minimalna ich ilość to 6. Tak samo dzieje się jak pinguję z mojego brzegowego 1043 (Gargoyle 1.6.1.5 (r41803)). Pewnie tylko paru się z tym spotkało bo to nie za częste zjawisko...
Jeśli ktoś zainteresowany rozwiązaniem takiego problemu jest, to odpowiedź znajdzie tutaj: https://forum.openwrt.org/viewtopic.php … 76#p259976

Tobie też dzięki Cezary smile
Poczekam jeszcze może na Twój najnowszy obraz i w końcu wymienię staruszka 1043. W sumie to nawet do Luci się już przekonałem, chociaż początek przez tego mwan3 nieciekawy był.

4

Odp: Archer c5 luci i problem z mwan3

Od dłuższego czasu Archer jest już głównym routerem, a na 1043 też Luci wylądowało i na Gargoyle już nie czekam.
mwan3 też działa poprawnie, ale jest jedno ale...

mwan3 potrzebuje do poprawnego działania różnych metryk na interfejsach, więc dodałem stosowne opcje w /etc/config/network np.:

    option metric '20'

Niestety w przypadku niektórych protokołów (np. qmi czy huaweincm) opcja ta jest ignorowana przy tworzeniu domyślnej ścieżki routingu i zawsze otrzymuje ona metrykę 0. Co prawda do poprawnego działania mwan3 potrzebuje tylko ustawienia tej opcji w /etc/config/network i nie sprawdza chyba jaką faktycznie później metrykę ma ścieżka, ale w trakcie różnych testów zauważyłem problem.
Mianowicie interfejs wan2 (qmi) ustawiłem tylko jako rezerwę (główny to wan z protokołem static), a kombinowałem w puszczaniem części ruchu przez vpn (tun0). No i faktycznie ruch który chciałem szedł przez vpn, ale zauważyłem, że sam vpn leciał nie przez wan, a poprzez wan2. ifdown wan2, a nastepnie ifup wan2 rozwiązało problem.
Problem wynikał najprawdopodobniej z tego, że openvpn wystartował w czasie, gdy mwan3 nie przejął jeszcze kontroli nad firewallem i openvpn zaczął korzystanie z domyślnej ścieżki o najniższej metryce, czyli wan0. Ponieważ ciągle utrzymuje aktywne połączenie (keepalive 5 15), to cały czas ruch leciał po aktywnej ścieżce przez wan2. Chyba dobrze dedukuję?

W wiki openwrt zobaczyłem, że przy protokole qmi nie ma opcji 'metric', więc pewnie temu ona nie działa. Ręcznie mogę usunąć sobie ścieżkę z metryką 0 i dodać taką samą, ale z inną metryką. Niestety nie mam pojęcia jak to zrobić w automacie przy podnoszeniu interfejsu. Pewnie da się to zrobić, tylko jak?

5

Odp: Archer c5 luci i problem z mwan3

/etc/hotplug.d/iface

skrypt zrób lub zmień skryptu qmi.

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

6

Odp: Archer c5 luci i problem z mwan3

Do qmi to skryptu już szukałem, ale jedyne co znalazłem to /usr/bin/qmi-network. Niestety jakoś nie widzę tam wywołania polecenia route, jest to pewnie gdzieś z binarki robione i nie wiem co mogę w tym wypadku poprawić.

A zrobić skrypt to trochę mnie przerasta na razie.

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.191.63.129   0.0.0.0         UG    0      0        0 wwan0
default         static-user-178 0.0.0.0         UG    10     0        0 eth0
default         10.7.0.1        0.0.0.0         UG    30     0        0 tun0
10.7.0.0        *               255.255.255.0   U     0      0        0 tun0
10.191.63.128   *               255.255.255.224 U     0      0        0 wwan0
178.123.132.24   *               255.255.255.252 U     10     0        0 eth0
192.168.10.0    *               255.255.255.0   U     0      0        0 br-lan

Ręcznie daję:

route  del -net 0.0.0.0 dev wwan0
route  add -net 0.0.0.0 gw 10.191.63.129 netmask 0.0.0.0 metric 20 dev wwan0

I sprawa załatwiona.
A w skrypcie nie znam adresu bramki oraz nie wiem z jakiej okazji się uruchomił (po podniesieniu którego interfejsu) i czy akurat w tym momencie ma się wykonać.

7

Odp: Archer c5 luci i problem z mwan3

/lib/netifd/proto/qmi.sh ale to i tak woła binarny program.

Do skryptu są przekazywane zmienne. Zrób sobie env >> /tmp/log.exe i zobaczysz - jest tam nazwa interfejsu, a adresy możesz sobie odczytać już systemowo.

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

8

Odp: Archer c5 luci i problem z mwan3

Cezary napisał/a:

a adresy możesz sobie odczytać już systemowo.

nie wiem o jaki to dokładnie sposób Ci chodziło, ale zrobiłem taki skrypt:

#!/bin/sh

if [ "$INTERFACE" = "wan2" ] && [ "$ACTION" = "ifup" ]; then
   GW=$(route -n | grep 'UG[ \t]' | grep wwan0 | awk '{print $2}')
   route  del -net 0.0.0.0 dev wwan0
   route  add -net 0.0.0.0 gw $GW netmask 0.0.0.0 metric 20 dev wwan0
fi

no i działa smile. Po ifup wan na chwilę pojawia się ścieżka z metryką 0, ale szybko zmienia już na 20.

Zaskakuję sam siebie pomału, dzięki za naprowadzenie.