SamKnows Whitebox - come utilizzarla come router preservando le misurazioni

  • 462 Risposte
  • 218865 Visite

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline Ansuel

  • VIP
  • *****
  • 3166
  • Sesso: Maschio
  • Il trucco è avere tanti modem da brikkare :P
Sì scusa dimenticanza mia!! Lo script "non snmp" ha la &, in questo l'ho proprio scordato. Troppi impegni, troppe distrazioni. Ho bisogno di una vacanza :P
Ah, non server fare head -n1, grep ha già un'opzione per fermarsi alla prima riga trovata. Domanda: e se l'interfaccia utile fosse la seconda?
Ma poi possono esserci interfacce con lo stesso nome?

Ho provato personalmente e con grep prende anche la seconda riga :(

Comunque nel mio caso con openwrt avevo creato 2 connessioni pppoe (stavo facendo delle prove) e snmp le aveva registrate stranamente con lo stesso nome
Di norma non potresti fare due connessioni sullo stesso apparato, di fatti lo permette solo openwrt quindi diciamo che è una aggiunta per casi estremi

In ogni caso ho appurato che lo script funziona, le misurazioni vengono trasmesse sul sito, ora devo solo capire se realmente ferma la connessione quando è presente del traffico... Sai come verificarlo??

Comunque penso si possa modificare la prima pagina implementando questa cosa riducendo il lavoro ai poveri utenti niubbi XD

livingsilver94

  • Visitatore
Certo che non si ferma alla prima riga. Ho detto che c'è un'opzione, ma se tu non usi quell'opzione grep continua a fare il suo lavoro di default :P
Quindi, dando per buono (come dovrebbe essere infatti) che il nome dell'interfaccia sia univoco, basta dare una botta di ifconfig e si va a leggere il nome che ci interessa.

Non serve verificare che le misurazioni vengano bloccate, lo script di SamKnows continua a confrontare i valori contenuti nei eth0_XX coi valori di soglia. Piuttosto devi verificare che i valori lì scritti siano coerenti col traffico. Esempio: prova a scaricare la .iso di una distro Linux, così hai un download che dura un bel po', e a mano guardi il valore scritto nel file eth0_rx. Convertilo in KB dividendolo per 1024 e vedi se grossomodo hai la tua velocità di download.
« Ultima modifica: 16 Novembre 2015, 14:26 da livingsilver94 »

Offline Ansuel

  • VIP
  • *****
  • 3166
  • Sesso: Maschio
  • Il trucco è avere tanti modem da brikkare :P
Certo che non si ferma alla prima riga. Ho detto che c'è un'opzione, ma se tu non usi quell'opzione grep continua a fare il suo lavoro di default :P
Quindi, dando per buono (come dovrebbe essere infatti) che il nome dell'interfaccia sia univoco, basta dare una botta di ifconfig e si va a leggere il nome che ci interessa.

Non serve verificare che le misurazioni vengano bloccate, lo script di SamKnows continua a confrontare i valori contenuti nei eth0_XX coi valori di soglia. Piuttosto devi verificare che i valori lì scritti siano coerenti col traffico. Esempio: prova a scaricare la .iso di una distro Linux, così hai un download che dura un bel po', e a mano guardi il valore scritto nel file eth0_rx. Convertilo in KB dividendolo per 1024 e vedi se grossomodo hai la tua velocità di download.
Ok oggi faccio questo test :D
Scusa non avevo capito, infatti ricordo di aver visto l'opzione per prendere una volta un valore nel caso cerco....
Ma comunque è un caso limite, in situazioni normali il problema non si pone


E intanto ho trovato un altro problema :D (ormai li sto trovando tutti) nel caso in cui l'interfaccia cambia lo script di controllo cessa.... (è un problema minore perchè le misurazioni vanno comunque)
« Ultima modifica: 16 Novembre 2015, 14:45 da Ansuel »

livingsilver94

  • Visitatore
Ansuel, stasera includo le tue modifiche in prima pagina. Scusa tanto il ritardo :)

Ovvio che il controllo cessi se cambia l'interfaccia! Ma l'interfaccia generalmente non cambia. Al massimo la rinomini, ma che senso avrebbe?

Offline Ansuel

  • VIP
  • *****
  • 3166
  • Sesso: Maschio
  • Il trucco è avere tanti modem da brikkare :P
Ansuel, stasera includo le tue modifiche in prima pagina. Scusa tanto il ritardo :)

Ovvio che il controllo cessi se cambia l'interfaccia! Ma l'interfaccia generalmente non cambia. Al massimo la rinomini, ma che senso avrebbe?
Si intendo il problema di quello script è che (ho appurato che non crasha ma continuerà ad andare in errore) se il numero dell'interfaccia cambia (per esempio dopo aver riavviato il modem/router da cui prende i dati) non esegue un controllo periodico per vedere se è ancora quello....

Una soluzione sporca potrebbe essere includere il mio script iniziale per prendere i valori nel tuo ciclo, ma è una situazione limite non so se avrebbe degli effetti negativi...

Ho anche visto una cosa durante l'esecuzione dello script non capisco perchè alcune volte il dato del file diventa 0 e poi riprende non so

livingsilver94

  • Visitatore
Ah perché il numero può cambiare? Ho dato per scontato che fosse fisso. Direi allora che la soluzione definitiva potrebbe essere un mix della tua e della mia soluzione. Personalmente credo che sia più comodo avere un elenco delle interfacce tramite il programma che ho messo in prima pagina, dopodiché se mi dici che i numeri corrispondenti possono variare ad ogni riavvio, uso il tuo script che "traduce" il nome in numero ;)

Per lo zero, credo sia una questione di sincronizzazione. Infatti il mio script ha una frequenza di polling di 12 tentativi al minuto, snmp-d in OpenWrt aggiorna i valori ogni 15 secondi, quindi 4 volte al minuto. Ora, se il mio script legge un valore, e il successivo sarà ancora lo stesso perché snmp-d non ha aggiornato, (dato2-dato1)/interval=0, proprio perché dato2-dato1=0.

EDIT: me lo avevi già detto che l'oid cambiava. Pirla io!
« Ultima modifica: 26 Novembre 2015, 21:09 da livingsilver94 »

Offline varma

  • Membro Anziano
  • ***
  • 283
Per lo zero, credo sia una questione di sincronizzazione. Infatti il mio script ha una frequenza di polling di 12 tentativi al minuto, snmp-d in OpenWrt aggiorna i valori ogni 15 secondi....

io per la questione degli 0 ho implementato lo script in questo modo
il valore lo faccio scrivere 3 volte per scrupolo, non sapendo se gli altri script verificano quanto spesso il dato venga aggiornato


Codice: [Seleziona]
#!/bin/sh
snmphost='192.168.2.1'
snmpcommunity='public'
rx_oid='1.3.6.1.2.1.31.1.1.1.6.11'
tx_oid='1.3.6.1.2.1.31.1.1.1.10.11'
ETH_IFACE='eth0'
interval=15
rx_old=0
tx_old=0

while true; do
values=$(snmpget -Oqv -c "$snmpcommunity" -v 2c "$snmphost" "$rx_oid" "$tx_oid")
rx_bytes=$(echo "$values" | head -n1)
tx_bytes=$(echo "$values" | tail -n1)
rx_traf=$(((rx_bytes - rx_old) / interval))
tx_traf=$(((tx_bytes - tx_old) / interval))
rx_old=$rx_bytes
tx_old=$tx_bytes
echo -n $rx_traf > /tmp/${ETH_IFACE}_rx
echo -n $tx_traf > /tmp/${ETH_IFACE}_tx
echo -n 0 | tee /tmp/wlan0_pkt /tmp/wlan1_pkt
echo -n 1 > /tmp/threshold_pcap
sleep "5"
echo -n $rx_traf > /tmp/${ETH_IFACE}_rx
echo -n $tx_traf > /tmp/${ETH_IFACE}_tx
echo -n 0 | tee /tmp/wlan0_pkt /tmp/wlan1_pkt
echo -n 1 > /tmp/threshold_pcap
sleep "5"
echo -n $rx_traf > /tmp/${ETH_IFACE}_rx
echo -n $tx_traf > /tmp/${ETH_IFACE}_tx
echo -n 0 | tee /tmp/wlan0_pkt /tmp/wlan1_pkt
echo -n 1 > /tmp/threshold_pcap
sleep "5"
done

Offline Ansuel

  • VIP
  • *****
  • 3166
  • Sesso: Maschio
  • Il trucco è avere tanti modem da brikkare :P
io per la questione degli 0 ho implementato lo script in questo modo
il valore lo faccio scrivere 3 volte per scrupolo, non sapendo se gli altri script verificano quanto spesso il dato venga aggiornato


Codice: [Seleziona]
#!/bin/sh
snmphost='192.168.2.1'
snmpcommunity='public'
rx_oid='1.3.6.1.2.1.31.1.1.1.6.11'
tx_oid='1.3.6.1.2.1.31.1.1.1.10.11'
ETH_IFACE='eth0'
interval=15
rx_old=0
tx_old=0

while true; do
values=$(snmpget -Oqv -c "$snmpcommunity" -v 2c "$snmphost" "$rx_oid" "$tx_oid")
rx_bytes=$(echo "$values" | head -n1)
tx_bytes=$(echo "$values" | tail -n1)
rx_traf=$(((rx_bytes - rx_old) / interval))
tx_traf=$(((tx_bytes - tx_old) / interval))
rx_old=$rx_bytes
tx_old=$tx_bytes
echo -n $rx_traf > /tmp/${ETH_IFACE}_rx
echo -n $tx_traf > /tmp/${ETH_IFACE}_tx
echo -n 0 | tee /tmp/wlan0_pkt /tmp/wlan1_pkt
echo -n 1 > /tmp/threshold_pcap
sleep "5"
echo -n $rx_traf > /tmp/${ETH_IFACE}_rx
echo -n $tx_traf > /tmp/${ETH_IFACE}_tx
echo -n 0 | tee /tmp/wlan0_pkt /tmp/wlan1_pkt
echo -n 1 > /tmp/threshold_pcap
sleep "5"
echo -n $rx_traf > /tmp/${ETH_IFACE}_rx
echo -n $tx_traf > /tmp/${ETH_IFACE}_tx
echo -n 0 | tee /tmp/wlan0_pkt /tmp/wlan1_pkt
echo -n 1 > /tmp/threshold_pcap
sleep "5"
done
bhe penso che siamo arrivati a qualcosa di completo e stabile...
Praticamente ora l'utente dovrà solo completare quei dati e fa tutto lo script

livingsilver94

  • Visitatore
Credo di aver corretto guida e soprattutto script. Qualche tester c'è?

Offline varma

  • Membro Anziano
  • ***
  • 283
io ho le 5 porte dello switch nella stessa vlan e l'indirizzo IP è impostato da DHCP

non erano le modifiche consigliate da Ansuel perchè con le impostazioni standard le letture non andavano?

livingsilver94

  • Visitatore
Giustissimo, le porte devono stare nella stessa VLAN. Sul DHCP invece non sono d'accordo. Preferisco che la Whitebox abbia indirizzo statico definito dall'utente.

Offline Ansuel

  • VIP
  • *****
  • 3166
  • Sesso: Maschio
  • Il trucco è avere tanti modem da brikkare :P
Giustissimo, le porte devono stare nella stessa VLAN. Sul DHCP invece non sono d'accordo. Preferisco che la Whitebox abbia indirizzo statico definito dall'utente.
Si anche io consiglierei questo, il dettaglio partiva dal fatto che con la nuova versione non funziona mettendo gateway e dns... Quindi basta soltanto mettere ip statico  e testare da diagnostic pingando un qualsiasi sito internet dal router
Credo di aver corretto guida e soprattutto script. Qualche tester c'è?
Un secondo che reflasho la hack box il router samknows
« Ultima modifica: 29 Novembre 2015, 13:45 da Ansuel »

livingsilver94

  • Visitatore
Ancora nessuno ha provato?

Offline varma

  • Membro Anziano
  • ***
  • 283
sorry, ma queste settimane sto impicciatissimo
non avendo capito come funziona lo script automatico per SNMP
e avendo una configurazione stabile da giorni
preferisco lasciare tutto com'è  :-[

Offline Ansuel

  • VIP
  • *****
  • 3166
  • Sesso: Maschio
  • Il trucco è avere tanti modem da brikkare :P
sorry, ma queste settimane sto impicciatissimo
non avendo capito come funziona lo script automatico per SNMP
e avendo una configurazione stabile da giorni
preferisco lasciare tutto com'è  :-[
Lo script automatico con snmp lo abbiamo migliorato ora serve solo mettere il nome dell'interfaccia e abbiamo fatto anche altre migliorie... per esempio alcune volte scriveva risultati nulli mentre prendeva i dati dal server principale
Ma ti serve solo se hai un altro router altrimenti non serve