hswiki:raum:freifunk:batman-auf-debian
Dies ist eine alte Version des Dokuments!
B.A.T.M.A.N. advanced
Um das Freifunknetzwerk nicht nur zu nutzen, sondern auch zu erweitern, lernen wir ein Teil davon zu werden.
Debian 7.0 kommt bereits mit dem notwendigen batman-adv Kernelmodul. Weiterhin sollten die Pakete batctl
, ip
, nmap
und curl
vorhanden sein.
# Kernelmodul laden modprobe batman-adv # wlan device in ad-hoc mode schalten iwconfig wlan0 mode ad-hoc iwconfig wlan0 essid batman.jena.freifunk.net batctl if add wlan0 # eine weile warten und andere Teilnehmer des Meshnetzwerks anzeigen batctl o # optional kann man andere hosts im batman-adv layer pingen batctl p fa:1a:67:cb:25:12 # um ins internet zu kommen muss man einen default gateway finden # alle konten sind von der form 10.17.*.1 ifconfig wlan0 0.0.0.0 ifconfig bat0 10.17.78.1 # besser auf address kollision pruefen! # finde den schnellsten node nmap -sP '10.17.*.1' # nutze den schnellsten als gateway ip route add default via 10.17.11.1 dev bat0 # akzeptiere den splash screen curl -d target_url=foo 10.17.11.1/cgi-bin/splash-click.html
Die einzelnen Batman Knoten kann man ueber ihre link-local IPv6 Addresse erreichen:
ssh fe80::fa1a:67ff:fecb:3162%bat0
In order to check the underlying mesh-wide distributed database (hbbp source repository), add the following Lua code to /usr/share/wireshark/init.lua
. If you run wireshark as root make sure to comment out the appropriate lines in this file to allow Lua to run.
trivial_proto = Proto("hbbp","Home Brew Broadcast Protocol") -- create a function to dissect it function trivial_proto.dissector(buffer,pinfo,tree) pinfo.cols.protocol = "HBBP" local subtree = tree:add(trivial_proto,buffer(),"HBBP Data") local i = 0 local b = buffer():bytes() while (i<b:len() and b:get_index(i)~=0) do i = i + 1 end if i==0 then return (nil) end subtree:add(buffer(0,i),"Task: " .. buffer(0,i):string()) if b:get_index(i) == 0 then subtree:add(buffer(i+1),"Payload: [Length " .. buffer:len()-i .. "]") end end -- load the udp.port table udp_table = DissectorTable.get("udp.port") -- register our protocol to handle udp port 4950 udp_table:add(4950,trivial_proto)
Here is screenshot of the dissector in action:
hswiki/raum/freifunk/batman-auf-debian.1579260335.txt.gz · Zuletzt geändert: 2020/08/01 21:11 (Externe Bearbeitung)