Automatische Registrierung

Über den Registrator 2.0

Dieses Werkzeug ermöglicht es Routern mit aktueller Weimarnetzfirmware, sich vollständig automatisch und ohne jedes Zutun des Besitzers zu registrieren und eine gültige Knotennummer zu erhalten. Namen und Emailadressen sind für die Registrierung nicht mehr notwendig und werden weder angefordert noch abgespeichert. Der alte Registrator wurde am 20.1.2009 in den Vorruhestand geschickt.

Arbeitsweise

neuer Knoten

  • Firmware wird auf den neuen Router geflasht
  • Router gibt sich vorläufige eine zufällige Knotennummer aus reserviertem Bereich von 970 bis 1020
  • Sobald Internet verfügbar ist, versucht sich der Router alle 15 Minuten zu registrieren bis er Erfolg hat
  • Router erhält Knotennummer aus gültigem Bereich, zu seiner Identifizierung werden Macadresse und der Fingerabdruck des öffentlichen SSH-Schlüssels abgelegt
  • Knotennummern werden von 969 an absteigend vergeben, um nicht in den Nummernbereich bereits benutzter, aber im neuen Registrator noch nicht zurückgemeldeter Knoten zu kommen

vorhandene Knoten mit gültiger Knotennummer

  • Router melden sich nach jedem Neustart beim Registrator und aktualisieren den Zeitstempel
  • alte Knotennummern bleiben so gültig
  • Falls am Router die Knotennummer manuell geändert wurde erfolgt eine Umregistrierung, solange die neue Knotennummer noch nicht vergeben wurde

Konfliktfälle

  • bei Konflikten erfolgt eine Benachrichtigung über die Mailingliste
  • mögliche Konflikte:
    • eine Macadresse soll ein zweites Mal für eine andere Knotennummer und anderen Fingerabdruck registriert werden
    • bei manueller Änderung der Knotennummer wird eine bereits vergebene Knotennummer benutzt
    • es sind keine freien Knotennummer mehr verfügbar

Links

Dokumentation zum Registrator: http://www.weimarnetz.de/registrator/docs/html/index.html

Anzeige der registrierten Knoten: http://www.weimarnetz.de/registrator/bot.php?SHOWNODES=1

Spezialfälle, Manuelles Registrieren

Es gibt Geräte, die manuell registriert werden müssen, da evtl. die nötige Intelligenz (fehlende Software) fehlt. Benötigt werden die (WLAN-)Mac-Adresse und der öffentliche SSH-Fingerabdruck.

Registrierung absenden

benutzer@rechner:~# mac=<ausfuellen>
benutzer@rechner:~# key=<ausfuellen>
benutzer@rechner:~# wget -qO - "http://www.weimarnetz.de/registrator/bot.php?WIFIMAC=${mac}&SSHPUBKEY=${key}"
567

Die Nummer 567 ist die Knotennummer, die man sich dann nehmen darf. (Mit dem OLSR-Wizard im Werkzeug jedes Freifunk-Geraets rechnet man sich die IP's daraus aus)

MAC-Adresse rausfinden

benutzer@rechner:~# cat /proc/net/wireless
Inter-| sta-|   Quality        |   Discarded packets               | Missed | WE
 face | tus | link level noise |  nwid  crypt   frag  retry   misc | beacon | 22
  ath0: 0004   40.  -56.  -96.      16      0      0      0      0        0
  • Das Interface ist also "ath0".
  • Nun noch nach der MAC-Adresse schauen:
benutzer@rechner:~# ip link show dev ath0
6: ath0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN 
    link/ether 00:1e:58:82:8f:83 brd ff:ff:ff:ff:ff:ff
  • Mac-Adresse ist also die "00:1e:58:82:8f:83".
  • Einfacher geht das ganze mit kopieren&einfuegen:
benutzer@rechner:~# ip -o link show | sed -n "s#^.* $(sed -n 's/^[ ]*\(.*\):.*/\1/p' /proc/net/wireless): .*link/ether \([0-9a-z:]*\) .*#\1#p" | se
d 's/://g'
001e58828f83

SSH-Fingerabdruck herausfinden

Einfach beim ersten einloggen auf das zu registrierende Geraet darauf achten:

benutzer@rechner:~# ssh 10.63.7.1
Host '10.63.7.1' is not in the trusted hosts file.
(fingerprint sha1 8a:11:a1:4d:f2:34:48:50:34:7b:dd:27:4b:75:a0:b3:eb:43:cb:61)
Do you want to continue connecting? (y/n) y
  • Der Fingerabdruck ist entsprechend: "8a11a14df2344850347bdd274b75a0b3eb43cb61"
  • Durch kopieren&einfuegen so zu erzeugen:
benutzer@rechner:~# echo "8a:11:a1:4d:f2:34:48:50:34:7b:dd:27:4b:75:a0:b3:eb:43:cb:61" | sed 's/://g'
8a11a14df2344850347bdd274b75a0b3eb43cb61

Ohne SSH-Fingerabruck

Evtl. hat man ein Geraet ohne SSH-Server, dann kann man sich auch einen eindeutigen String, der fuer die Lebenszeit erhalten bleibt generieren:

muss ich mir noch was schoenes ausdenken, evtl. ein md5-hash ueber cpu+mac-adresse?