[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