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

Christian Dresel fff at chrisi01.de
Do Jan 7 15:34:02 CET 2016


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

Am 07.01.2016 um 10:39 schrieb Christian Dresel:
> 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).

ich weiß nun auch warum:
https://none@URL funktioniert nicht, man muss auch ein Passwort
mitgeben also https://none:none@URL... Blöderweise landet man dann
wieder im Passworteingabefeld (was ich pers. unschön finde) und nicht
auf der normalen http:// Seite (und wenn man abbrechen klickt
natürlich authentication failed), evtl. kann man da mit einer
Weiterleitung arbeiten oder so?
Nur ne Kleinigkeit aber ich erwähn es jetzt einfach mal ;)

mfg

Chris

> 
> 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: ChristianD 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

iQIcBAEBCAAGBQJWjndaAAoJEOID5jPgWNLiZR4P/i+gXqn5fDhVeKyvQb6Xft+K
bKCaP91YFb3I8eV533EYpaGkTnftL2AmCdZWbVtIWTYe0B3cjalU8NIXqcDKosMf
RZUV2FruoBD9b9+gdFqB3m2oO3KnPBqXeOmzvMWCck1uVpkD8xjWpTsFZjfxdUKm
d87lPPU66sB3AjC8y5I+pzSFI6dG1cv3JLzeUCx9+pDJLx0Hklhn00sLM1nhWIKR
/hoHizgZblJZ44tUM91ZwscHEqGWxfGUwIrDBHKxvbETQUT6VXjPBvHVm/AThbMl
9dU+xRXPQGPb0VVdbJCODrYwSgtnhDvV9uV2I7qoFBYZq3FApsSbRHHxZaJHT4of
rFQTTDb78dTsiwLIy/FNHQBg/LpcrWniH6LNh9MJuJMW1VPcAqGBFQRArpWCk4sz
2AUnCRi99JMliyrVPn+CnOB9DGlPZo1rojBeSyQfLPOIyisfl/n7PfJLP3z5JN/u
k5X/p9otDRTavlxR9lZA+x+PNdP8B5BZ232B61FfoEkCpqaWd5scbmo684cmnEiI
c+0VblI5D+FLmBlYqFQSlnbDHs9+N9EcJp0LISVkiDPnEg+9odo19zM69kDzQDXc
YBDlHLFnmmTOlkbP1+ng3/D+EaAFY4nT9gT4ZcG+SkunfvD+eSdE5WCBiGbkZjNV
MK5l/YhRTDpxH4CmhOGF
=574K
-----END PGP SIGNATURE-----



Mehr Informationen über die Mailingliste franken-dev