'''[http://de.wikipedia.org/wiki/BOINC BOINC]''' im Team [http://www.planet3dnow.de/vbulletin/forumdisplay.php/87-Planet-3DNow!-Distributed-Computing Planet 3DNow!]. '''[http://stats.free-dc.org/stats.php?page=userbycpid&cpid=41fc4ef7a4847efbbe16879c6f56bae3 Statistiken]'''
'''[http://de.wikipedia.org/wiki/BOINC BOINC]''' im Team [http://www.planet3dnow.de/vbulletin/forumdisplay.php/87-Planet-3DNow!-Distributed-Computing Planet 3DNow!]. '''[http://stats.free-dc.org/stats.php?page=userbycpid&cpid=41fc4ef7a4847efbbe16879c6f56bae3 Statistiken]'''
iwinfo wifi5ap stationdump | tr '\n' ';' | sed 's/;;/\n/g; s/Cell /\nCell /g; s/ \+/ /g' | sed '/^$/d'
iwinfo wifi2ap stationdump | tr '\n' ';' | sed 's/;;/\n/g; s/Cell /\nCell /g; s/ \+/ /g' | sed '/^$/d'
=== Skynet ===
"Intelligente" Gatewayauswahl.<p>
1. Autonomes setzen des bevorzugten Gateways, um Stabilität des Knotens und der VPN Verbindung zu verbessern, wenn kein bevorzugtes Gateway konfiguriert oder<p>
2. Schritt das bevorzugte Gateway nicht mehr ordnungsgemäß funktioniert. <p>
3. Schritt Liste bevorzugter Gateways
==== Gateways nach Besten Hops sortieren ====
und am Ende ein Array erhalten:
<syntaxhighlight lang=bash>
#gateways aus ffrouter sysinfo-json extrahieren und in ein array packen
sortpinggateways=$(echo "$sortpinggate" | sed 's/[0-9.0-9]*-//g')
</syntaxhighlight>
Auswertung: HOPs<syntaxhighlight lang=bash>
echo -e "to-xx.xxx.xxx.xxx\t Node"
for i in $sortgate; do echo -e $i "\t\" $($ipcalc $(echo "$i" | sed 's/[0-9]*-//g')); done
</syntaxhighlight>
Auswertung: PINGs<syntaxhighlight lang=bash>
echo -e "AvgPing-xx.xxx.xxx.xxx\t Node"
for i in $sortpinggate; do echo -e $i "\t" $($ipcalc $(echo "$i" | sed 's/[0-9.0-9]*-//g')); done
</syntaxhighlight>
==== Bevorzugte Gateways ====
Mehrere Bevorzuge Gateways angeben 2DO
Testen ob das Gateway auch ein funktionierendes Gateway ist:
- Pingtest
- DNS
- Webseiten abrufen und auswerten
anschließend -p Gateway einstellen, wenn alle Tests erfolgreich.
=== NochEinFreiFunkHorst ===
Das Skript generiert eine Ausgabedatei mit Details zu jeder Station, einschließlich MAC-Adresse, Netzwerktyp, Signalstärke und anderen Metriken. Die Ausgabedatei wird in einem bestimmten Format mit Spaltenüberschriften gespeichert: MAC, Netz (Netzwerk), SNR (Signal-Rausch-Verhältnis), AVG (durchschnittliche Signalstärke), TXB (Übertragungsrate), RXB (Empfangsrate), Node (IP-Adress-Subnetz), IP (Geräte-IP-Adresse) und Name (Gerätename).
Wird später noch um iw scan Infos wie ssid und bmxd Routinginformationen erweitert. ;)
cd /tmp
vi NochEinFreiFunkHorst
<syntaxhighlight lang=bash line>
#!/bin/sh
. /etc/profile >/dev/null
wd='/tmp/qoff/' # WorkDir
ipcalc='/usr/lib/ddmesh/ddmesh-ipcalc.sh'
iw dev > $wd'iwdev'
##it's me###
ext=0; echo 'addr 00:00'>>$wd'iwdev'
echo x>$wd'itsme'
while read line; do
if echo $line | grep -q "addr" && [ $ext -eq 1 ]; then
ext=0
echo $addr $type $chan $ssid >> $wd'itsme'
fi
if echo $line | grep -q "type"; then
type=$(echo $line | sed 's/type//g' | tr -d " ")
fi
if echo $line | grep -q "ssid"; then
ssid=$(echo $line | sed 's/ssid//g' | tr -d " ")
fi
if echo $line | grep -q "channel"; then
chan=$(echo $line | awk '{print $2}')
fi
if echo $line | grep -q "addr"; then
addr='MAC';type=noTYPE; ssid=noSSID; chan=0;
addr=$(echo $line | awk '{print $2}')
ext=1
fi
done < $wd'iwdev'
#########
#Kopf
if test -d $wd; then echo x>/dev/null; else mkdir $wd; fi
echo MAC Netz SNR AVG TXB RXB Node IP Name > $wd'out'
Das Script wird auf dem Bypassrouter (TL 1043) installiert und prüft ob der Offloader per MeshOnLan verfügbar ist und ob auf dem Offloader fastd Tunnel laufen: Ist das der Fall, wird das Interface eth0 und tbb_fastd auf dem Bypassrouter abgeschaltet, damit ausschließlich nur noch der Offloader benutzt wird. Die restlichen Router können, aber müssen nicht, außer per WLAN Meshnetz auch noch per MeshOnLAN vernetzt werden und nutzen automatisch den Offloader. Nach einer Wartezeit prüft der Bypassrouter, ob eine Website wirklich geladen werden kann: Ist dies nicht der Fall, werden die Interface des Bypassrouters wieder eingeschalten.
Das Script wird auf dem Bypassrouter (TL 1043) installiert und prüft ob der Offloader per MeshOnLan verfügbar ist und ob auf dem Offloader fastd Tunnel laufen: Ist das der Fall, wird das Interface eth0 und tbb_fastd auf dem Bypassrouter abgeschaltet, damit ausschließlich nur noch der Offloader benutzt wird. Die restlichen Router können, aber müssen nicht, außer per WLAN Meshnetz auch noch per MeshOnLAN vernetzt werden und nutzen automatisch den Offloader. Nach einer Wartezeit prüft der Bypassrouter, ob eine Website wirklich geladen werden kann: Ist dies nicht der Fall, werden die Interface des Bypassrouters wieder eingeschalten.
<syntaxhighlight lang=bash>
* als Cronjob möglich
* als Cronjob möglich
Zeile 232:
Zeile 487:
if [ $(grep $probe /tmp/bypass/probe | wc -l) -ge 1 ]; then echo wikiokay; else ifconfig eth0 up; ifconfig tbb_fastd up; fi #
if [ $(grep $probe /tmp/bypass/probe | wc -l) -ge 1 ]; then echo wikiokay; else ifconfig eth0 up; ifconfig tbb_fastd up; fi #
bmxd -c -r [****]
Routingclass, sofern es kein bevorzugtes Gateway gibt oder jenes ausgefallen ist:
*0 kein Tunnel, default route
*1 Permanent das „schnellste“ Gateway, basierend auf Ankündigung des Gateways
*2 Permanent das stabilste Gateway, basierend auf den Messergebnissen des Protokolls
*3 Dynamisch Umschaltung auf das stabilste Gateway (siehe auch "gateway_hysteresis", in der Hilfe)
Das Webinterface ist jetzt unter 192.168.1.1 und 10.123.123.1 zu erreichen.
Ggf. muss euer Rechner mit einem /24 Netzwerk eingestellt werden, wenn DHCP nicht funktionieren sollte, unter Linux ist das z.B. der Fall, Windows 7\|10 erhält eine IP vom DHCP.
TFTP Boot
todo
WLAN LED
LAN LED
Status
Rot Orange Pulsierend
Pulsierend
Bootloader geladen, http per 10.123.123.1 Zugriff möglich
Rot Blinkend
Aus
Keine funktionierende Firmware oder Router gebrickt
Aus
Aus
Router ohne Funktion, möglicherweise aber trotzdem am Strom
Codeschnipsel
WLAN Scan in "CSV" Ausgabe umwandeln
iwinfo wifi5ap stationdump | tr '\n' ';' | sed 's/;;/\n/g; s/Cell /\nCell /g; s/ \+/ /g' | sed '/^$/d'
iwinfo wifi2ap stationdump | tr '\n' ';' | sed 's/;;/\n/g; s/Cell /\nCell /g; s/ \+/ /g' | sed '/^$/d'
Skynet
"Intelligente" Gatewayauswahl.
1. Autonomes setzen des bevorzugten Gateways, um Stabilität des Knotens und der VPN Verbindung zu verbessern, wenn kein bevorzugtes Gateway konfiguriert oder
2. Schritt das bevorzugte Gateway nicht mehr ordnungsgemäß funktioniert.
3. Schritt Liste bevorzugter Gateways
Gateways nach Besten Hops sortieren
und am Ende ein Array erhalten:
#gateways aus ffrouter sysinfo-json extrahieren und in ein array packengateways=$(grep-o'{"ip":"[^"]*"'/tmp/sysinfo.json|cut-d':'-f2|tr-d'"'|tr'\n'' ')#die routen zu allen gateways überprüfen (maximal 8 hops) und in ein neues array schreibenhopspgateway=$(foripin$gateways;dohops=$(traceroute-q1-w1-m8$ip|wc-l);echo$hops-$ip;done)#echo $hopspgateway#array nach hops sortierensortgate=$(echo"$hopspgateway"|tr' ''\n'|sort-t'-'-k1,1n-k2,2|tr'\n'' ')#Array von "Hops-" befreiensortgateways=$(echo"$sortgate"|sed's/[0-9]*-//g')#echo $sortgateways
Anschließend nach besten Pings sortieren:
#Sende 3 Pings mit 54321 Bytes und gebe den Durchschnitt zurück / Timeout 3 Sekunden, formatier in Format 000.000-IP zu Arraypinggate=$(foripin$sortgateways;doping_result=$(ping$ip-w3-c3-s54321|tail-n1);avg=$(echo$ping_result|awk-F'/''{printf "%.3f", $5}');if["$avg"=="0.000"];thenavg="999.999";fi;if[${#avg}-lt7];thenavg="0$avg";fi;printf"%s %s\n""$avg-$ip";done)#Sortieren nach Antwortzeit in neuem Arraysortpinggate=$(echo"$pinggate"|tr' ''\n'|sort-t'-'-k1,1n-k2,2|tr'\n'' ')#Array von "Pings-" befreiensortpinggateways=$(echo"$sortpinggate"|sed's/[0-9.0-9]*-//g')
Testen ob das Gateway auch ein funktionierendes Gateway ist:
- Pingtest
- DNS
- Webseiten abrufen und auswerten
anschließend -p Gateway einstellen, wenn alle Tests erfolgreich.
NochEinFreiFunkHorst
Das Skript generiert eine Ausgabedatei mit Details zu jeder Station, einschließlich MAC-Adresse, Netzwerktyp, Signalstärke und anderen Metriken. Die Ausgabedatei wird in einem bestimmten Format mit Spaltenüberschriften gespeichert: MAC, Netz (Netzwerk), SNR (Signal-Rausch-Verhältnis), AVG (durchschnittliche Signalstärke), TXB (Übertragungsrate), RXB (Empfangsrate), Node (IP-Adress-Subnetz), IP (Geräte-IP-Adresse) und Name (Gerätename).
Wird später noch um iw scan Infos wie ssid und bmxd Routinginformationen erweitert. ;)
while true; do ./NochEinFreiFunkHorst; sleep 2; done
Bypass für Offloader
Powerloadmodel
Das Script wird auf dem Bypassrouter (TL 1043) installiert und prüft ob der Offloader per MeshOnLan verfügbar ist und ob auf dem Offloader fastd Tunnel laufen: Ist das der Fall, wird das Interface eth0 und tbb_fastd auf dem Bypassrouter abgeschaltet, damit ausschließlich nur noch der Offloader benutzt wird. Die restlichen Router können, aber müssen nicht, außer per WLAN Meshnetz auch noch per MeshOnLAN vernetzt werden und nutzen automatisch den Offloader. Nach einer Wartezeit prüft der Bypassrouter, ob eine Website wirklich geladen werden kann: Ist dies nicht der Fall, werden die Interface des Bypassrouters wieder eingeschalten.
*alsCronjobmöglichip='10.200.x.y'#bypassrouterol='10.200.j.z'#offloader ipprobe='wikipedia.org'wgethttps://$ol/sysinfo-json.cgi-O/tmp/bypass/olsysinfo--no-check-certificate
if[$(grep$ip/tmp/bypass/olsysinfo|wc-l)-ge1];#check ipthenif[$(grepbackbone/tmp/bypass/olsysinfo|wc-l)-ge1];#check backbonethenifconfigtbb_fastddown;ifconfigeth0down;#interface des bypassrouters ausschalten, wenn offloader verfügbarfi;fisleep15#gib dem batman noch zeitwgethttps://$probe-O/tmp/bypass/probe--no-check-certificate
if[$(grep$probe/tmp/bypass/probe|wc-l)-ge1];thenechowikiokay;elseifconfigeth0up;ifconfigtbb_fastdup;fi#rm/tmp/bypass/*
Prozess bestimmten Kernen zuweisen
Unter Brücksichtigung von SMT/HT, bei 4 Kernen. Restliches Tasks auf Kerne 1 und 3, Kern 0 "bmxd", Kern 2 "fastd":
OpenSSL Mulitcore Bench für Linux/Openwrt/EdgeOS. Am Besten per vi Dateiname in /tmp/ erstellen, chmod +x Dateiname & Go ./Dateiname
Es werden Benchs für 1,2,4 und MaximaleKerne/2 und Maximale Kerne erstellt, sofern soviele Kerne vorhanden sind
#Cores ermitteln und ins temp schreiben
cores=$(grep -c 'processor' /proc/cpuinfo)
if [ $cores -gt 1 ]; then sort /proc/cpuinfo | uniq -u>/tmp/ci; sort -r /proc/cpuinfo | uniq -d>>/tmp/ci; else cat /proc/cpuinfo>/tmp/ci; fi
benchmarks='md5 sha1 sha256 sha512 des des-ede3 aes-128-cbc aes-192-cbc aes-256-cbc rsa2048 dsa2048'
#Benchmarks Single- und Multicore
rm /tmp/sslspeed*
openssl speed -multi 1 $benchmarks | tee /tmp/sslspeed1
if [ $cores -gt 1 ]; then openssl speed -multi 2 $benchmarks | tee /tmp/sslspeed2; fi
if [ $cores -gt 3 ]; then openssl speed -multi 4 $benchmarks | tee /tmp/sslspeed4; fi
if [ $cores -gt 4 ] && [ $cores -ne 8 ]; then openssl speed -multi $(($cores/2)) $benchmarks | tee /tmp/sslspeed$(($cores/2)); fi
if [ $cores -gt 4 ]; then openssl speed -multi $cores $benchmarks | tee /tmp/sslspeed$cores; fi
#Auswertung
echo Systeminfos BogoMIPS OpenSSL-Version $benchmarks>/tmp/speed
echo -n '1'>>/tmp/speed
echo -n `awk -v FS=": " -v ORS="" '/(model name|cpu model|system type|bogomips|BogoMIPS)/ { print "| " $2 " " } END { print "" }' /tmp/ci`>>/tmp/speed
echo `awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " ";b=""} END { print "|" }' /tmp/sslspeed1 | sed 's/\.\(..\)k/\10/g'`>>/tmp/speed
if [ $cores -gt 1 ]; then echo -n '2'>>/tmp/speed; echo -n `awk -v FS=": " -v ORS="" '/(model name|cpu model|system type|bogomips|BogoMIPS)/ { print "| " $2 " " } END { print "" }' /tmp/ci`>>/tmp/speed; echo `awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " ";b=""} END { print "|" }' /tmp/sslspeed2 | sed 's/\.\(..\)k/\10/g'`>>/tmp/speed; fi
if [ $cores -gt 3 ]; then echo -n '4'>>/tmp/speed; echo -n `awk -v FS=": " -v ORS="" '/(model name|cpu model|system type|bogomips|BogoMIPS)/ { print "| " $2 " " } END { print "" }' /tmp/ci`>>/tmp/speed; echo `awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " ";b=""} END { print "|" }' /tmp/sslspeed4 | sed 's/\.\(..\)k/\10/g'`>>/tmp/speed; fi
if [ $cores -gt 4 ] && [ $cores -ne 8 ]; then echo -n $(($cores/2))>>/tmp/speed; echo -n `awk -v FS=": " -v ORS="" '/(model name|cpu model|system type|bogomips|BogoMIPS)/ { print "| " $2 " " } END { print "" }' /tmp/ci`>>/tmp/speed; echo `awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " ";b=""} END { print "|" }' /tmp/sslspeed$(($cores/2)) | sed 's/\.\(..\)k/\10/g'`>>/tmp/speed; fi
if [ $cores -gt 4 ]; then echo -n $cores>>/tmp/speed; echo -n `awk -v FS=": " -v ORS="" '/(model name|cpu model|system type|bogomips|BogoMIPS)/ { print "| " $2 " " } END { print "" }' /tmp/ci`>>/tmp/speed; echo `awk -v ORS="" '$1 ~ /OpenSSL/ {print "| " $2 " |"} $1 ~ /(md5|sha)/ {print " " $5 " |"} $1 ~ /(des|aes)/ {b = b " " $6 " |"} $1 ~ /(rsa|dsa)/ {print b " " $6 " | " $7 " ";b=""} END { print "|" }' /tmp/sslspeed$cores | sed 's/\.\(..\)k/\10/g'`>>/tmp/speed; fi
cat /tmp/speed
5Ghz Mesh Hack
/etc/config/wireless darauf achten, dass gleicher Kanal (nicht auto!) und gleiches "Land" unter:
config wifi-device 'radio5g'
option country 'DE'
option channel '44'
/etc/config/wireless ergänzen, gleiche bssid und ssid: