[PATCH 1/7] fff: advertise fdff:0::/64 to access web interface

Christian Dresel fff at chrisi01.de
Do Jan 7 10:39:00 CET 2016


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hi

so ich hab das ganze $Ding mal gebaut und geflasht. Einfach mal die
ersten Anmerkungen die mir aufgefallen sind:

- - Zugriff geht nur per LAN, nicht per WLAN. Liegt wohl daran das mein
Laptop hier auf "irgendeinen" Router connectet ist der hier im
Wohnzimmer rumsteht, Firewall/Broadcastfilter Geschichte? Wenn ja kann
man wohl wenig dran machen :/ (außer ich flash alle Router auf die
neue Version ;))
- - Der Router scheint ein bisschen länger mit dem Booten zu brauchen
als vorher. Der erste Boot hat mal locker 2 Minuten gedauert, danach
gings zwar etwas schneller aber vom Gefühl her doch etwas langsamer
als zuvor. Da ich keinen seriellen Anschluss hab, kann ich dir leider
nicht sagen wo es etwas länger dauert, ich denke man kann das aber
noch als "normal" abhaken.
- - Der Logout Button funktioniert bei mir nicht. Es wird die Seite neu
geladen und ich bleib weiterhin eingeloggt (Windows 8.1 Firefox
neueste Version falls wichtig).

Ansonsten scheint das ganze gut zu funktionieren. Ich hab alle Daten
eingegeben, sie wurden gespeichert und auf der normalen http:// Seite
oben angezeigt :) Sieht schick aus. Werde jetzt noch ein bisschen
rumprobieren und wenn mir noch was auffällt ruf ich :)

mfg

Christian

Am 06.01.2016 um 18:39 schrieb Tim Niemeyer:
> This patch adds a prefix advertisment for each node. Every node get
> also the IPs * $prefix::MAC * $prefix::link-local * $prefix::1
> 
> ::1 is duplicated so we need filtering to not forward data into
> the network for ::1.
> 
> Signed-off-by: Tim Niemeyer <tim.niemeyer at mastersword.de> ---
> 
> bsp/default/root_file_system/etc/firewall.user     | 21
> ++++++++++++ bsp/default/root_file_system/etc/network.sh        |
> 38 ++++++++++++++++++++++ src/packages/fff/fff/Makefile
> |  4 +-- .../fff/fff/files/etc/uci-defaults/localdhcp       | 18
> ++++++++++ 4 files changed, 79 insertions(+), 2 deletions(-) create
> mode 100644 src/packages/fff/fff/files/etc/uci-defaults/localdhcp
> 
> diff --git a/bsp/default/root_file_system/etc/firewall.user
> b/bsp/default/root_file_system/etc/firewall.user index
> 1af101c..7bcf82d 100755 ---
> a/bsp/default/root_file_system/etc/firewall.user +++
> b/bsp/default/root_file_system/etc/firewall.user @@ -59,6 +59,15 @@
> ebtables -A MULTICAST_OUT -p IPv4 --ip-proto igmp -j RETURN 
> ######## INPUT ############ ebtables -P INPUT ACCEPT
> 
> +# Erlaube dhcpv6 request / router solicitation von client zu
> knoten +ebtables -A INPUT -p IPv6 -i ! bat0 --ip6-proto udp
> --ip6-dport 547 -j ACCEPT +ebtables -A INPUT -p IPv6 -i ! bat0
> --ip6-proto ipv6-icmp --ip6-icmp-type router-solicitation -j
> ACCEPT +ebtables -A INPUT -d Multicast --logical-in br-mesh -i !
> bat0 -j ACCEPT + +# No input from/to local node ip from batman 
> +ebtables -A INPUT --logical-in br-mesh -i bat0 -p IPv6
> --ip6-source fdff::1/128 -j DROP +ebtables -A INPUT --logical-in
> br-mesh -i bat0 -p IPv6 --ip6-destination fdff::1/128 -j DROP + #
> Erlaube nur DHCP Antworten von BATMAN -> KNOTEN ebtables -A INPUT
> -p IPv4 --ip-proto udp --ip-dport 68 -j IN_ONLY # Erlaube nur
> DHCPv6 Antworten von BATMAN -> KNOTEN @@ -71,6 +80,10 @@ ebtables
> -A INPUT -p IPv6 -i bat0 --ip6-proto ipv6-icmp --ip6-icmp-type
> router-s ######## FORWARD ############ ebtables -P FORWARD ACCEPT
> 
> +# Do not forward local node ip +ebtables -A FORWARD --logical-out
> br-mesh -o bat0 -p IPv6 --ip6-destination fdff::1/128 -j DROP 
> +ebtables -A FORWARD --logical-out br-mesh -o bat0 -p IPv6
> --ip6-source fdff::1/128 -j DROP + # Erlaube nur DHCP Request von
> CLIENT -> BATMAN ebtables -A FORWARD -p IPv4 --ip-proto udp
> --ip-dport 67 -j OUT_ONLY # Erlaube nur DHCP Antworten von BATMAN
> -> CLIENT @@ -89,6 +102,14 @@ ebtables -A FORWARD -d Multicast
> --logical-out br-mesh -o bat0 -j MULTICAST_OUT ######## OUTPUT
> ############ ebtables -P OUTPUT ACCEPT
> 
> +# Erlaube dhcpv6 reply / router advertisment von knoten zu client 
> +ebtables -A OUTPUT -p IPv6 -o ! bat0 --ip6-proto udp --ip6-dport
> 546 -j ACCEPT +ebtables -A OUTPUT -p IPv6 -o ! bat0 --ip6-proto
> ipv6-icmp --ip6-icmp-type router-advertisement -j ACCEPT + +# Do
> not output local node ip to batman +ebtables -A OUTPUT
> --logical-out br-mesh -o bat0 -p IPv6 --ip6-destination fdff::1/128
> -j DROP +ebtables -A OUTPUT --logical-out br-mesh -o bat0 -p IPv6
> --ip6-source fdff::1/128 -j DROP + # Erlaube nur DHCP Request von
> KNOTEN -> BATMAN ebtables -A OUTPUT -p IPv4 --ip-proto udp
> --ip-dport 67 -j OUT_ONLY # Erlaube nur DHCPv6 Request von KNOTEN
> -> BATMAN diff --git a/bsp/default/root_file_system/etc/network.sh
> b/bsp/default/root_file_system/etc/network.sh index
> 6c64083..8c99305 100644 ---
> a/bsp/default/root_file_system/etc/network.sh +++
> b/bsp/default/root_file_system/etc/network.sh @@ -113,3 +113,41 @@
> if [[ -n "$ETH0MAC" ]]; then ifconfig eth0 up /etc/init.d/network
> restart fi + +if uci get network.mesh.ip6addr +then +    echo "IPv6
> for mesh is set already" +else +    # Some time needed :( +
> sleep 5 + +    for ip in $(ip -6 addr show br-mesh | awk '/fdff/{
> print $2 }'); do +        ip -6 addr del $ip dev br-mesh +    done 
> + +    prefix="fdff:0::/64" +    # Set $prefix::MAC as IP +
> suffix=$(awk -F: '{ print $1$2":"$3$4":"$5$6 }'
> /sys/class/net/br-mesh/address) +    addr=$(echo $prefix | sed -e
> 's/\//'$suffix'\//') +    ip -6 addr add $addr dev br-mesh + +
> uci -q del network.globals +    uci -q set network.globals=globals 
> +    uci -q set network.globals.ula_prefix=$prefix +    uci -q
> add_list network.mesh.ip6addr=$addr +    uci -q set
> network.mesh.proto=static + +    # Set $prefix::1 as IP +
> suffix="1" +    addr=$(echo $prefix | sed -e 's/\//'$suffix'\//') +
> ip -6 addr add $addr dev br-mesh +    uci -q add_list
> network.mesh.ip6addr=$addr + +    # 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) +    addr=$(echo $prefix | sed -e
> 's/\//'$suffix'\//') +    ip -6 addr add $addr dev br-mesh +    uci
> -q add_list network.mesh.ip6addr=$addr + +    uci -q commit
> network +fi diff --git a/src/packages/fff/fff/Makefile
> b/src/packages/fff/fff/Makefile index e29713f..d92da91 100644 ---
> a/src/packages/fff/fff/Makefile +++
> b/src/packages/fff/fff/Makefile @@ -2,7 +2,7 @@ include
> $(TOPDIR)/rules.mk
> 
> PKG_NAME:=fff PKG_VERSION:=0.0.1 -PKG_RELEASE:=4 +PKG_RELEASE:=5
> 
> PKG_BUILD_DIR:=$(BUILD_DIR)/fff
> 
> @@ -14,7 +14,7 @@ define Package/fff-base DEFAULT:=y TITLE:=
> Freifunk-Franken Base URL:=http://www.freifunk-franken.de -
> DEPENDS:=+micrond +fff-nodewatcher +fff-web +    DEPENDS:=+micrond
> +fff-nodewatcher +fff-web +odhcpd endef
> 
> define Package/fff-base/description diff --git
> a/src/packages/fff/fff/files/etc/uci-defaults/localdhcp
> b/src/packages/fff/fff/files/etc/uci-defaults/localdhcp new file
> mode 100644 index 0000000..d9fdb6d --- /dev/null +++
> b/src/packages/fff/fff/files/etc/uci-defaults/localdhcp @@ -0,0
> +1,18 @@ +#!/bin/sh +>/etc/config/dhcp + +uci batch <<EOF +set
> dhcp.odhcpd=odhcpd +set dhcp.odhcpd.maindhcp=0 +set
> dhcp.odhcpd.leasefile=/tmp/hosts/odhcpd +set
> dhcp.odhcpd.leasetrigger=/usr/sbin/odhcpd-update +set
> dhcp.local=dhcp +set dhcp.local.interface=mesh +set
> dhcp.local.ra=server +set dhcp.local.dhcpv6=server +set
> dhcp.local.dhcpv4=disabled +set dhcp.local.ndp=disabled +set
> dhcp.local.ra_default=0 +set dhcp.local.ra_preference=low +commit
> dhcp +EOF
> 


- -- 
Kontaktmöglichkeiten ChristianD (Christian Dresel):
Jabber: christian at jabber.community
E-Mail: fff at chrisi01.de
Facebook: https://www.facebook.com/christian.chili
Handy/Whatsapp & Festnetz: auf Nachfrage
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

iQIcBAEBCAAGBQJWjjI0AAoJEOID5jPgWNLiD28P/1rIkoQSAcAycwPMXls1OJw8
+iJyikIH5YTZW/hEBCntG/Q6pmRMIKJdaNlfEZ/nS4Hz6getsUYpEK3wpewY0qIt
JjXikzah7SnWMiBz9kHQ2JVZG5Si8Gg9aJtg9wscQo0nkKocmhuiYXjvRrU2ip4q
C9rsz7euXFBn5sFfPjWatOIrG/2Lw/+emFq2uVqq9duY+35Oa/r/pxbwe7QjuAD/
FTvzN5SMmJyCGi8WXSNEhZVjGtcC+c+5G0CxMc8qZF5P6QrZRHM7mhOgVKpdmGCB
kdrLihgNAaMXEBcgcpRFQkw73n3BGycghqB+/1uyVpzdgUfhirwZI82FDigOwRKi
qwBPAvlTdNNTrpG2PGa1H7l2dINzg+yms9sr4LXsZC3hzkVwwxl2ovtrIr6kgEG4
G6CVAQRf5eLwyXV/8E2+2hVI9xfRuNJ5h/edD/8wnlAA5XHEnWGMpka4R7Ap6r2+
TEY76P0sS2VNRRsn1E+YWtHrM2PgnAGyXxPpM5DzxSUwS1xDWEmzIRRaKqntGy5u
WM6WnpclpBXpz/odBoTW+6VH9rCLImmN82JD73brz8iO7yANJlX3qI2MgJmpsI0Z
MC9zt/TQgt5qhPdW3X4Nrb5vkvJeaHUFTulQ/SA4koE6E8rO3jQj9NHlVgNAT+Ba
Vkz2lg44DFko/Tk2DU0g
=pDa0
-----END PGP SIGNATURE-----



Mehr Informationen über die Mailingliste franken-dev