Mit einen Trick kann mit der offiziellen Gatewayfirmware dennoch Batman-adv Router angeschlossen werden.
Der physikalische Aufbau sieht so aus das am Layer 3 Router mit einem Clientport ein erster Batman-adv Node ebenfalls mit dem Clientport verbunden wird. Hier darf nur ein einzelner Batman-adv Node so verbunden werden da es sonst zu loops führen kann (wirklich? Muss ich nochmal überlegen aber sicher ist sicher). Von diesen 1. Batman-adv Node kann dann wie früher auch ganz normal per Batman-adv weiter gemesht werden, per Kabel (Batman an Batman) oder auch WLAN Mesh.
Da keine Hoodfile vom Gateway ausgeliefert wird, müssen alle Nodes in dieser Hood eine feste Hoodfile unter /etc/hoodfile bekommen
Weiterhin gibt es keinen Router der sich in der Gateway Selection als Batman-adv Gateway ausgibt, somit würde DHCP nicht funktionieren. Eine mögliche Lösung ist, auf allen Batman-adv Nodes die Gatewayselection einfach abzuschalten. Dazu die Datei /usr/lib/micron.d/fff-batman-adv auf allen Batman-adv Nodes folgendermaßen anpassen:
*/1 * * * * /usr/sbin/batctl gw off
Vermutlich wäre es auch möglich, das der initiale Knoten (der oben mit Client am Gateway verbunden ist) sich selbst als Gateway announced. Dies hab ich aber noch nicht ausprobiert.
Weiterhin muss die Firewall am ersten Batman-adv Knoten (nur der, der per Client mit den layer 3 Router verbunden ist) deaktiviert werden. Dazu einfach alle files unter /usr/lib/firewall.d löschen und den Knoten neu starten.
Ebenfalls funktioniert so die Clientzählung nicht richtig, da das Layer 3 Gateway alle Clients vom ersten Node zählt und der erste Node vom Layer 3 Gateway. Ich hab mich damit beholfen, da das Gateway wirklich nur Gateway ist und keine Clients hat im Nodewatcher einfach dort fest 0 Clients einzutragen.
Dazu in /usr/sbin/nodewatcher
Die Zeile:
dataclient="$dataclient<$clientif>$cc</$clientif>"
ändern in
dataclient="$dataclient<$clientif>0</$clientif>"
und die Zeilen
DATA=$DATA"<client_count>$client_count</client_count>" DATA=$DATA"<clients>$dataclient</clients>"
ändern in
DATA=$DATA"<client_count>0</client_count>" DATA=$DATA"<clients>0</clients>"
Zu beachten gilt, das im Monitoring die Linie zwischen den Layer 3 Knoten und den ersten Node fehlt.