[WLANware] Gültige Zeit für ARP-Table

Marco Tidow martidow at cs.tu-berlin.de
Sun Apr 30 13:45:36 CEST 2006


On Sun, Apr.09. 16:54 +0200, Ufo wrote:
> Da steig ich nochmal ein: der OLSR-Traffic ist ja UDP / Broadcast. 
> Deshalb werden da auch keine ARP-Tabellen damit belastet.
> 
> Das ist aber schade:
> Die ganze Zeit ballern sich die Nodes mit OLSR-Paketen zu.
> Aber wenn es dann mal um eine konkrete TCP-Verbindung zwischen ihnen 
> geht, dann fragen sie sich gegenseitig erst mal ganz unbedarft nach 
> ihren MAC-Adressen. Und das ggf. jede Minute neu!?

Deshalb lohnt sich die Mühe, die MACs der typischen Verdächtigen - sprich
fest installierten Nachbar-nodes einzusammeln, und fest in die ARP-table
zu schreiben.  Nachtteil ist, man muß das im Auge behalten, falls eine
node ihre IP oder das wifi-interface wechselt.  Habe unten ein init.d-
script angehängt, das das Setzen der ARP-table beim boot für alle
interfaces erledigt.

Hat auch den Vorteil, ARP-spoofing irgendwelcher Spielie-Kids auszuhalten ;-)

Fügt man neue MACs hinzu, reicht ein erneuter Aufruf von /etc/init.d/S41ethers
im laufenden Betrieb.

gruß, marco


cat > /etc/init.d/S41ethers <<'EOHERE'
#!/bin/sh
test -n "$FAILSAFE" && exit
export PATH='/bin:/sbin:/usr/bin:/usr/sbin'
eval $(/usr/bin/netparam)
[ -z "$1" -o x"$1" = 'xstart' ] && DEVS="$WIFIDEV $LANDEV $WANDEV"
[ -n "$1" -a x"$1" != 'xstart' ] && DEVS="$1" 
for DEV in $DEVS; do
  [ -f /etc/ethers."$DEV" ] && {                                                                             
    cat /etc/ethers."$DEV" | while read -r MAC IP; do                                                        
      case "$MAC" in                                                                                         
        #*) continue;;                                                                                       
        '') continue;;                                                                                       
        *)                                                                                                   
            /usr/sbin/ip neighbour add    to "$IP" lladdr "$MAC" dev "$DEV" >/dev/null 2>&1 ||               
            /usr/sbin/ip neighbour change to "$IP" lladdr "$MAC" dev "$DEV" >/dev/null 2>&1                  
            ;;                                                                                               
       esac                                                                                                  
    done                                                                                                     
  }
done                                                                                                         
EOHERE

chmod a+x /etc/init.d/S41ethers


ll /etc/ethers*
lrwxrwxrwx    1 root     root           15 Dec 28 00:44 /etc/ethers -> /etc/ethers.br0
-rw-r--r--    1 root     root            0 Dec 28 00:44 /etc/ethers.br0
-rw-r--r--    1 root     root          237 Apr 24  2006 /etc/ethers.eth2

cat /etc/ethers.eth2
#Same as dhcp-host in dnsmasq.conf: MAC IP|Name
00:02:DD:81:0B:84 104.136.12.6
00:06:25:ff:94:e8 104.136.12.7
00:90:96:C0:EB:E2 104.136.12.9
00:90:D1:06:67:C0 104.136.12.10
00:13:10:0B:0A:3D 104.136.22.22
00:90:96:C0:EB:E4 104.131.25.12





More information about the WLANware mailing list