Message ID | 20200806233348.4518-1-rlanghammer@web.de |
---|---|
State | New |
Headers | show |
diff --git a/src/packages/fff/fff-node/Makefile b/src/packages/fff/fff-node/Makefile index 0292725..8b31202 100644 --- a/src/packages/fff/fff-node/Makefile +++ b/src/packages/fff/fff-node/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=fff-node -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_BUILD_DIR:=$(BUILD_DIR)/fff-node @@ -14,6 +14,7 @@ define Package/fff-node URL:=https://www.freifunk-franken.de DEPENDS:=+fff-batman-adv \ +fff-fastd \ + +fff-vxlan-node \ +fff-firewall \ +fff-hoods \ +fff-uradvd diff --git a/src/packages/fff/fff-vxlan-node/Makefile b/src/packages/fff/fff-vxlan-node/Makefile new file mode 100644 index 0000000..233badd --- /dev/null +++ b/src/packages/fff/fff-vxlan-node/Makefile @@ -0,0 +1,39 @@ +include $(TOPDIR)/rules.mk + +PKG_NAME:=fff-vxlan-node +PKG_RELEASE:=1 + +PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME) + +include $(INCLUDE_DIR)/package.mk + +define Package/$(PKG_NAME) + SECTION:=base + CATEGORY:=Freifunk + TITLE:=Freifunk-Franken vxlan-node configuration + URL:=http://www.freifunk-franken.de + DEPENDS:=+vxlan +endef + +define Package/$(PKG_NAME)/description + This is the vxlan for the Freifunk Franken node-Firmware + It is used to configure vxlan. +endef + +define Build/Prepare + echo "all: " > $(PKG_BUILD_DIR)/Makefile +endef + +define Build/Configure + # nothing +endef + +define Build/Compile + # nothing +endef + +define Package/$(PKG_NAME)/install + $(CP) ./files/* $(1)/ +endef + +$(eval $(call BuildPackage,$(PKG_NAME))) diff --git a/src/packages/fff/fff-vxlan-node/files/etc/uci-defaults/55-vxlan b/src/packages/fff/fff-vxlan-node/files/etc/uci-defaults/55-vxlan new file mode 100644 index 0000000..2e6ab69 --- /dev/null +++ b/src/packages/fff/fff-vxlan-node/files/etc/uci-defaults/55-vxlan @@ -0,0 +1,15 @@ +uci batch <<EOF + set network.vx0=interface + set network.vx0.proto=vxlan6 + set network.vx0.ip6addr=auto + set network.vx0.port=8472 + set network.vx0.srcport=8472 + set network.vx0.mtu=1422 + set network.vx0.disabled=1 + + set network.vxbat=interface + set network.vxbat.master=bat0 + set network.vxbat.proto=batadv_hardif + set network.vxbat.ifname=vx0 +EOF + diff --git a/src/packages/fff/fff-vxlan-node/files/etc/vpn-select.d/vxlan b/src/packages/fff/fff-vxlan-node/files/etc/vpn-select.d/vxlan new file mode 100644 index 0000000..0850c56 --- /dev/null +++ b/src/packages/fff/fff-vxlan-node/files/etc/vpn-select.d/vxlan @@ -0,0 +1,26 @@ +protocol=vxlan + +vxlan_clear() { + uci set network.vx0.disabled="1" + while uci delete network.@vxlan_peer[0]; do :; done +} + +vxlan_addpeer() { + json_get_var vid vid + json_get_var address address + address="$( ping6 -w1 -c1 "$address" | awk -F '[()]' '{print $2; exit}' )" + [ -z $address ] && return + uci set network.vx0.vid="$vid" + uci set network.vx0.peer6addr="$address" + uci set network.vx0.disabled="0" + + uci add network vxlan_peer + uci set network.@vxlan_peer[-1].vxlan="vx0" + uci set network.@vxlan_peer[-1].dst="$address" +} + +vxlan_start_stop() { + uci commit network + reload_config +} +
Hier http://rl-fff1.fff.community/fff-bin/vxlan-test/ liegen ein paar fertige Images zum testen. /etc/hoodfile muss noch angelegt werden. Viele Grüße Robert Am 07.08.20 um 01:33 schrieb Robert Langhammer: > This package adds vxlan support to the node variant and configures the vxlan-vpn tunnels to the gateways. > > A vpn section has to be added to the hoodfile for every peer (GW) supporting vxlan: > > { > "version": 1, > "network": { > "ula_prefix": "fd43:5602:29bd:16:\/64" > }, > "vpn": [ > { > "name": "rl-fff1-vx", > "protocol": "vxlan", > "vid": "7", > "address": "rl-fff1.fff.community" > }, > { > "name": "fff-gw-mc", > "protocol": "fastd",
Hallo, nur zwei Einzelkommentare: > +vxlan_clear() { > + uci set network.vx0.disabled="1" > + while uci delete network.@vxlan_peer[0]; do :; done } Gefühlt und für die Konsistenz wäre mir hier ein config_foreach lieber, auch wenn man dann ne Funktion braucht. > + > +vxlan_addpeer() { > + json_get_var vid vid > + json_get_var address address > + address="$( ping6 -w1 -c1 "$address" | awk -F '[()]' '{print $2; exit}' )" > + [ -z $address ] && return > + uci set network.vx0.vid="$vid" > + uci set network.vx0.peer6addr="$address" > + uci set network.vx0.disabled="0" > + > + uci add network vxlan_peer > + uci set network.@vxlan_peer[-1].vxlan="vx0" > + uci set network.@vxlan_peer[-1].dst="$address" > +} > + > +vxlan_start_stop() { > + uci commit network > + reload_config Hier bin ich mir etwas unschlüssig, ob man mitten "in" configurehood noch ein reload_config machen muss/möchte, oder ob man das vll. besser einmal am Schluss macht. Ordentlicher ist es natürlich so, aber dann haben wir irgendwann vier reload_config während einem configurehood run ... Grüße Adrian > +} > + > -- > 2.20.1
Hi, s. inline Am 08.08.20 um 02:02 schrieb Adrian Schmutzler: > Hallo, > > nur zwei Einzelkommentare: > >> +vxlan_clear() { >> + uci set network.vx0.disabled="1" >> + while uci delete network.@vxlan_peer[0]; do :; done } > Gefühlt und für die Konsistenz wäre mir hier ein config_foreach lieber, auch wenn man dann ne Funktion braucht. Ich bin ein Fan von kleinen Einzeilern und möglichst viel shell-builtin wenn möglich. Darum so. > >> + >> +vxlan_addpeer() { >> + json_get_var vid vid >> + json_get_var address address >> + address="$( ping6 -w1 -c1 "$address" | awk -F '[()]' '{print $2; exit}' )" >> + [ -z $address ] && return >> + uci set network.vx0.vid="$vid" >> + uci set network.vx0.peer6addr="$address" >> + uci set network.vx0.disabled="0" >> + >> + uci add network vxlan_peer >> + uci set network.@vxlan_peer[-1].vxlan="vx0" >> + uci set network.@vxlan_peer[-1].dst="$address" >> +} >> + >> +vxlan_start_stop() { >> + uci commit network >> + reload_config > Hier bin ich mir etwas unschlüssig, ob man mitten "in" configurehood noch ein reload_config machen muss/möchte, oder ob man das vll. besser einmal am Schluss macht. Ordentlicher ist es natürlich so, aber dann haben wir irgendwann vier reload_config während einem configurehood run ... Ich finde es muss hier hin. Sonst bekommen wir eine kaum sichtbare Abhängigkeit zu configurehood. Und müssen darauf hoffen, dass da nochmal ein reload_config läuft. Viele Grüße Robert > > Grüße > > Adrian > >> +} >> + >> -- >> 2.20.1
On 08.08.20 14:00, Robert Langhammer wrote: >>> + >>> +vxlan_start_stop() { >>> + uci commit network >>> + reload_config >> Hier bin ich mir etwas unschlüssig, ob man mitten "in" configurehood noch ein reload_config machen muss/möchte, oder ob man das vll. besser einmal am Schluss macht. Ordentlicher ist es natürlich so, aber dann haben wir irgendwann vier reload_config während einem configurehood run ... > > Ich finde es muss hier hin. Sonst bekommen wir eine kaum sichtbare > Abhängigkeit zu configurehood. Und müssen darauf hoffen, dass da nochmal > ein reload_config läuft. glaube das haben wir schon mal irgendwo diskutiert (war das bei layer 3 in configuregateway?) ich weiß nur nicht mehr zu welchem Schluss wir damals kamen ;) Vielleicht will jemand mal die alten Mails durchstöbern (ich meine das war sogar auf irgendeinen Patch von mir, wo das diskutiert wurde) Ich pers. fände es wohl auch besser, wenn es da bleibt. Gruß Christian
Hallo Christian, > -----Original Message----- > From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf > Of Christian Dresel > Sent: Samstag, 8. August 2020 21:17 > To: Robert Langhammer <rlanghammer@web.de>; franken- > dev@freifunk.net > Subject: Re: [RFC PATCH] Add package fff-vxlan-node > > > > On 08.08.20 14:00, Robert Langhammer wrote: > > >>> + > >>> +vxlan_start_stop() { > >>> + uci commit network > >>> + reload_config > >> Hier bin ich mir etwas unschlüssig, ob man mitten "in" configurehood noch > ein reload_config machen muss/möchte, oder ob man das vll. besser einmal > am Schluss macht. Ordentlicher ist es natürlich so, aber dann haben wir > irgendwann vier reload_config während einem configurehood run ... > > > > Ich finde es muss hier hin. Sonst bekommen wir eine kaum sichtbare > > Abhängigkeit zu configurehood. Und müssen darauf hoffen, dass da > > nochmal ein reload_config läuft. > > glaube das haben wir schon mal irgendwo diskutiert (war das bei layer 3 in > configuregateway?) ich weiß nur nicht mehr zu welchem Schluss wir damals > kamen ;) Vielleicht will jemand mal die alten Mails durchstöbern (ich meine > das war sogar auf irgendeinen Patch von mir, wo das diskutiert wurde) wir hatten schon mal "uci commit" bei den uci-defaults Skripten, das ist ein ähnliches Problem. Mit reload_config bin ich mir nicht so sicher; aber ich wollte auch primär die Diskussion anstoßen ... Grüße Adrian > > Ich pers. fände es wohl auch besser, wenn es da bleibt. > > Gruß > > Christian
hi Adrian On 08.08.20 21:25, Adrian Schmutzler wrote: > Hallo Christian, > >> -----Original Message----- >> From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf >> Of Christian Dresel >> Sent: Samstag, 8. August 2020 21:17 >> To: Robert Langhammer <rlanghammer@web.de>; franken- >> dev@freifunk.net >> Subject: Re: [RFC PATCH] Add package fff-vxlan-node >> >> >> >> On 08.08.20 14:00, Robert Langhammer wrote: >> >>>>> + >>>>> +vxlan_start_stop() { >>>>> + uci commit network >>>>> + reload_config >>>> Hier bin ich mir etwas unschlüssig, ob man mitten "in" configurehood noch >> ein reload_config machen muss/möchte, oder ob man das vll. besser einmal >> am Schluss macht. Ordentlicher ist es natürlich so, aber dann haben wir >> irgendwann vier reload_config während einem configurehood run ... >>> >>> Ich finde es muss hier hin. Sonst bekommen wir eine kaum sichtbare >>> Abhängigkeit zu configurehood. Und müssen darauf hoffen, dass da >>> nochmal ein reload_config läuft. >> >> glaube das haben wir schon mal irgendwo diskutiert (war das bei layer 3 in >> configuregateway?) ich weiß nur nicht mehr zu welchem Schluss wir damals >> kamen ;) Vielleicht will jemand mal die alten Mails durchstöbern (ich meine >> das war sogar auf irgendeinen Patch von mir, wo das diskutiert wurde) > > wir hatten schon mal "uci commit" bei den uci-defaults Skripten, das ist ein ähnliches Problem. stimmt könnte bei meinen fastd Key Geschichten (WebUI anzeigen und Key behalten) gewesen sein. Ich finde jetzt auf die schnelle aber die Diskussion auch nicht :( Gruß Christian > > Mit reload_config bin ich mir nicht so sicher; aber ich wollte auch primär die Diskussion anstoßen ... > > Grüße > > Adrian > >> >> Ich pers. fände es wohl auch besser, wenn es da bleibt. >> >> Gruß >> >> Christian
Hi, gerade entdeckt: > +vxlan_addpeer() { > + json_get_var vid vid > + json_get_var address address > + address="$( ping6 -w1 -c1 "$address" | awk -F '[()]' '{print $2; exit}' )" > + [ -z $address ] && return > + uci set network.vx0.vid="$vid" Es sollte nicht mehr noetig sein peer6addr zu setzen, da ip6addr=auto gesetzt ist. Das loesst schon die Mehrdeutigkeit auf. > + uci set network.vx0.peer6addr="$address" > + uci set network.vx0.disabled="0" > + > + uci add network vxlan_peer > + uci set network.@vxlan_peer[-1].vxlan="vx0" > + uci set network.@vxlan_peer[-1].dst="$address" > +} Gruesse
This package adds vxlan support to the node variant and configures the vxlan-vpn tunnels to the gateways. A vpn section has to be added to the hoodfile for every peer (GW) supporting vxlan: { "version": 1, "network": { "ula_prefix": "fd43:5602:29bd:16:\/64" }, "vpn": [ { "name": "rl-fff1-vx", "protocol": "vxlan", "vid": "7", "address": "rl-fff1.fff.community" }, { "name": "fff-gw-mc", "protocol": "fastd", ... For testing the hoods schweinfurt, hassfurt, coburg, ebern and geo can be used. "address" is the same for all hoods: rl-fff1.fff.community. The respective hood-id is used as vid. This patch depends on "[RFC,v2] vxlan: netifd and vxlan package patches" and "Make vpn select modular.patch" Happy testing! Signed-off-by: Robert Langhammer <rlanghammer@web.de> --- src/packages/fff/fff-node/Makefile | 3 +- src/packages/fff/fff-vxlan-node/Makefile | 39 +++++++++++++++++++ .../files/etc/uci-defaults/55-vxlan | 15 +++++++ .../files/etc/vpn-select.d/vxlan | 26 +++++++++++++ 4 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 src/packages/fff/fff-vxlan-node/Makefile create mode 100644 src/packages/fff/fff-vxlan-node/files/etc/uci-defaults/55-vxlan create mode 100644 src/packages/fff/fff-vxlan-node/files/etc/vpn-select.d/vxlan -- 2.20.1