Erneut "Mehrminütiger Ausfall im 60 Minuten Takt"

Im Rahmen des heutigen Freifunktreffens haben wir (@igami, @Cord und @Klaus.P) uns dem Knoten-verliert-periodisch-Verbindung-Problem mal systematisch genähert.

Problem 1:

/sys/kernel/debug/batman_adv/bat0/gateway, was in unserem WiFi-Autoupdater genommen werden sollte, um die batman-Gateways anzupingen – vgl. Sourcecode – existiert nicht:

root@33330-FES70:~# cat /sys/kernel/debug/batman_adv/bat0/gateways
cat: can't open '/sys/kernel/debug/batman_adv/bat0/gateways': No such file or directory

Das ist schlecht, denn /usr/sbin/autoupdater-wifi-fallback wird stündlich aufgerufen und hat auch auf Offloadern ohne WiFi im Fehlerfalle einen Netzwerkneustart zur Folge. Denn wenn der Code meint, mit keinem Batman-Gateway verbunden zu sein, versucht er einen normalen Ping auf alle hinterlegten Updateserver. Bei 4830.org-Firmware ist das firmware.ipv6.4830.org.

Wenn ein klassischer ping auf eine der Adressen funktioniert, wäre der Code happy. Falls kein ping funktioniert hat, wird ein WiFi-Autoupdate getriggert — Geräte mit WLAN fallen vom Accesspoint- in den Stationsmodus und versuchen sich, zu allen empfangenen SSIDs mit ›Freifunk‹ im Namen zu verbinden und darüber ein Autoupdate zu machen, danach geht’s zurück in den AP-Modus, falls kein Reboot via Autoupdate erfolgt. Geräte ohne WLAN, also z. B. Offloader-VMs, machen dennoch einen Netzwerkneustart, d. h. die Verbindung zu den Gateways und zum lokalen Router entfällt und muß jeweils wieder aufgebaut werden, dies dauert insgesamt ca. 5 Minuten …

Und aus dem Internet als auch aus dem AS206813, also unserem eigenen Teils des Internets, war firmware.ipv6.4830.org nicht erreichbar, unser …

Problem 2:

Das IPv6-Subnetz, in dem die firmware.ipv6.4830.org-VM, wurde fälschlicherweise noch in meinen Keller in Gütersloh geroutet — denn da lief die entsprechende Hardware bis Anfang Februar.

Um es kurz zu machen – hat bestimmt bis hier schon ca. 45 Minuten gedauert –, dem Router bei mir im Keller wurde das Announcement des Subnetzes abgewöhnt (Hotfix) und siehe, es gibt noch ein …

Problem 3:

Denn nun stellt sich das interne Routing quer, 2a06:e881:1709:1111::/64, das besagte Subnetz, wird innerhalb des Autonomen Systems 206813 nicht korrekt geroutet :frowning:

Dies nahm sicherlich weit über eine der insgesamt drei Stunden, die wir an dem Problem saßen, ein. Und eine wirkliche Lösung haben wir ehrlicherweise nicht gefunden.

Kernproblem: anders als bei IPv4, wo OSPF – soweit wir sehen – korrrekte Pfade auch ohne direkte Verbindungen zwischen den Routern erzeugt, werden bei IPv6 ohne direkte Verbindung OSPF-Phantasierouten erzeugt, konkret zu fe80-Adressen von Gateway-VMs, via VM-Bridge, die selbst weder diese Route ins OSPF exportieren noch mehr Wissen zur konkreten Route haben als »::/0 via fe80::1« (fe80::1 hat der Hypervisor/Router auf der VM-Bridge).

Was wir in der Analyse des IST-Zustands fanden, war ein dysfunktionaler Tunnel von IN-Berlin, blackstar, zu n@work, conquest, well die IPv6-Defaultroute in Routingtabelle 1 auf conquest fehlte (für IPv4 war sie existent). Nach dem Fix es Planzustandes funktioniert augenscheinlich generell das Routing, auch explizit von den Gateways aus:

root@ngw-fra05 ~ # ping -w2 -c1 -6 -I 2001:bf7:170:64::53 firmware.ipv6.4830.org
PING firmware.ipv6.4830.org(2a06:e881:1709:1111:0:57ff:fefd:bc94 (2a06:e881:1709:1111:0:57ff:fefd:bc94)) from 2001:bf7:170:64::53 : 56 data bytes
64 bytes from 2a06:e881:1709:1111:0:57ff:fefd:bc94 (2a06:e881:1709:1111:0:57ff:fefd:bc94): icmp_seq=1 ttl=57 time=26.8 ms

--- firmware.ipv6.4830.org ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 26.848/26.848/26.848/0.000 ms
  
root@ngw-ber01 ~ # ping -w2 -c1 -6 -I 2001:bf7:1310:144::46 firmware.ipv6.4830.org
PING firmware.ipv6.4830.org(2a06:e881:1709:1111:0:57ff:fefd:bc94 (2a06:e881:1709:1111:0:57ff:fefd:bc94)) from 2001:bf7:1310:144::46 : 56 data bytes
64 bytes from 2a06:e881:1709:1111:0:57ff:fefd:bc94 (2a06:e881:1709:1111:0:57ff:fefd:bc94): icmp_seq=1 ttl=57 time=14.4 ms

--- firmware.ipv6.4830.org ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 14.419/14.419/14.419/0.000 ms

Falls jemand noch Probleme sieht: bitte melden. Dito, falls jemand das OSPFv6-Thema erhellen kann …