[WLANware] dnsmasq Macher gesucht

Albi Rebmann albi at life.de
Sun Oct 14 12:49:53 CEST 2007


> Dass das funktioniert verdanken wir der IP-Vergabe bei Openwireless. Für
> Router vergeben wir standardmässig einen /29-Block, der dann direkt ins
> OLSR-DHCP rein kommt. Dadurch wird das Setzten einer Alias-IP auf dem
> WIFI Interface und das Konfigurieren der Default-Route in dnsmasq
> überflüssig.

Ja, erstaunlich. Ich trage bisher immer den DHCP Range mit /29 ein, also
z.B. 172.21.85.96/29 und es funktioniert auch.
Ich habe nun etwas rumprobiert. Komisch fand ich, es wird folgendes in
dns,asmq.conf geschrieben:
dhcp-range=wlnat,172.21.85.66,172.21.85.70,172.21.85.64/29,2h
Die Maske müsste eigentlich als 255.255.255.248 geschrieben werden, wenn
ich das korrigiere, kriegt XP aber keine IP mehr. Wenn die /29 drin
steht wird die woh ignoriert und 255.255.0.0 genommen, was funktioniert.
Wenn mir mal einer erklären kann warum das so ist...

Lange Rede kurzer Sinn, mit 2 Addon Firewall Scripten habe ich nun DHCP
auf WLAN zum laufen gekriegt. Vorsicht, die local.dnsmasq.conf wird
überschrieben! DIe Scripte sind sicher noch verbesserungsfähig.
#!/bin/sh

#       Generate second IP on WLAN interface for DHCP

WLDHCP=$(nvram get ff_wldhcp)
IFS=\;
for ENT in $WLDHCP; do
        NET=${ENT%[/]*}
        MSK=${ENT#*[/]}
        if [ -n "$NET" ] && [ -n "$MSK" ]; then
                DHCPBEG=$(ipcalc -n $ENT|cut -d'.' -f4)
                DHCPBEG=$(( $DHCPBEG + 1 ))
                DHCPNET=$(ipcalc -n $ENT|cut -d'=' -f2|cut -d'.' -f1-3)
                DHCPMSK=$(ipcalc -m $ENT|cut -d'=' -f2)
                DHCPMAK=$(echo $ENT|cut -d'/' -f2)
                DHCPIP="$DHCPNET.$DHCPBEG/$DHCPMAK"
                case $1 in
                    start)
                        ip addr add dev $WIFIDEV $DHCPIP broadcast +
                        #       patch /etc/local.dnsmasq.conf
                        echo "dhcp-option=wlnat,1,$DHCPMSK"
>/etc/local.dnsmasq.conf
                        echo "dhcp-option=wlnat,3,$DHCPNET.$DHCPBEG"
>>/etc/local.dnsmasq.conf
                    ;;
                    stop)
                        ip addr del dev $WIFIDEV $DHCPIP
                    ;;
                esac
        fi
done




#!/bin/sh

# Place your firewall addons here or use /etc/local.fw-xxx

case $1 in
    start)
        # Mask packets from these WLAN DHCP clients, so they can do inet
w/o OLSR
        ENTS=$(nvram get ff_wldhcp)
        IFS=\;
        for ENT in $ENTS; do
            NET=${ENT%[:,]*}
            MSK=${ENT#*[:,]}
            iptables -t nat -D POSTROUTING -s $NET -j MASQUERADE
            done
#       iptables -t filter -I auth_users -d $NET -j ACCEPT
        unset IFS
    ;;
    stop)
    ;;
esac



ALBI...




More information about the WLANware mailing list