[Berlin-wireless] [Solved] Freifunk Firmware
Marco Tidow
martidow
Di Mai 1 16:09:16 CEST 2007
On Wed, Apr.25. 00:12 +0200, Martin Schmitz wrote:
> > Was willst du machen?
>
> Ich wollte den Betrieb eines FF-Routers oder wenigstens die Installation des
> olsrd als Vorraussetzungshürde für die Benutzung meines Gateways bestimmen.
> Ich dachte, das sollte ohnehin so sein... Nun gut...
Hallo Martin,
dhcp-splash ist der königsweg, um den "ersten kontakt" von neu-usern in
ff-kompatible bahnen zu lenken.
wegen des zusätzlichen httpd-prozesses für die splash-redirect geschichte
ist dieses packet für 8MB-router aber zu fett. hier wäre noch eine option,
den redirect auf einen anderen node mit mehr RAM zu machen.
was den punkt no-inet-ohne-olsr-hürde angeht, geht mit etwas handarbeit
folgender ansatz; nur wer uns olsr-/batmensch-packets per wifi schickt
oder als wifi-dhcp-client maskiert wird, wird zu nicht-104/105er IP´s
geforwarded.
vorteile dieser variante: kostet keinen extra-prozess und praktisch
keine CPU.
Gruß, marco
1)
man braucht das ipt_recent kernel-modul (per router shell):
cd /
SRC='http://212.222.128.68/sven-ola/ipkg/packages'
wget -O - "$SRC"/iptables-mod-extra_1.3.3-2_mipsel.ipk |tar -xOzf - ./data.tar.gz | tar -xzf - ./usr/lib/iptables/libipt_recent.so
wget -O - "$SRC"/kmod-ipt-extra_2.4.30-brcm-5_mipsel.ipk |tar -xOzf - ./data.tar.gz | tar -xzf - ./lib/modules/2.4.30/ipt_recent.o
wget -O - "$SRC"/freifunk-iptables-missing_1.4.5_mipsel.ipk |tar -xOzf - ./data.tar.gz | tar -xzf - ./usr/lib/iptables/libipt_icmp.so
2)
dann in /etc/local.fw folgendes von hand einbauen:
ip_msk_2net() {
local IPMSK="$(echo "$1 $2"|sed 's/\./ /g')"
set -- $IPMSK ; echo $(($1 & $5)).$(($2 & $6)).$(($3 & $7)).$(($4 & $8))
}
case "$1" in
'start')
# check-point, allow forwarding to 104/105er,
# but deny non-wifi-dhcp-clients and non-OLSR-/batman-clients on WIFIDEV to non-FF-net(s)
# 104.0.0.0/7 == 104er + 105er
iptables -I FORWARD -i $WIFIDEV -d ! 104.0.0.0/7 -m recent --name forw_ok \! --rcheck --seconds 180 -j REJECT
# encount nodes sending olsr-/batman-udp packets
iptables -I INPUT -s 104.0.0.0/8 -p udp --sport 698 --dport 698 -m recent --name forw_ok --set
iptables -I INPUT -s 105.0.0.0/8 -p udp --sport 1966 --dport 1966 -m recent --name forw_ok --set
# same w/ wifi-dhcp-clients -> INET
WLDHCP="$(nvram get ff_wldhcp)" # e.g. ff_wldhcp=<ip>/<pre>,<mask>[;...]
if [ -n "$WLDHCP" ]; then
IFS=\;
for ENT in $WLDHCP; do
IP="${ENT%%/*}"; ENT="${ENT#*/}"; MSK="${ENT#*,}"; PRE="${ENT%%,*}"
if [ -n "$IP" -a -n "$PRE" ]; then
iptables -I FORWARD -i $WIFIDEV -s $IP/$PRE -d ! 104.0.0.0/7 -m recent --name forw_ok --set
fi
done
unset IFS
fi
[...]
;;
Mehr Informationen über die Mailingliste Berlin