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

Christian Dresel fff at chrisi01.de
Di Jun 7 15:54:57 CEST 2016


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


-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp    : application/pgp-signature
Dateigröße  : 819 bytes
Beschreibung: OpenPGP digital signature
URL         : <http://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20160607/978198c6/attachment-0002.sig>


Mehr Informationen über die Mailingliste franken-dev