====== Gluon Administration und Entwicklung ======
:!: [[Gluon/Admin/Mobil|Administration von Mobilgeräten aus]]
==== Was läuft hier und wie verwalte ich das ====
Aktuelle Version, Gerät, etc abfragen via SSH
gluon-info
Für Webinterface außerhalb der Config-Mode (d.h. im Betrieb) ist folgender SSH Befehl hilfreich:
ssh root@KNOTEN -L 12345:localhost:81
Unter [[http://localhost:12345|http://localhost:12345]] kann der Knoten dann verwaltet werden.
WICHTIG: entweder via ssh ''uci commit'' für speichern bzw. ''gluon-reconfigure && gluon-reload'' für Übernehmen oder ''speichern & neustarten'' im Wizard anwählen, sonst wird nichts gespeichert/angewendet
:!: Der Login zum Webinterface im Betrieb ist ausschließlich über SSH-Tunnel möglich. Dies verbessert die Sicherheit des Netzes und trägt dazu bei das z.B. die Rechte einzelner Personen ordentlich einkassiert werden können ohne globale Passwort-Änderungen.
=== Liste der vorinstallieren SSH-keys ===
-- mkg20001
'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIBBEhZ7sLQCNZXBunHMxEDS2Niy3wpnHgUPDBCNeKew mkg20001@gmail.com',
-- gabor
'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOJQSyzxAt5NJ3+IhwI0+Qvg0s4zofVJjizulhuwcSZo gabor@g',
-- av
'ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILx3bNdCoR8CmDS30bGP+/QaC/3P4XfZUz6Kt5poDfAS av',
-- reinisch
'ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA53/y7tolRs/+hySECf4rfUYrs7FIzh6qBhmUM/IADLYm/NEwHTrWp+zXBs6xYXTKkgTmjDurA8Knl+ow/BCETS5vCgfhNtSb1O9YO40+8NEF0fSPjyNcMXkJTy+4Lvaq3kwWf8BkD6s+8rxJPZJpPXg7UDm8PXnL71BwTVuCEfI3WQlGdXpbjbh6C1FDLUleWi3LmWJvMLow0gwAUvpEF6wJSkmuHTxvs4t8EYDjlcQwqfPnqRqcpIb9rgNGmWWP+E1BJA9o41IzetSh2jDCnPAjTqOw5FWcFY9MKNh9y/AygryVvCsWval17ctz/WXRM+26QZuZaje7lAnsuedsUw== w@0032 w@0037',
==== Was machen meine Pakete ====
=== Teil 1: War es die Firewall? ===
Firewall debuggen
Interessante Zonen: * mesh (alles was mit mesh zu tun hat, außer LAN mesh) * wired_mesh (Nur LAN mesh) * loc_client (Client AP)
Zone Debuggen
uci set firewall.ZONE.log=1
uci set firewall.ZONE.log_limit=10/second
uci commit
service firewall reload
Dann ''logread -f'' und Spaß haben
=== Teil 2: Was zur Hölle? (Wireshark muss ran) ===
Die Pakete können auch per Wireshark angezapft werden, tcpdump ist vorinstalliert
Anzapfen geht via sshdump Adapter in Wireshark (dazu in der liste unten das Zahnrad neben dem Adapter anwählen)
Interface bestenfalls any, zum Filtern macht es Sinn ''!olsrd && !openvpn'' zu benutzen, um Noise zu filtern
WICHTIG: Wenn der zugriff auf die Node über das mesh selbst erfolgt, ist eventuelle Rückkopplung durch mesh Traffic möglich. Der "not (port 22)" filter fängt das idR, aber bei mesh VPN wirds kritisch.
==== Was macht mein OLSR ====
=== Nachbarn auflisten ===
olsrd-cli olsr1 neigh
olsrd-cli olsr2 neigh
=== Daten abfragen ===
olsrd-cli olsr1 nodeinfo all
olsrd-cli olsr2 nodeinfo json
# bzw
olsrd-cli olsr2 nodeinfo raw help
==== Performance ====
Performance zwischen zwei Nodes testen
== Server ==
iptables -I INPUT -p tcp -m tcp --dport 5201 -j ACCEPT
ip6tables -I INPUT -p tcp -m tcp --dport 5201 -j ACCEPT
iperf3 -s
== Client ==
iperf3 -c IP
==== ManMan Sync ====
manman-sync übernimmt die interface ips die im [[:ManMan|ManMan]] angegeben sind
Abgerufen werden diese vom Knoten jede Stunde (jeweils zu zufälliger, gleichbleibender Minute). Auf [[:ManApi|ManApi]] wird die Info ebenfalls für eine Stunde gecached
Folgendes Namensschema wird verwendet, um ein [[:ManMan|ManMan]] Interface in ein Gluon Interface umzuwandeln
wifi -> mesh_radio0
tunnel -> mesh_vpn
wan -> mesh_uplink
lan -> mesh_other
* (z.B. radio1) -> mesh_*
*_* (z.B. ibss_radio0) -> *_*
In Gluon wird die Wi-Fi-IP für 802.11s verwendet
Das Setzen einer IP für IBSS ist dennoch möglich, in dem das Interface ibss_radio0 genannt wird
Ungültige Interfacenamen werden in gluon-static-ip config geworfen und bleiben dort für immer (oder bis jemand sie aufräumt), sind aber effektiv wirkungslos
WICHTIG: aktuell gibt es noch kein Rollback Support. d.h. kaputtmachen ist leicht. Das wird in Zukunft dann besser gemacht.
==== gdb ====
Was macht mein C code?
* in targets/x86-64 'gdb' und 'gdbserver' ergänzen (nicht commiten, nur lokal)
* x86-64 qemu debug bauen, irgendwo starten
* make GLUON_DEBUG=1 GLUON_TARGET=x86-64 -j12
In /etc/config/firewall GDB durch die firewall lassen:
config rule 'allow_gdb'
option name 'Allow GDB'
option src '*'
option proto 'tcp'
option dest_port '3344'
option target 'ACCEPT'
* GDBServer starten:
gdbserver --attach 0.0.0.0:3344 PID
* Lokal dann mit gdb oder pwndbg verbinden
target remote :3344
[[:CategoryDocumentation|CategoryDocumentation]]