Was

Die neue Firmware, die auch (aber nicht nur!) im Weimarnetz funktioniert kann nun getestet werden. Ziel ist es, eine Firmware zu bauen, die allen Freifunkcommunitys eine einfache Konfiguration Ihrer Netzknoten ermoeglicht und so mehr Zeit zum eigentlichen Netzbauen laesst.

Fehlerliste

Umstellung fabrikneuer Router

Umstellung fuer OLSR-Laptops

Wissenwertes

  • Wenn bestimmten MAC-Adressen keine Antwort vom DHCP-Server bekommen sollen, werden diese so eingetragen (mehrere Eintraege durch Leerzeichen trennen):
nvram set fff_dhcp_ignore="00:11:22:33:44:55" commit
  • Portforwarding kann komfortabel folgendermassen eingestellt werden (mehrere Eintraege durch Leerzeichen trennen):
nvram set fff_portfw="webcam:on:wan:tcp:8080>10.63.168.97:80"

Download

Vorschau

                                 

Hinzugekommene Funktionen


Noch offen / nicht programmiert

Daran wird aktuell gearbeitet

  • OK: "nvram commit" waehrend des profilschreibens nicht erlauben + reboot ebenso (gefaehrlich) + watchdog-auffrischung
  • OK: verhindern, das das accounting generieren mehrmals (gleichzeitig) gestartet wird
  • OK: bei firewall_masq() muss der werbefilter deaktiviert oder korrekt REJECTed werden (sonst ewige ladezeiten von webseiten)
  • OK: pauschales maskieren einiger moeglicher internet-einspeisungsmethoden (pppoe,wan)
  • OK: Fehler: wenn VPN spaeter nachinstalliert wird, darf auf keinen Fall PPPoE deinstalliert werden um platz zu schaffen - ebenso iwconfig/atheros + base-files
  • OK: olsrd-plausi-check: wenn ein und der selbe nachbar mehrere male in routing-tabelle ist, dann restart_olsrd
root@linksys293:~# ip r|grep 10.63.182.193
10.63.182.193 via 10.63.171.1 dev eth1  metric 3 
10.63.182.193 via 10.63.171.1 dev eth1  metric 7 
  • OK: olsrd-plausi-check: wenn wired = ON und LQ=1.000 und NLQ = 0.000 (oder umgekehrt!), dann restart_olsrd
  • maskieren des LANDEV, wenn LANADDR != member_of_hna4
  • kein oder nur extrem langsames Internet? -> Splashpage mit Warnung
  • Hostname chicer machen + zusaetzlich in /etc/hosts schreiben: "admin-mediathek-lan1-n965.olsr" = "mediathek" oder "mediathek.n965.olsr" ???
  • Werbefilter wird bei proxy-benutzung nicht richtig rejected
  • Schmalspurrouter 8mb-Router integrieren
    • Siemens SE505 kompatibel machen (CFE extrahieren...)
  • neigh: anzeige von Gesamt-COST + HOPS zum Internet-Gateway
  • VPN: wenn geprueft wird, ob VPN angeschaltet wird, dann auch pruefen, ob tunnel-device auch in olsr.conf benutzt wird - ansonsten olsr neu zuenden
  • symbolischen link auf RRD-files setzen, zum pullen ueber den webserver
  • jede Minute olsr-topo abspeichern und auch symbolischen Link setzen, zum pullen ueber den webserver - sicherstellen, das RAM nicht ueberlaeuft

Bis zum naechsten stabilen Release (vorraussichtlich Ende Maerz 2009)

  • eingetragene admin-macs sollen im ganzen netz unbegrenzt traffic haben
  • Fehlermeldung bei Zwangsumleitung mit Opera verhindern:
Eine Seite aus dem öffentlichen Internet fordert Daten
aus Ihrem privaten Intranet an. Aus Sicherheitsgründen
wurde der automatische Zugriff blockiert.
  • Spendenknopf / Paypal oder so auf Infoseite -> PayPal bei freien Seiten mit dazutun
<form action="https://www.paypal.com/cgi-bin/webscr"
   method="post">
   <input type="hidden" name="cmd" value="_xclick" />
   <input type="hidden" name="business"
      value="wireless-discuss@subsignal.org" />
   <input type="hidden" name="item_name"
      value="Weimarnetz e.V. Einzelspende" />
   <input type="hidden" name="item_number"
      value=": Spende ueber Infoseite" />
   <input type="hidden" name="amount" value="" />
   <input type="hidden" name="lc" value="DE" /> 
   <input type="image"
	src="http://www.paypal.com/de_DE/DE/i/btn/btn_donateCC_LG.gif"
	title="Paypal-Spende"
	border="0" name="submit" alt="Paypal-Spende" /> 
   <img alt="" border="0"
      src="http://www.paypal.com/de_DE/i/scr/pixel.gif"
      width="1" height="1" />
   <input type="hidden" name="no_shipping" value="2" />
   <input type="hidden" name="no_note" value="1" />
   <input type="hidden" name="currency_code" value="EUR" />
   <input type="hidden" name="tax" value="0" />
   <input type="hidden" name="bn" value="IC_Beispiel" />
</form>
  • Portforwarding auch ueber Hostnamen machen (menschenlesbare Konfig)
    • nvram set fff_portfw="webcam:on:wan:tcp:8080>mediathek:80"
    • Problem dabei: entfernte Knoten sind nach einem Reboot nicht sofort bekannt
  • Bild von Geoposition klein in Werkzeug zeigen
  • MAP-Button wie bei SYSTEM in Werkzeug zeigen
  • knallt ein client an die traffic-grenze, dann im everlog speichern (resetfest)
  • passiert ein Firmware-Update Nachts, werden alle unnoetigen Dienste runtergefahren (httpd,dnsmasq,udhcpc,syslogd,klogd,resetd,sshd) - wird die Uhrzeit 8 Uhr ueberschrittem, wird ein notfall-webserver mit infomeldung gezuendet (dies alles nur im speicher zu sparen)
  • Leer Kontaktdaten irgendwie anmeckern
  • bei Sperrung wegen Traffic-Ueberschreitung in der Meldung die Kontaktdaten bzw. den Link zum Admin schreiben
  • automatische Diensteankuendigung:
    • VPN-Clients/Einspeiser mit Bandbreite up/down
    • Webcams
    • Dateifreigaben
  • Bandbreite up/down bei inetoffer regelmaessig messen (bei jedem reboot? oder nur nachts? ueber udp?)
  • registrierte knoten mit automatischem hostname ("node1012mesh") ordentlich umbenennen (in S69* ?)
  • Seite vor der infoseite überspringen (beschleunigung der Erkennung von welchem Interface/Netz der Besucher kommt)
  • die ursprünglich gewünschte seite vor der infoseite nach dem durchhangeln anspringen/vorschlagen (wie kann das technisch gehen?)
  • ALIEN-Gateway funzt nicht: siehe inet_offer()
  • Kabel/Funk wird bei accounting nicht richtig erkannt - evtl. auch bei mesh-rdf - siehe: fkt_get_media_from_mac()
  • manche Router senden keine Beacons aus? Knoten 18 ist beim OLSR-Nachbarn im Horst-Scan mit seiner

WLAN-Mac "00:12:17:dd:d6:4c" manchmal nicht zu sehen

  • Auf WLAN-Modus einigen, momentan wird benutzt:
    • wl0_bcn=1000 soll 100 werden?
    • wl0_gmode=2
    • wl0_plcphdr=long ist doppelt gemoppelt, weil das gmode=2 schon vorgibt!
    • wl0_gmode_protection=off
    • wl0_distance=5000 soll leer sein!
    • wl0_ssid="Zugangspunkt_weimar.freifunk.net" ???
    • wl0_ssid="Transportnetz_weimar.freifunk.net" ???
      • wl0_ssid="weimarnetz.de" ! (einheitlich+kurz)
  • aktualisierung der layer7-filter,debug: opera mit link http://www.mininova.org/get/2170227
  • Alle Infoseiten-Texte diskutieren und bearbeiten
  • Portforwarding: GUI bauen
  • Bestimmte MACs bei DHCP-Anfragen ignorieren: GUI bauen
  • reboots waehrend des Software nachinstallierens komplett vermeiden (ide+usb-kernelmodule nach dem installieren 'insmod'en)
  • alle iptables befehle durch func_ipt schleifen und ordentliche fehlerbehandlung machen
  • WLAN-Scanfingerabdruck erzeugen (typische Netze, die empfangen werden)
  • Automatische Registrierung: Geokoordinaten+Stadtcode+WLAN-Scanfingerabdruck in query senden?
  • Sendeleistung bei jedem Reboot wieder auf Standard setzen?
  • nach dem Softwareinstallieren und "killall syslogd" /tmp/BOOT fuer besseres logging setzen
  • neues Repository ueber netzinterne IP zur Verfuegung stellen 10.63.1.1
  • func_sanitize_browsers_query_string fixen
  • Statusmeldung: alle Trafficangaben immer vom Zeitfenster der Statuserzeugung (momentan 15 Minuten)
  • Statusmeldung: Traffic incoming/outgoing OLSR: wifi,tunnel
  • Automatisches bauen der Firmware inkl. aller Pakete + Kernelmodule auf dem Rootserver
  • Automatischer Antennentest im AP/Client-Modus -> kurzes Wechseln in Mesh-Modus:
  • Automatischer Sendeleistungstest: nicht routeruptime, sondern OLSR-uptime zur Entscheidung nutzen, ob schon Nachbarn da sein muessten oder nicht (sonst wird die Sendeleistung evtl. sinnlos aufgedreht beim ersten Boot mit einstellen der nvram-variablen)
    • func_profile_memorise_important_vars() wifiphy_but_ignore_antenna
    • func_wifi_join_nearest_mesh()
    • /usr/sbin/cron.select_best_antenna_fff+ force
    • func_profile_memorise_important_vars() restore
    • func_wifi_phy_restart()
  • Kommentar in /etc/ethers, warum und von wem diese Datei immer wieder neugeschrieben wird
  • Accounting: Layer7-Informationen mit prozentualer Trafficverteilung soll sichtbar sein
  • Accounting: Traffic-Meldungen der Nachbarn mit einbeziehen
  • VPN: Umstellung auf OpenVPN_nossl_nolzo
  • pppoe-passwort in "taskliste/werkkzeug" verstecken
  • registrierte MACs ueber das Diensteplugin einmal in der Nacht verteilen und ueber das Werkkzeug sichtbar machen
  • pppoe-firmware anbieten (pppoecd schon integriert, um henne/ei problem zu vermeiden)
  • Infoseite: anschaulich erklaeren wieviel traffic man noch frei hat
  • Benutzerverwaltung:
    • Knopf "alle eingetragenden benutzer loeschen" einbauen
    • Status als Dropdown-Menue
    • änderungen an den benutzern sofort sichtbar in der gui
    • Benutzer fest eintragen: direkt aktivieren
  • Bandbreitentest wieder aktivieren
  • OLSR-Nachbarn wieder dauerhaft in ARP-Tabelle schreiben oder jede Minute refreshen?
  • Benutzer wieder dauerhaft in ARP-Tabelle schreiben
  • WLAN-Scan alle paar Stunden + Statistik + Aggregation (horst?)
  • Knopf bei Profilauswahl: "kein Internet einspeisen" (also *_gateway loeschen)
  • VPN-Server route nur in lokale Forwarding-Tabelle
  • regelmaessig zufaelligen Knoten nach aktueller Zeit fragen + synchen + Diff feststellen
  • bei lokalem Internetausfall proxy des naechsten Hops fuer 'ipkg' benutzen
  • LQ-Faktor eines Nachbarn herausbekommen
  • Entfernungsberechung zu den Funknachbarn ueber GPS-Koords -> func_latlon_calc_distance()
  • Wie herausbekommen, ob man selbst vom OLSR-Nachbarn ignoriert wird?
  • Testmessung Nachts mrate + txpower?
  • exaktere Repository-Struktur (z.b. fuer jedes Release?)
  • Automatisches Update der AdBlock/Werbefilter-Liste : verbessern (ipkg update!)
  • Werbefilter ein/ausschaltbar
  • Automatisches speichern der Kontaktseite aller naechsten (~1/2/3-Hop) Nachbarn COST<10.000 ->Abruf ueber Werkzeug

Funktionen, die spaeter integriert werden sollen

  • Antennentest nicht machen, wenn Clients verbunden sind?
  • leer Telefonnummer? leere Email? Vereins-Kontaktdaten reinsetzen?
  • Update Loginbanner/SSH wenn sich updatemodus/sendeleistung/... geaendert haben?
  • Sperren des Zugangs zu einem internen Netzwerk (-s 10.0.0.0/ -d INETOFFERNET/MASK -j DROP)
  • Runternehmen der Sendeleistung wenn moeglich (Algo?)
  • Gatewayauswahl pro Benutzer per ip-tunnel / infoseite
  • eigene skripte retten ueber nvram
  • Kanalwechsel auf 1 fuer MESH1 und 13 fuer MESH2 und 6 fuer AP-Modus/Laptopzugangsnetz
    • wie gleichzeitig auf allen Routern aendern?
  • DNS Optimierung (?):
    • Anfragen des Routers auf naechstes Gateway senden.
    • Anfragen des Routers bei Internet-Einspeisung auf lokalen Gateway senden
  • bei Kabelkopplungen soll nur ein Lan-DHCP-Server laufen(?)
    • niedrigste Knotennummer oder Interneteinspeiser
  • p3p
  • mac2vendor , mac2hersteller :
    wget -qO - http://standards.ieee.org/regauth/oui/oui.txt | awk '{if($2=="(base")print $1,$4,$5}'
  • waehrend whitelist gebaut wird, geht masq/nat nicht - fixen
  • nutzungsbedingungen anzeigen lassen/wiki
  • rrd-datenbank auf evtl. angeschlossenen USB-Stick umleiten
  • wenn HNA ausfaellt dann meldung an alle Nachbarn, die es betrifft?
  • Visualisierung OLSR + Batman einbauen
  • im Accounting auch Traffic von Durchleitungen sichtbar machen
  • pruefen:
  • cgi-bin-messages (nachrichten verschicken)
  • cgi-bin-neighbours (entfernung,hostnamen,verbale verbindungsqualitaet)
  • Auto-Kameraerkennung
  • QoS / Quality of Service / Bandbreitenmanagment zielsensitiv
  • Batman-adv?
  • Refactoring cron.minutely / vpn-hooks

auf die lange Bank geschoben

Wie

Basierend auf der normalen FFF/testing vom sven-ola aus berlin, kommen nach und nach eigene Dateien hinzu. Beachtet evtl. auch die allgemeine Anleitung zum testen. Spielt ueberall mal rum, insbesondere an den Sachen, die im SVN/Changelog erwähnt sind. Syslog beachten!

Mitmachen

  • aktuelle Firmware auf einen Router flashen und eigene Aenderungen machen
  • danach automatisch alles hochladen lassen mit:
/usr/sbin/fwupload_fff+
  • fertig! neue firmware wird automatisch auf dem SVN-Server neu gebaut