Wenn B.A.T.M.A.N. und tinc am Start sind…

… pass auf deine SSH-Fingerprints auf!

Eine kleine Motivation zur Mitarbeit beim in diesen Wochen wieder auflebenden Ulmer Freifunk.

Am Donnerstag habe ich an der Uni einen WLAN-Router mit einem von Julian gebastelten freifunk-Image neu geflasht. Hat ganz gut geklappt, das tinc-VPN lief und B.A.T.M.A.N. ermöglichte auch dass Pakete zu allen anderen „Mitspielern“ gelangen konnten.

Heute morgen hab ich den Router dann zuhause wieder gestartet und auch gleich mit WG-Router verbunden, so dass er online gehen könnte. Meinen Laptop habe ich mit einem der LAN-Anschlüsse des freifunk-Routers verbunden. DHCP funktionierte sofort. Also natürlich erstmal per SSH auf den Router und nachsehen, wie sich die Situation nach einem Kaltstart darstellt…

semaphor@littlegodzilla:~$ ssh root@192.168.1.1
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 @  WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!  @
 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
 IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
 Someone could be eavesdropping on you right now (man-in-the-middle attack)!
 It is also possible that a host key has just been changed.
 […]

Ganz so „nasty“ finde ich die aktuellen Meshing-Techniken nun zwar nicht, was los war, habe ich aber auch nicht gleich verstanden – 192.168.1.1 lieferte auf jeden Fall einen falschen SSH-Fingerprint aus.

Das Webinterface auf http://192.168.1.1 sagte mir dann aber, dass sich aus meiner Sicht hinter dieser IP-Adresse der Router mit dem Namen 77db verbirgt, das Gerät am Fußende meines Bettes hatte sich aber nach dem Flashen 14fe genannt[1]. Und bei 77db handelt es sich auch um ein „wesentlich“ weiter entfernter Router:

Topologie des B.A.T.M.A.N.-Meshnetzes

14fe entspricht der MAC EA:7B:4D:92:BF:5E.

Noch kurz ein paar weitere Tests…

semaphor@littlegodzilla:~$ ping 192.168.1.1
 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=159 ms
 64 bytes from 192.168.1.1: icmp_req=2 ttl=64 time=74.5 ms
 64 bytes from 192.168.1.1: icmp_req=3 ttl=64 time=73.0 ms
 […]
semaphor@littlegodzilla:~$ ping6 2a01:348:12f:77db::1
 PING 2a01:348:12f:77db::1(2a01:348:12f:77db::1) 56 data bytes
 64 bytes from 2a01:348:12f:77db::1: icmp_seq=1 ttl=64 time=73.4 ms
 64 bytes from 2a01:348:12f:77db::1: icmp_seq=1 ttl=64 time=74.2 ms
 […]

→ passt so Pi-mal-Daumen zusammen.

semaphor@littlegodzilla:~$ ssh -6 2a01:348:12f:14fe::1
semaphor@littlegodzilla:~$ ping6 2a01:348:12f:14fe::1

→ funktionierte leider nicht. Aber über 70 ms für den Ping waren auf jeden Fall zu viel für ein Gerät, dass direkt per LAN-Kabel mit meinem Laptop verbunden war.

Also am freifunk-Router erstmal die Verbindung zum Internet gekappt und nochmal versucht. DHCP musste nochmal ran… und schon klappt die SSH-Verbindung, ohne Warnung. Dieses eigentlich recht unspektakuläre Ereignis war eine für mich unterhaltsame und v.a. motivierende Erfahrung: 1.) mit der aktuell zusammengebastelten Konfiguration funktioniert ein Kaltstart tatsächlich schon und 2.) auch das Meshing funktioniert bereits aber eben mit „etwas anderen Spielregeln“ als man sie von „klassischen“ Netzen erwarten würde (traceroute zeigte bisher in allen Fällen immer nur genau einen Hop).

Unten[2] übrigens noch die IP-Konfiguration meiner LAN-Schnittstelle während des Tests. Ohne das weiter untersucht zu haben[3] vermute ich dass die radvd-Pakete aus dem gesamten Mesh ankommen. Auch hier bin ich mal wieder von den Möglichkeiten und letzten Endes auch der etwas größeren Einfachheit von IPv6 angenehm überrascht.

Also! Wer sich für Freifunk in Ulm interessiert, findet ein paar Informationen und vor allem Kontaktdaten auf der entsprechenden Seite im Freifunk-Wiki. Die Grafik mit der Netztopologie wird übrigens minütlich aktualisiert: B.A.T.M.A.N. liefert ein Tool zur automatischen Erstellung gleich mit und vielleicht sieht man dort bald ein etwas weiter gewachsenes Mesh.

 

[1] Julian hat ein Skript geschrieben, das für einen neu geflashten Router ein zufälliges /64-IPv6-Subnetz aus dem für den Ulmer Freifunk organisierten /48-Subnetz (2a01:348:12f::/48) auswählt.

[2] IP-Konfiguration mit 8 globalen IPv6-Adressen:

semaphor@littlegodzilla:~$ ifconfig eth0
 eth0 Link encap:Ethernet Hardware Adresse 00:15:58:83:00:0e
 inet Adresse:192.168.1.144 Bcast:192.168.1.255 Maske:255.255.255.0
 inet6-Adresse: 2a01:348:12f:77db:bcf3:c03b:b15b:2d2a/64 Gültigkeitsbereich:Global
 inet6-Adresse: 2a01:348:12f:76cb:bcf3:c03b:b15b:2d2a/64 Gültigkeitsbereich:Global
 inet6-Adresse: 2a01:348:12f:76ab:bcf3:c03b:b15b:2d2a/64 Gültigkeitsbereich:Global
 inet6-Adresse: 2a01:348:12f:14fe:bcf3:c03b:b15b:2d2a/64 Gültigkeitsbereich:Global
 inet6-Adresse: 2a01:348:12f:77db:215:58ff:fe83:e/64 Gültigkeitsbereich:Global
 inet6-Adresse: 2a01:348:12f:76cb:215:58ff:fe83:e/64 Gültigkeitsbereich:Global
 inet6-Adresse: 2a01:348:12f:76ab:215:58ff:fe83:e/64 Gültigkeitsbereich:Global
 inet6-Adresse: 2a01:348:12f:14fe:215:58ff:fe83:e/64 Gültigkeitsbereich:Global
 inet6-Adresse: fe80::215:58ff:fe83:e/64 Gültigkeitsbereich:Verbindung
 UP BROADCAST RUNNING MULTICAST MTU:1500 Metrik:1
 RX packets:31295116 errors:0 dropped:0 overruns:0 frame:0
 TX packets:62023467 errors:0 dropped:0 overruns:0 carrier:0
 Kollisionen:0 Sendewarteschlangenlänge:1000
 RX-Bytes:2246403269 (2.2 GB) TX-Bytes:92735551937 (92.7 GB)
 Interrupt:16 Speicher:ee000000-ee020000

[3] … und überhaupt habe ich noch fast nichts aus dem freifunk-Themenfeld „weiter untersucht“ 😉

This entry was posted in Deutsch, Notizen, Uncategorized and tagged , , , . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *