[PATCH v7] Configure the Node a routable IPv6 ULA

mail at adrianschmutzler.de mail at adrianschmutzler.de
So Okt 8 15:36:42 CEST 2017


Hallo,

siehe unten.

> -----Original Message-----
> From: Tim Niemeyer [mailto:tim at tn-x.org]
> Sent: Sonntag, 8. Oktober 2017 15:29
> To: franken-dev at freifunk.net
> Cc: Adrian Schmutzler <freifunk at adrianschmutzler.de>; Christian Dresel
> <fff at chrisi01.de>; Tim Niemeyer <tim at tn-x.org>
> Subject: [PATCH v7] Configure the Node a routable IPv6 ULA
> 
> From: Adrian Schmutzler <freifunk at adrianschmutzler.de>
> 
> Signed-off-by: Christian Dresel <fff at chrisi01.de>
> Signed-off-by: Adrian Schmutzler <freifunk at adrianschmutzler.de>
> Signed-off-by: Tim Niemeyer <tim at tn-x.org>
> 
> ---
> 
> Changes in v7:
> - Add EUI64 address
> - Change ifconfig to ip
> 
> Changes in v6:
> - Typo in echo
> - Optimized sed
> 
> Changes in v5:
> - Only apply if ula_prefix is not empty
> - Remove escape sign from ula_prefix
> 
> Changes in v4:
> - Optimized grep and sed
> 
> Changes in v3:
> - Added route block
> - Inverted condition in address block
> - Changed if style to "grep -q"
> - Added some quotes
> 
> Changes in v2:
> - Rebased onto keyXchange v2 patchset v15
> - correctly handle keyxchangev2data without reloading
> - added some quotes
> 
>  .../fff/fff-hoods/files/usr/sbin/configurehood     | 34
> ++++++++++++++++++++++
>  1 file changed, 34 insertions(+)
> 
> diff --git a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> index 62b3b3b..c4815b9 100755
> --- a/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> +++ b/src/packages/fff/fff-hoods/files/usr/sbin/configurehood
> @@ -161,6 +161,40 @@ if [ -s /tmp/keyxchangev2data ]; then
>  			fi
>  		done
> 
> +		# now we load the prefix from the hoodfile and set this to
br-
> mesh
> +		json_select network
> +		json_get_var prefix ula_prefix
> +		# Set $prefix::MAC as IP
> +		if [ -n "$prefix" ] ; then
> +			suffix="$(awk -F: '{ print $1$2":"$3$4":"$5$6 }'
> /sys/class/net/br-mesh/address)"
> +			addr="$(echo "$prefix" | sed -e 's,\\,,' -e
> 's,/,'$suffix'/,')"
> +			for ip in $(ip -6 addr show dev br-mesh | grep inet6
|
> grep -v -e "fe80::" -e "fdff::" | cut -f6 -d " "); do
> +				ip -6 addr del "$ip" dev br-mesh
> +			done
> +			if ! ( ip -6 addr show dev br-mesh | grep -q "$addr"
) ;

Macht das hier überhaupt Sinn, zwei Zeilen vorher hätten wir die Adressen in
jedem Fall gelöscht, das if macht also keinen Sinn, oder?


> then
> +				ip -6 addr add "$addr" dev br-mesh
> +				echo "Set ULA address to br-mesh: $addr"
> +			else
> +				echo "Address already set."
> +			fi
> +			# Set $prefix::link-local as IP
> +			suffix=$(awk -F: '{
> printf("%02x%s:%sff:fe%s:%s%s\n", xor(("0x"$1),2), $2, $3, $4, $5, $6) }'
> /sys/class/net/br- mesh/address)

Im br-mesh ist ein Leerzeichen!

> +			addr=$(echo $prefix | sed -e 's/\//'$suffix'\//')

Hier müsste man wieder das Prefix reparieren, also einfach meine Zeile
kopieren.

> +			if ! ( ip -6 addr show dev br-mesh | grep -q "$addr"
) ;

Hier gilt das gleiche wie fürs erste if?!

Grüße

Adrian

> then
> +				ip -6 addr add $addr dev br-mesh
> +				echo "Set ULA EUI-64 address to br-mesh:
> $addr"
> +			else
> +				echo "Address already set."
> +			fi
> +			if ! ( ip -6 route show dev br-mesh | grep -q
"fc00::" ) ;
> then
> +				ip -6 route add fc00::/7 via fe80::1 dev br-
> mesh
> +				echo "Set ULA route to br-mesh."
> +			else
> +				echo "Route already set."
> +			fi
> +		fi
> +		json_select ".." # back to root
> +
>  		echo "Loading wifi"
>  		wifi
> 
> --
> 2.11.0




Mehr Informationen über die Mailingliste franken-dev