[PATCH v2] fff-network: Improve IPv6 WAN connectivity
mail at adrianschmutzler.de
mail at adrianschmutzler.de
Sa Aug 1 12:11:20 CEST 2020
Applied.
> -----Original Message-----
> From: franken-dev [mailto:franken-dev-bounces at freifunk.net] On Behalf
> Of Fabian Bläse
> Sent: Freitag, 31. Juli 2020 22:59
> To: franken-dev at freifunk.net
> Subject: [PATCH v2] fff-network: Improve IPv6 WAN connectivity
>
> Until now, IPv6 connectivity was only ensured by some custom sysctls.
> OpenWrt has a proper way of enabling IPv6 client (SLAAC, as well as DHCPv6)
> for an interface. Switching to OpenWrt's way of configuring client addresses
> for an interface might also make configuration more reliable, as the
> appropriate sysctls are now set by netifd. Especially OnePort and TwoPort
> devices will benefit from this change, as IPv6 auto configuration does not
> have to be manually enabled and disabled for a physical interface, but rather
> is set as an option for our logical wan interface.
>
> At the same time this change enables DHCPv6 client support for WAN.
>
> Signed-off-by: Fabian Bläse <fabian at blaese.de>
> ---
> Changes in v2:
> - Add sourcefilter option to prevent getting a source-specific default route
> - Fix accidentally removed 'fi'
> - Remove now unused functions
> ---
> .../fff/fff-network/files/etc/config/network | 6 +++
> .../files/usr/sbin/configurenetwork | 43 +------------------
> 2 files changed, 7 insertions(+), 42 deletions(-)
>
> diff --git a/src/packages/fff/fff-network/files/etc/config/network
> b/src/packages/fff/fff-network/files/etc/config/network
> index d2ee443..48491d1 100644
> --- a/src/packages/fff/fff-network/files/etc/config/network
> +++ b/src/packages/fff/fff-network/files/etc/config/network
> @@ -12,6 +12,12 @@ config interface 'wan'
> option proto 'dhcp'
> option ifname 'eth1'
>
> +config interface 'wan6'
> + option proto 'dhcpv6'
> + option reqprefix 'no'
> + option sourcefilter '0'
> + option ifname '@wan'
> +
> config interface 'ethmesh'
> option proto 'batadv_hardif'
> option master 'bat0'
> diff --git a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
> b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
> index 0ae7ba8..5103f6b 100755
> --- a/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
> +++ b/src/packages/fff/fff-network/files/usr/sbin/configurenetwork
> @@ -28,40 +28,6 @@ setupPorts() {
> fi
> }
>
> -setAutoConf() {
> - # Sets ipv6 auto configuration on an interface to on/off
> - # Usage: setAutoConf <interface> <[0|1]>
> - local iface=$1
> - local on=$2
> -
> - sysctlfile="/etc/sysctl.d/65-fff-network-$iface.conf"
> - echo "# Generated from configurenetwork" > "$sysctlfile"
> - echo "net.ipv6.conf.$iface.accept_ra = $on" >> "$sysctlfile"
> - echo "net.ipv6.conf.$iface.accept_ra_defrtr = $on" >> "$sysctlfile"
> - echo "net.ipv6.conf.$iface.accept_ra_pinfo = $on" >> "$sysctlfile"
> - echo "net.ipv6.conf.$iface.autoconf = $on" >> "$sysctlfile"
> - echo "net.ipv6.conf.$iface.accept_ra_rtr_pref = $on" >> "$sysctlfile"
> - echo "net.ipv6.conf.$iface.forwarding = 0" >> "$sysctlfile"
> -
> - /sbin/sysctl -p "$sysctlfile"
> -}
> -
> -enableAutoConf() {
> - # Enables ipv6 auto configuration on an interface
> - # Usage: enableAutoConf <interface>
> - local iface=$1
> -
> - setAutoConf "$iface" "1"
> -}
> -
> -disableAutoConf() {
> - # Disables ipv6 auto configuration on an interface
> - # Usage: disableAutoConf <interface>
> - local iface=$1
> -
> - setAutoConf "$iface" "0"
> -}
> -
> BOARD="$(uci get board.model.name)"
> . /etc/network.$BOARD
>
> @@ -125,12 +91,8 @@ if ! uci -q get network.$SWITCHDEV > /dev/null || [
> "$FORCEPARSE" = '1' ] ; then
> uci set network.${SWITCHDEV}_2.device=$SWITCHHW
> uci set network.${SWITCHDEV}_2.vlan=2
> uci set network.${SWITCHDEV}_2.ports="$WAN_PORTS"
> -
> - enableAutoConf "$WANDEV.2"
> - else
> - enableAutoConf "$WANDEV"
> fi
> -
> +
> uci set network.${SWITCHDEV}_3=switch_vlan
> uci set network.${SWITCHDEV}_3.device=$SWITCHHW
> uci set network.${SWITCHDEV}_3.vlan=3 @@ -153,19 +115,16 @@ if [
> "$ONE_PORT" = "YES" ] && ( ! uci -q get network.$SWITCHDEV.ifname || [
> "$FO
> uci set network.$SWITCHDEV=interface
> uci set network.$SWITCHDEV.ifname=$SWITCHDEV
> if [ "$ETHMODE" = "WAN" ]; then
> - enableAutoConf "$WANDEV"
> uci set network.mesh.ifname="bat0"
> uci set network.wan.ifname="$WANDEV"
> uci del uci set network.ethmesh.ifname
> uci del network.eth0.macaddr
> elif [ "$ETHMODE" = "CLIENT" ] ; then
> - disableAutoConf "$WANDEV"
> uci set network.mesh.ifname="bat0 $SWITCHDEV"
> uci set network.wan.ifname="eth1" #eth1 because it is default in config
> file
> uci del network.ethmesh.ifname
> uci del network.eth0.macaddr
> elif [ "$ETHMODE" = "BATMAN" ] ; then
> - disableAutoConf "$WANDEV"
> uci set network.mesh.ifname="bat0"
> uci set network.wan.ifname="eth1" #eth1 because it is default in config
> file
> uci set network.ethmesh.ifname="$SWITCHDEV"
> --
> 2.28.0
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname : openpgp-digital-signature.asc
Dateityp : application/pgp-signature
Dateigröße : 834 bytes
Beschreibung: nicht verfügbar
URL : <https://lists.freifunk.net/pipermail/franken-dev-freifunk.net/attachments/20200801/07f4d55d/attachment.sig>
Mehr Informationen über die Mailingliste franken-dev