06 Maja 2021 09:30:53
Nawigacja
· Strona Główna
· Galeria
· Forum
· Linki

· Tomato by Shibby

· Wiki-OpenWrt
· Wiki-DD-WRT
· Emulatory sprzętu

Darowizna
Ostatnio na forum
Najnowsze tematy
· Multiroom N z wykorz...
· Repeater Wi-Fi a prz...
· netgear wndr4500
· Netgear 4500 v1 + Hu...
· Swap w pliku
· Asus RT-NU68U Nordvpn
· [MOD] FreshTomato-AR...
· WRT54G V.6
· [S] Shuttle DX30
· [S] Netgear R6400v2
· [S] ASUS RT-AC87U
· [HOWTO] MultiRoom Se...
· [HOWTO] MultiRoom Se...
· Netgear r700 restart...
· [HOWTO] Klient SMTP ...
· [HOWTO] Automatyczne...
· VPN er-x
· [s] Asus RT-AC3200
· [HOWTO] DynDNS w OVH...
· RT-AC56U z moda AC68...
Najciekawsze tematy
· Multiroom N z wyk... [1211]
· [MOD] FreshTomato... [537]
· RT-AC56U z moda A... [6]
· Asus RT-NU68U Nor... [3]
· [HOWTO] DynDNS w ... [3]
· Netgear 4500 v1 +... [2]
· WRT54G V.6 [2]
· VPN er-x [2]
· [HOWTO] Klient SM... [1]
· Repeater Wi-Fi a ... [0]
· netgear wndr4500 [0]
· Swap w pliku [0]
· [S] Shuttle DX30 [0]
· [S] Netgear R6400v2 [0]
· [S] ASUS RT-AC87U [0]
· [HOWTO] MultiRoom... [0]
· [HOWTO] MultiRoom... [0]
· Netgear r700 rest... [0]
· [HOWTO] Automatyc... [0]
· [s] Asus RT-AC3200 [0]
Ankieta
Jaki procesor posiada twój router?

Broadcom MIPSEL
Broadcom MIPSEL
38% [145 głosów]

Broadcom ARM
Broadcom ARM
51% [198 głosów]

Atheros
Atheros
5% [21 głosów]

Marvell
Marvell
1% [4 głosów]

Ralink
Ralink
1% [2 głosów]

Intel/AMD/VIA
Intel/AMD/VIA
1% [4 głosów]

Żaden z powyższych
Żaden z powyższych
3% [12 głosów]

Ogółem głosów: 386
Musisz zalogować się, aby móc zagłosować.
Rozpoczęto: 02/02/2015 09:38

Archiwum ankiet
Reklama
Twoje IP
18.232.50.137
Reklama
Zobacz temat
 Drukuj temat
[HOWTO] MultiRoom SerwerOVPN na EDGERouter - Połączenie pod kontrolą
hermes-80
Jak wiemy w dzisiejszych czasach każdy musi sobie jakoś radzić, a wiec i nasza społeczność też znalazła sposób aby ominąć lokalna sieć w systemach MultiRoom i puścić usługę w dalsze zakątki pajęczyny.
Usługodawca nie ułatwia nam sprawy w zakresie diagnostyki połączeń szczególnie w sieci lokalnej wycinając protokół diagnostyczny na dekoderach co prowadzi do braku możliwości diagnozy poprawnego fizycznego połączenia miedzy dekoderami w warstwie 2 sieci.
To najbardziej mnie frustrowało, że problem dopiero dostrzegamy gdy znika obraz na którymś z tv systemu MR, a pani na infolinii każe mi sprawdzić ustawienia DNS-a na interfejsie dekoderów.

Podczas awarii nawet w sieci LAN pierwszym punktem zanim gdzieś zadzwonimy powinno być sprawdzenie fizycznego połączenia miedzy dekoderami, bo to może się wtyczka przekrzywić, switch oszaleć, czy kabel uszkodzić. Niby w dekoderach cyfry jest wbudowany w interfejs narzędzie diagnostyczny ale nie raz się już przekonałem, że to raczej żart, a jego główną zaletą jest zawieszanie się ;) i najczęściej pomocny bywa jedynie przy fabrycznym resecie dekodera.

"Jak tu żyć" - parafrazując słynnego swego czasu rolnika, a może jednak da się coś zrobić. Z pomocą przychodzi nam protokół ARP i jego mechanizmy komunikacji w warstwie drugiej. Jego podstawowa zaleta jest taka, że działa w oparciu tylko o warstwę druga i domenę rozgłoszeniową.

Na razie odniesiemy się do routera EDGERouter choć na Tomato jest to jeszcze prostsze (może dla tego że więcej czasu w grzebaniu po systemie tam się spędziło).

1. Skoro mamy już zainstalowane repozytorium na routerze:https://openlinks...d_id=22604 to sobie doinstalujemy narzędzie:
Pobierz kod źródłowy  Kod źródłowy
ubnt@ubnt:~$ sudo apt-get update
ubnt@ubnt:~$ sudo apt-get install arping




I to tak na prawdę wszystko co nam potrzebne jest do realizacji celu.
Teraz wystarczy tylko napisać skrypt ;). Każdy może sobie to zrobić we własnym zakresie i przypływie weny twórczej.

Dla niewtajemniczonych podzielę się własnym wytworem fantazji.

Wiemy już po lekturze przenoszenia skryptu smpt-cli jak należy go zapisać na routerze i nadać mu prawa
Pobierz kod źródłowy  Kod źródłowy
ubnt@ubnt:~$ chmod 777 /config/CheckL2MR_EDGE.sh





Pobierz kod źródłowy  Kod źródłowy
#!/bin/bash
clear
R1="0*Cinek_Router_Server_OVPN"
R2="192.168.2.153*Cinek_MR_Server_MR"
R3="192.168.2.152*Cinek_MR_Client_MR_1"
R4="192.168.2.1*Marian_Rouer_Client_OVPN_1"
R5="192.168.2.2*Marian_MR_Client_MR_1_Marian"
R6="192.168.2.3*Marian_MR_Client_MR_2_Michal"
R7="192.168.2.10*Grzesiek_Router_Client_OVPN_2"
R8="192.168.2.11*Grzesiek_RR_Client_RR_1"
R9="0*Brak"
R10="0*Brak"
R11="0*Brak"
R12="0*Brak"
BR="br0"
for A in $R1 $R2 $R3 $R4 $R5 $R6 $R7 $R8 $R9 $R10 $R11 $R12
   do
   IP=`echo "$A" |awk -F"*" '{printf $1}'`
   OPIS=`echo "$A" |awk -F"*" '{printf $2}'`
      if [ "$IP" != 0 ]; then
      PING=`sudo /usr/sbin/arping -I "$BR" "$IP" -c 5 |grep "0 reply" |wc -l`
         if [ "$PING" = 1 ]; then
         echo "---------------------------------------------------------------------"
         echo `date`
         echo "Brak_polaczenia ----- $OPIS ----- $IP"
         fi
         if [ "$PING" = 0 ]; then
         echo "---------------------------------------------------------------------"
         echo `date`
         echo "OK ----- $OPIS ----- $IP"
         echo "---------------------------------------------------------------------"
         fi
      fi
done
exit 0




Trochę o konfiguracji:
- R1-R12 to zmienne definiujące nasze IP i opisy routerów i dekoderów, a separatorem jest *
Pierwsze pole wpisujemy IP dekodera/routera(most vpn), a drugie opis (może być dowolny lecz ciągłym tekstem bez spacji). Zalecam rozdzielenie opisów między dekoderami a routerami bo to w czytelny sposób wyświetli nam wynik i pomoże zlokalizować usterkę.

- Aby wykluczyć dana zmienna R w sprawdzaniu bo np.: nie mamy takiej ilości sprzętu w sieci wystarczy zamiast IP wpisać 0.
- BR to bridge do którego wpięliśmy interfejs tap na routerze

Jest to skrypt, który sprawdza nam połączenie w czasie rzeczywistym czyli odpalamy konsole i dostajemy wynik:
Skrypt umieszczony w lokalizacji /config

IP wszystkich uprzedzeń wymienionych w tym przypadku musi być stałe nadane z palca lub przez statyczny DHCP - by to miało sens.

Interpretacja wyniku:


Pobierz kod źródłowy  Kod źródłowy
ubnt@ubnt:~$ /config/./CheckL2MR_EDGE.sh




---------------------------------------------------------------------
Sat May 1 11:57:07 CEST 2021
OK ----- Cinek_MR_Server_MR ----- 192.168.2.153
---------------------------------------------------------------------
---------------------------------------------------------------------
Sat May 1 11:57:12 CEST 2021
OK ----- Cinek_MR_Client_MR_1 ----- 192.168.2.152
---------------------------------------------------------------------
---------------------------------------------------------------------
Sat May 1 11:57:18 CEST 2021
OK ----- Marian_Rouer_Client_OVPN_1 ----- 192.168.2.1
---------------------------------------------------------------------
---------------------------------------------------------------------
Sat May 1 11:57:23 CEST 2021
OK ----- Marian_MR_Client_MR_1_Marian ----- 192.168.2.2
---------------------------------------------------------------------
---------------------------------------------------------------------
Sat May 1 11:57:28 CEST 2021
OK ----- Marian_MR_Client_MR_2_Michal ----- 192.168.2.3
---------------------------------------------------------------------
---------------------------------------------------------------------
Sat May 1 11:57:33 CEST 2021
OK ----- Grzesiek_Router_Client_OVPN_2 ----- 192.168.2.10
---------------------------------------------------------------------
---------------------------------------------------------------------
Sat May 1 11:57:38 CEST 2021
OK ----- Grzesiek_MR_Client_MR_1 ----- 192.168.2.11
---------------------------------------------------------------------
ubnt@ubnt:~$

Tak wygląda wynik gdy wszystko jest w porządku. Połączenie między routerem na którym stoi serwer vpn jest z każdym elementem sieci vpn (końcówka tunelu reprezentowana przez IP routerów i klientami czyli IP dekoderów) w drugiej warstwie sieciowej.


Pobierz kod źródłowy  Kod źródłowy
ubnt@ubnt:~$ /config/./CheckL2MR_EDGE.sh




---------------------------------------------------------------------
Sat May 1 11:57:07 CEST 2021
Brak_polaczenia ----- Cinek_MR_Server_MR ----- 192.168.2.153
---------------------------------------------------------------------
---------------------------------------------------------------------
Sat May 1 11:57:12 CEST 2021
Brak_polaczenia ----- Cinek_MR_Client_MR_1 ----- 192.168.2.152
---------------------------------------------------------------------
---------------------------------------------------------------------
Sat May 1 11:57:18 CEST 2021
OK ----- Marian_Rouer_Client_OVPN_1 ----- 192.168.2.1
---------------------------------------------------------------------
---------------------------------------------------------------------
Sat May 1 11:57:23 CEST 2021
OK ----- Marian_MR_Client_MR_1_Marian ----- 192.168.2.2
---------------------------------------------------------------------
---------------------------------------------------------------------
Sat May 1 11:57:28 CEST 2021
Brak_polaczenia ----- Marian_MR_Client_MR_2_Michal ----- 192.168.2.3
---------------------------------------------------------------------
---------------------------------------------------------------------
Sat May 1 11:57:33 CEST 2021
OK ----- Grzesiek_Router_Client_OVPN_2 ----- 192.168.2.10
---------------------------------------------------------------------
---------------------------------------------------------------------
Sat May 1 11:57:38 CEST 2021
OK ----- Grzesiek_MR_Client_MR_1 ----- 192.168.2.11
---------------------------------------------------------------------
ubnt@ubnt:~$


Gdy widzimy, że brak połączenia występuje tylko na dekoderach MR klienckich, a nasze połączenie spinających tunel jest OK przyczyny problemu szukamy fizycznie od kabla wpiętego w końcówkę klienta vpn po nasz dekoder. Najczęściej reset fabryczny dekodera klienckiego pomaga.

Co innego gdy nasz serwer MR nie odpowiada to mimo iż cała sieć działa sprawnie padnie nam usługa MR na klienckich dekoderach - tak właśnie wykryłem niesprawność sprzętowo/softwarową w trybie czuwania dekodera matki i skończył życie w serwisie (wymiana na nowy).

Ostatni wariant to gdy nie mamy połączenia z końcówką tunelu vpn:

Pobierz kod źródłowy  Kod źródłowy
ubnt@ubnt:~$ /config/./CheckL2MR_EDGE.sh




---------------------------------------------------------------------
Sat May 1 11:57:07 CEST 2021
OK ----- Cinek_MR_Server_MR ----- 192.168.2.153
---------------------------------------------------------------------
---------------------------------------------------------------------
Sat May 1 11:57:12 CEST 2021
OK ----- Cinek_MR_Client_MR_1 ----- 192.168.2.152
---------------------------------------------------------------------
---------------------------------------------------------------------
Sat May 1 11:57:18 CEST 2021
Brak_polaczenia ----- Marian_Rouer_Client_OVPN_1 ----- 192.168.2.1
---------------------------------------------------------------------
---------------------------------------------------------------------
Sat May 1 11:57:23 CEST 2021
Brak_polaczenia ----- Marian_MR_Client_MR_1_Marian ----- 192.168.2.2
---------------------------------------------------------------------
---------------------------------------------------------------------
Sat May 1 11:57:28 CEST 2021
Brak_polaczenia ----- Marian_MR_Client_MR_2_Michal ----- 192.168.2.3
---------------------------------------------------------------------
---------------------------------------------------------------------
Sat May 1 11:57:33 CEST 2021
OK ----- Grzesiek_Router_Client_OVPN_2 ----- 192.168.2.10
---------------------------------------------------------------------
---------------------------------------------------------------------
Sat May 1 11:57:38 CEST 2021
OK ----- Grzesiek_MR_Client_MR_1 ----- 192.168.2.11
---------------------------------------------------------------------

Oznacza to że automatycznie cały segment sieci VPN będzie zgłaszał brak połączenia czyli wszystkie dekodery umieszczone w tym segmencie. Zazwyczaj oznacza to na problem z nawiązaniem połączenia vpn - padł tunel vpn/router/konfiguracja vpn lub brakiem prądu w danej lokalizacji.


Powyższy opis przedstawia nam sytuacje detekcji problemu w czasie rzeczywistym - ale chodzi nam bardziej o to by skrypt czuwał za nas i tylko podczas wykrycia jakiegoś problemu dał nam znać byśmy mogli zadziałać zanim ktoś zgłosi problem ;)

Do tego nam był potrzebny klient smtp na EDGERouter: https://openlinks...d_id=22604
Skoro mamy go już zainstalowanego i przetestowaliśmy odbiór naszej poczty to zabierzmy się za skrypt.

Pobierz kod źródłowy  Kod źródłowy
#!/bin/bash
R1="0*Cinek_Router_Server_OVPN"
R2="192.168.2.153*Cinek_MR_Server_MR"
R3="192.168.2.152*Cinek_MR_Client_MR_1"
R4="192.168.2.1*Marian_Rouer_Client_OVPN_1"
R5="192.168.2.2*Marian_MR_Client_MR_2_Marian"
R6="192.168.2.3*Marian_MR_Client_MR_3_Michal"
R7="192.168.2.10*Grzesiek_Router-Client_OVPN_2"
R8="192.168.2.11*Grzesiek_MR_Client_MR_4"
R9="0*Brak"
R10="0*Brak"
R11="0*Brak"
R12="0*Brak"
LOK="/config/mail.txt"
TEST="/config/test"
BR=br0
PASS="hasło do poczty"
ADR="adres naszej poczty"
HOST_SMTP="adres naszego serwera smtp np dla o2 to poczta.o2.pl, dla interii poczta.interia.pl itd"
LINIA=28
echo "1" >> $TEST
DEL_LOG=`grep "1" < "$TEST" | wc -l`
if [ $DEL_LOG -ge 2 ]; then
   if [ -e "$LOK" ]; then
      rm "$LOK"
      if [ -e "$TEST" ]; then
         rm "$TEST"
      fi
   fi   
fi
for A in $R1 $R2 $R3 $R4 $R5 $R6 $R7 $R8 $R9 $R10 $R11 $R12
   do
   IP=`echo "$A" |awk -F"*" '{printf $1}'`
   OPIS=`echo "$A" |awk -F"*" '{printf $2}'`
      if [ "$IP" != 0 ]; then
      PING=`sudo /usr/sbin/arping -I "$BR" "$IP" -c 5 |grep "0 reply" |wc -l`
         if [ "$PING" = 1 ]; then
         echo "-------------------------------------------------------------------------" >> "$LOK"
         echo `date` >> "$LOK"
         echo "Brak_polaczenia ----- $OPIS ----- $IP" >> "$LOK"
         echo "-------------------------------------------------------------------------" >> "$LOK"
         fi
         if [ "$PING" = 0 ]; then
         echo "-------------------------------------------------------------------------" >> "$LOK"
         echo `date` >> "$LOK"
         echo "OK ----- $OPIS ----- $IP"  >> "$LOK"
         echo "-------------------------------------------------------------------------" >> "$LOK"
         sudo chmod 777 "$LOK"
         fi
      fi
done
for B in $R1 $R2 $R3 $R4 $R5 $R6 $R7 $R8 $R9 $R10 $R11 $R12
do
   IP=`echo "$B" |awk -F"*" '{printf $1}'`
   OPIS=`echo "$B" |awk -F"*" '{printf $2}'`
      if [ "$IP" != 0 ]; then
      MAIL=`grep "Brak_polaczenia" < "$LOK" | grep $OPIS | wc -l`
         if [ $MAIL -ge 2 ]; then
         tail -n "$LINIA" /config/mail.txt > /config/mail1.txt
         /config/smtp-cli --host="$HOST_SMTP" --port=587 -4 --hello-host=EDGERouter --disable-starttls --disable-ssl --auth-login --missing-modules-ok --user="$ADR" --pass="$PASS" --from="$ADR" --to="$ADR" --subject="MultiRoom Zawieszony" --body-plain="/config/mail1.txt"
         rm "$LOK"
         fi
      fi
done
exit 0




Zapisuje sobie go w lokalizacji pod nazwą - jak widać /config/WatchL2MR_EDGE.sh

Konfiguracja:
R1-R12 - to samo co w skrypcie poprzednim
LOK,TEST - pliki pomocnicze nie należy zmieniać jak nie trzeba
BR - to samo co w skrypcie poprzednim
PASS - hasło do naszego serwera pocztowego
ADR - adres naszej poczty
HOST_SMTP - adres naszego serwera SMTP
LINIA - liczba zależna od zdefiniowanych zmiennych R*4 u mnie mam 7 IP sprzętu więc 7*4=28

Zasada działania skryptu:
Skrypt w zależności od zdefiniowanego interwału w harmonogramie - u mnie co 15 min sprawdza nam połączenia między urządzeniami jeśli wynik będzie OK to nic nie robi.
Jednak gdy wykryje brak połączenia odnotowuje to i przy kolejnym sprawdzeniu jeśli brak połączenia powtórzy się na danym urządzeniu wysyła do nas maila co 1,5h przy interwale 15 min - ta zwłoka wynika z wykluczeniem chwilowego zaniku prądu lub przejściowych problemów.
Skrypt będzie tak długo spamował naszą pocztę, aż na połączeniach w zdefiniowanych zmiennych R nie wróci status OK.

Teraz trzeba skrypt umieścić w harmonogramie:

Odpalamy GUI i wchodzimy w zakładkę: Config tree
Przechodzimy w drzewie Configuration do pozycji
-system
-- task-scheduler
--- task
rozwijamy zakładkę:
W okienku task wpisujemy nazwę zadania: Dowolnie (Watch)
Updatelist
Dodadzą nam się kolejne pozycje pod zakładka task
- Watch
crontab-spec
interval

Tutaj wybieramy jedna z opcji crontab - https://pl.wikipe...ki/Crontab lub interwał
Dla mnie wystarczający jest interwał 15 min więc wpisuje 15m

ostatnia zakładka to executable wpisuje w niej ścieżkę do skryptu
arguments
path /config/WatchL2MR_EDGE.sh

I to by było na tyle, wynudzonych zapraszam na piwo ;).
Edytowane przez hermes-80 dnia 01-05-2021 14:39
===============================================================
Netgear WNR3500L v1
Podziękowania dla administracji Openlinksys.info!
 
Przejdź do forum:
Logowanie
Nazwa użytkownika

Hasło



Nie masz jeszcze konta?
Zarejestruj się

Nie możesz się zalogować?
Poproś o nowe hasło
Aktualnie online
· Gości online: 7

· Użytkowników online: 0

· Łącznie użytkowników: 24,063
· Najnowszy użytkownik: zunior88
Shoutbox
Musisz zalogować się, aby móc dodać wiadomość.

Adooni
27-04-2021 19:52
masz watek FreshTomato-ARM - wątek deweloperski i tam wszystkie routerki wspierane. duza czest to juz uzywki wiec albo u nas w dziale gielda albo aledrogo trzeba szukac.

FarAway
27-04-2021 13:15
koledzy, uwaliłem netgeat 3500L =, kabelka nie mam ale router potrzebuje pod tomato. Co byście mi mogli zaproponować do kupienia?? jaki model

pedro
26-04-2021 00:34
Dlatego pisałem, że przy normalnym używaniu, jak coś tam jeszcze robi, będzie z 700, może 800

Rawi
25-04-2021 20:32
@schwung mam R7000 i 1gbit. Z wlaczonym CTF wycisniesz 940mb/s ale pod warunkiem ze na ruterze nie bedzie zadnych innych uslug obciazajacych CPU (bo zuzycie jest max)

adrian414
24-04-2021 11:41
Ilu klientów VPN może obsłużyć taki RT-AC3200 pracując na Merlinie albo Tomato przy OpenVPN ?

pedro
23-04-2021 12:53
Z CTF włączonym, może 700Mbits?

schwung
23-04-2021 11:03
Mam Orange Światłowód 1gbit i zastanawiam się jaki ruter z tomato mi to ogarnie z pełną przepustowością (wystarczy po kablu, bez wifi). R7000 da radę?

Maniek91PL
22-04-2021 19:13
Aa, no bo ja pierwszy raz wgrywałem dawno temu! Dla tego. Oki spróbuję przez asus firmware restoriation!

Adooni
22-04-2021 15:22
musisz poszukac softu Asus przed wprowadzeniem blokady - nie ma go na stronie ASUSa

shibby
22-04-2021 14:37
wgraj przez asus firmware restoration, nie przez GUI.

Maniek91PL
22-04-2021 11:16
siema, oco chodzi co żle robie, że mam org soft na asus ac3200, chce wgrać freshtomato najnowsze, pokazuje że nie ten soft i nie chce mi wgrać tomato Shock kiedyś robiłem tak i chyba działało

PixelPL
21-04-2021 23:12
@man1 może sprawdź pfSense, ale nie wiem czy duall wan wspiera.

man1
18-04-2021 11:54
Czy to jest wykonalne by na AC68U mieć dualwan z LB 2*600/60mbit ? Chciałbym wysycić to dużą ilością połączeń, szczególnie upload. Pytanie, czy nie lepiej kupić coś gotowego, np mtk lub podobne...

tkski
18-04-2021 00:19
może ktos mi podpowiedzieć jak dodać Temat do obserwowanych - przeglądnalem wszystkie opcje i nie mogę tego zaleźć

shibby
30-03-2021 08:25
1gbit będzie. Połączenia lokalne nie przechodzą przez router,

lolo2
29-03-2021 18:06
Pomiedzy Kompem a NASem powinna byc wymiana danych 1Gbit/s czy 100Mbit/s? (oczywiscie pomijamy wydajnosc systemu czy dyskow)

lolo2
29-03-2021 18:04
Pytanie techniczne. Jezeli mam router np. z wyjsciem LAN 100mbit, podlacze do niego switcha 1GBit. Do tego switcha podepne serwer Nas synology i Komputer PC. Pomiedzy Kompem i NAS-em powinna byc wym

44,169,187 unikalne wizyty