[RFC PATCH v2 5/7] Added VPN Connectivity to previous added Hood-Management

Robert Langhammer rlanghammer at web.de
Di Jun 7 17:36:13 CEST 2016


Hey, danke für die Infos!!

Ich bin bisher davon ausgegangen, dass bei dem wget der fastd-key zum
keyserver übertragen wird und von dort dann zu den GWs damit die fastd
Tunnel aufgebaut werden können. Darum die Frage.

Wenn das so ist, würde ich den "configure" Abschnitt von unten in ein
hood-config-skript packen. Noch ein paar uic set fastd.... oder uic set
tunneldigger Zeilen dazu und dann einfach aus /etc/init.d starten. So
ähnlich macht es mein Router hier und läuft gut. Kein extra
fastdstartskript mehr.

Robert




Am 07.06.2016 um 15:54 schrieb Christian Dresel:
> Hi Robert
>
> On 07.06.2016 15:31, Robert Langhammer wrote:
>> Hi,
>> hier habe ich mal ne Frage. s. unten
>>
>> Am 06.06.2016 um 10:59 schrieb Jan Kraus:
>>> Signed-off-by: Jan Kraus <mayosemmel at gmail.com>
>>> ---
>>>  bsp/default/root_file_system/etc/rc.local.tpl      |  1 +
>>>  .../fff/fff-fastd/files/usr/sbin/fastdstart        | 36 +++++++++++++++++-----
>>>  src/packages/fff/fff-hoods/Makefile                |  2 +-
>>>  .../fff/fff-hoods/files/usr/sbin/configurehood     |  5 +--
>>>  4 files changed, 33 insertions(+), 11 deletions(-)
>>>
>>> diff --git a/bsp/default/root_file_system/etc/rc.local.tpl b/bsp/default/root_file_system/etc/rc.local.tpl
>>> index 7dbc95f..1aafc1b 100755
>>> --- a/bsp/default/root_file_system/etc/rc.local.tpl
>>> +++ b/bsp/default/root_file_system/etc/rc.local.tpl
>>> @@ -69,5 +69,6 @@ touch /tmp/started
>>>  
>>>  /usr/sbin/configurehood
>>>  /usr/sbin/configurenetwork
>>> +/usr/sbin/fastdstart
>>>  
>>>  exit 0
>>> diff --git a/src/packages/fff/fff-fastd/files/usr/sbin/fastdstart b/src/packages/fff/fff-fastd/files/usr/sbin/fastdstart
>>> index 611a3f8..8e494ff 100755
>>> --- a/src/packages/fff/fff-fastd/files/usr/sbin/fastdstart
>>> +++ b/src/packages/fff/fff-fastd/files/usr/sbin/fastdstart
>>> @@ -4,6 +4,7 @@ SERVER="no"
>>>  #SERVERNAME="--servername--"
>>>  
>>>  . /etc/community.cfg
>>> +. /usr/share/libubox/jshn.sh
>>>  
>>>  project="$VPN_PROJECT"
>>>  
>>> @@ -77,14 +78,33 @@ if ping -w5 -c3 "$test_ipv4_host1" &>/dev/null ||
>>>  		fastd -c /etc/fastd/$project/$project.conf -d --pid-file /var/run/fastd.$project.pid
>>>  	fi
>>>  
>>> -#	register
>>> -	wget -T15 "http://keyserver.freifunk-franken.de/${project}/geo.php?mac=$mac&name=$hostname&port=$port&key=$pubkey&lat=$lat&long=$long" -O /tmp/fastd_${project}_output
>> Wird das in Zukunft noch benötigt oder ersetzt der dezentrale den
>> zentralen keyserver?
>> Robert
> da ist ein Minus davor, das fällt raus das wird nicht mehr benötigt. Die
> Infos die bisher hier geliefert wurden ("zu welchen Gateways muss ich
> mich verbinden?") kommen dann alle aus der Hoodfile.
>
> So eine Hoodfile ist in 4/7 zu sehen und da stehen auch die VPN
> Verbindungsdaten z.b. so für Fürth
>
> + },
> + "vpn": [
> +  {
> +    "name": "fff-gw-cd1.fff.community",
> +    "protocol": "fastd",
> +    "address": "144.76.70.189",
> +    "port": "10004",
> +    "key": "0b1eb2ab3f75092f6a851b7e8834543d9a43bab94d073b2dc1a18b3d3ce7d5aa"
> +  }
> + ]
>  }
>
>
> noch als allgemeine Info was ich erwähnenswert finde und (glaub ich)
> noch nicht oder noch nicht richtig erwähnt wurde:
> Das neue Konzept wird das alte komplett ersetzen d.h.:
> - Es entstehen komplett neue Hoods, im aktuellen Beispiel gibt es Fürth
> und Nürnberg. Würzburg Haßfurth u.ä. wird vermutlich eher nach Fürth
> fallen, Hof z.b. eher nach Nürnberg (ist jetzt nur ein Beispiel um das
> Konzept zu erklären). Nach und nach müssen dann im neuen Konzept weitere
> Hoods geschaffen werden, im alten Konzept werden dann immer mehr Hoods
> zusammengewürfelt bis man es irgendwann (in ferner Zukunft?) ganz
> abschalten kann. Stell dir also für das neue Konzept eine leere Karte
> vor wo es nur 2 Punkte gibt, Nürnberg und Fürth und daher nur eine Linie
> die quer durch läuft... solang bis weitere Hoods angelegt werden.
> - Gateways werden komplett neu aufgezogen, sicher ist das wir Batman auf
> die neueste Version hochziehen (2016.1 läuft aktuell in Fürth und ich
> glaub auch in Nürnberg), L3-Routingprotokolle sind wir uns noch nicht
> recht einig, aktuell stehen babel und olsrv2 zur Diskussion. Babel läuft
> aktuell schon ganz gut, an olsrv2 hab bisher nur ich (glaub ich) mich
> versucht und bin erstmal dran gescheitert.
> - Ein meshen von "alten" und "neuen" Routern wird unmöglich, sie sind
> dann nur per L3 über Gateways verbunden. Sollte also eine reine WLAN/LAN
> Meshwolke umgestellt werden, muss dies auf allen Geräten in dieser Wolke
> geschehen.
> - Neue Hoods wird später jeder anlegen können, die Router syncronisieren
> die Hoodfiles irgendwann untereinander so das eine gültige Hoodfile nur
> genug Signaturen braucht, zur Diskussion stehen hier noch, wie man
> Hoodfiles am besten revoked
> - und vllt. noch andere Nebeneffekte die ich vergessen habe, gerne
> nachfragen wenn was unklar ist.
>
> Allgemein ist noch so einiges offen das wird noch ein längeres Projekt
> und ich hoffe einfach mal noch ein paar Unklarheiten beseitigt zu haben.
>
> mfg
>
> Christian
>>> -
>>> -	filenames=$(awk '/^####/ { gsub(/^####/, "", $0); gsub(/.conf/, "", $0); print $0; }' /tmp/fastd_${project}_output)
>>> -	for file in $filenames; do
>>> -		awk "{ if(a) print }; /^####$file.conf$/{a=1}; /^$/{a=0};" /tmp/fastd_${project}_output | sed 's/ float;/;/g' > /etc/fastd/$project/peers/$file
>>> -		echo 'float yes;' >> /etc/fastd/$project/peers/$file
>>> -	done
>>> +#   configure
>>> +    rm -f /etc/fastd/$project/peers/*
>>> +    hood="$(uci get system. at system[0].hood)"
>>> +    json_load "$(cat /etc/hoods/$hood.hood)"
>>> +    json_select vpn
>>> +    local Index="1"
>>> +    while json_select $Index > /dev/null
>>> +    do
>>> +        json_get_var protocol protocol
>>> +        if [ "$protocol" == "fastd" ]
>>> +        then
>>> +            json_get_var servername name
>>> +            echo "#name \"$servername\";" > /etc/fastd/$project/peers/$servername
>>> +            json_get_var key key
>>> +            echo "key \"$key\";" >> /etc/fastd/$project/peers/$servername
>>> +            json_get_var address address
>>> +            json_get_var port port
>>> +            echo "remote ipv4 \"$address\" port $port;" >> /etc/fastd/$project/peers/$servername
>>> +            echo "float yes;" >> /etc/fastd/$project/peers/$servername
>>> +        else
>>> +            echo "protocol $protocol is not supported by this script"
>>> +            json_select ".."
>>> +            continue
>>> +        fi
>>> +        json_select ".."
>>> +        Index=$((Index+1))
>>> +    done
>>>  
>>>  	#reload
>>>  	kill -HUP $(cat /var/run/fastd.$project.pid)
>>> diff --git a/src/packages/fff/fff-hoods/Makefile b/src/packages/fff/fff-hoods/Makefile
>>> index ac48760..b182485 100644
>>> --- a/src/packages/fff/fff-hoods/Makefile
>>> +++ b/src/packages/fff/fff-hoods/Makefile
>>> @@ -13,7 +13,7 @@ define Package/fff-hoods
>>>      CATEGORY:=Freifunk
>>>      TITLE:= Freifunk-Franken hoods
>>>      URL:=http://www.freifunk-franken.de
>>> -    DEPENDS:=+mdns +fff-network
>>> +    DEPENDS:=+mdns +fff-network +fff-fastd
>>>  endef
>>>  
>>>  define Package/fff-hoods/description
>>> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>> index f401a94..ae69a3b 100755
>>> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
>>> @@ -86,9 +86,10 @@ echo "Setting channel 2.4 Ghz: $channel2"
>>>  echo "Setting mode 2.4 GHz: $mode2"
>>>  echo "Setting mesh 2.4 GHz type: $type2"
>>>  
>>> -echo "Shutting down wifi"
>>> -wifi down
>>> +#echo "Shutting down wifi"
>>> +#wifi down
>>>  
>>> +uci set system. at system[0].hood=$hood
>>>  uci set wireless.radio0=wifi-device
>>>  uci set wireless.radio0.type=mac80211
>>>  uci set wireless.radio0.channel=$channel2
>




Mehr Informationen über die Mailingliste franken-dev