Hi,
I'm testing BATMAN Advanced Kernel Land and I've found a problem.
I'm using BATMAN-adv over OpenWRT.
My test is:
3 virtual machine
2 Ethernet card for each virtual machine
3 Vlan
So we have a loop and I hoped that BATMAN solve this but...
What's happen is that each virtual machine can send message to itself
using the 2 interface.
It passes because the BATMAN message are re-broadcasted and at a
certain point 1 of machine start to communicate only with itself,
disappearing from the network.
I need helppp!!!
Paolo Cipollone
Hello Mr Seybold,
would it be possible, that the cherry pal http://cherrypal.com/ has a
wireless chip and this Driver pre-installed?
that would allow to build a FON-like network, it is a routing mesh network
and all cherrypals could connect wireless to each other.
https://www.open-mesh.net/batman
Thanks for a feedfback
Max
---------- Forwarded message ----------
From: Robert Schuster <theBohemian(a)gmx.net>
Date: Fri, Jun 27, 2008 at 12:01 AM
Subject: Freifunk@FreeRunner: OLSRD
To: List for Openmoko community discussion <community(a)lists.openmoko.org>
Hi,
you know we already have B.A.T.M.A.N in OpenEmbedded but now I gave good
old OLSRD a try too.
I added a recipe for the latest release 0.5.5 and tested it on the
device. It is working nicely along with the ar6000 being in ad-hoc mode
(the preferred mode for mesh networks ;) ). No luck with 0.5.3 though -
it crashes when I want to view the page generated by the httpinfo plugin.
I wanted to do some NATting between the wifi interface and the usbnet
connection (effectively making my desktop computer an internet gateway
for the Berlin Freifunk community).
However this was impossible since OpenMoko does not provide the iptables
package (you can get the kernel modules but not the userspace
application). You can build it on your own and then everything is fine
though.
There are also some minor issues with the wifi driver. I reported
this[0] a while ago already.
I am already happy but I would be so even more if:
- olsrd version preference could be set to 0.5.5
- iptables could be installed directly via opkg
The FreeRunner as a wifi mesh-node is a nice use case for the time after
being a mobile phone. It would be one of the very few nodes that have a
screen attached. :)
I would like to offer screen shots but there is nothing spectacular to
see on them. But perhaps you like some console output instead:
root@om-gta02:~# iwconfig eth0
eth0 AR6000 802.11g ESSID:"olsr.freifunk.net"
Mode:Ad-Hoc Frequency:2.457 GHz Cell: 02:CA:FF:EE:BA:BE
Bit Rate=1 Mb/s Tx-Power=15 dBm Sensitivity=0/3
Retry:on
Encryption key:off
Power Management:off
Link Quality:168/94 Signal level:-183 dBm Noise level:-96 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:0 Missed beacon:0
(A fixed BSSID of '02:CA:FF:EE:BA:BE' is what we use in Berlin to
overcome some problems with ad-hoc mode specification.)
Starting the daemon:
root@om-gta02:~# /etc/init.d/olsrd start
Starting OLSR routing protocol daemon: olsr.org
*** olsr.org - 0.5.5 ***
Build date: 2008-06-26 23:09:18 on linkist
http://www.olsr.org
Parsing file: "/etc/olsrd.conf"
olsr.org - 0.5.5 detaching from the current process...
done.
root@om-gta02:~# pidof olsrd
4479
Pinging a node that is a few hops away:
root@om-gta02:~# ping 104.192.0.156
PING 104.192.0.156 (104.192.0.156): 56 data bytes
64 bytes from 104.192.0.156: seq=0 ttl=62 time=89.001 ms
64 bytes from 104.192.0.156: seq=3 ttl=62 time=45.555 ms
--- 104.192.0.156 ping statistics ---
4 packets transmitted, 2 packets received, 50% packet loss
round-trip min/avg/max = 45.555/67.278/89.001 ms
Traceroute to it:
root@om-gta02:~# traceroute 104.192.0.156
traceroute to 104.192.0.156 (104.192.0.156), 30 hops max, 38 byte packets
1 104.131.4.24 (104.131.4.24) 15.096 ms 29.789 ms 12.770 ms
2 104.131.4.26 (104.131.4.26) 12.536 ms 11.377 ms 10.147 ms
3 104.192.0.156 (104.192.0.156) 25.497 ms 51.212 ms 51.228 ms
Actually I could find something that may show I am really using this on
the Neo. I attached is httpinfo plugin generated webpage showing my
configuration. There are few devices where eth0 is a wifi card. :D
If you are interested I also attached by olsrd.conf. You need to have
olsrd-plugin-httpinfo, olsrd-plugin-nameservice (didn't work as
expected) and olsrd-plugin-dyngw installed besides the daemon.
Regards
Robert
[0] - http://docs.openmoko.org/trac/ticket/1392olsr.org OLSR daemon <http://www.olsr.org/> [image: olsrd
logo]<http://www.olsr.org/>
- Configuration <http://192.168.0.202:8080/config>
- Routes <http://192.168.0.202:8080/routes>
- Links/Topology <http://192.168.0.202:8080/nodes>
- All <http://192.168.0.202:8080/all>
- About <http://192.168.0.202:8080/about>
Version: olsr.org - 0.5.5 (built on 2008-06-26 23:09:18 on linkist)
OS: GNU/Linux
System time: *Fri, 27 Jun 2008 14:27:37*
Olsrd uptime: *00 hours 15 minutes 55 seconds*
HTTP stats(ok/dyn/error/illegal): *20/0/0/0*
Click here <http://192.168.0.202:8080/cfgfile> to *generate a configuration
file for this node*. Variables Main address: *104.131.4.193* IP
version: 4 Debug
level: 0 FIB Metrics: flat Pollrate: 0.05 TC redundancy: 2 MPR coverage: 7 NAT
threshold: 1.000000 Fisheye: Enabled TOS: 0x0010 RtTable: 0x00fe/254
RtTableDefault:
0x0000/0 Willingness: 7 LQ extension: Enabled LQ level: 2 LQ winsize: 100
Interfaces eth0 IP: 104.131.4.193 MASK: 255.0.0.0 BCAST: 104.255.255.255 MTU:
1472 WLAN: Yes STATUS: UP*Olsrd is configured to run even if no interfaces
are available*
Plugins Name Parameters olsrd_nameservice.so.0.3 KEY, VALUE "latlon-file",
"/var/run/latlon.js" "latlon-infile", "/var/run/latlon.txt" "timeout",
"3600" "interval", "180" "suffix", ".olsr" "hosts-file", "/var/hosts" "name",
"freerunner.olsr" olsrd_httpinfo.so.0.1 KEY, VALUE "Net", "0.0.0.0
0.0.0.0" "Host",
"127.0.0.1" "port", "8080" olsrd_dyn_gw.so.0.4 KEY, VALUE "Ping", "
194.25.2.129" "Ping", "141.1.1.1" "Interval", "40" Announced HNA entries
Network 0.0.0.0/0
(C)2005 Andreas Tønnesen
http://www.olsr.org
##################################################
## Freifunk Default OLSRD.CONF ##
## olsr.org OLSR daemon config file ##
## onelektra at gmx dot net ##
##################################################
#
# Lines starting with a # are discarded
#
# This file was edited by Elektra and needs
# olsrd-0.4.10 CVS or higher
#
# This file is an example of a typical configuration
# for a huge (250 Nodes or more), reliable, scalable
# routing-loop-free (well, almost :) and mostly static
# network (regarding mobility) using the LQ extention
# and FishEyeAlgorithm with LinkQualityDijkstraLimit
# to reduce CPU-Overhead
# Debug level(0-9)
# If set to 0 the daemon runs in the background
# Use Debug level 0 on a embedded system -
# debugging draws a lot of CPU-Power
DebugLevel 0
# FishEyeAlgorithm - Disable only if you want to
# experience routing loops :)
# See the README about Fisheye in the olsrd-source
LinkQualityFishEye 1
# Don't recalculate the Dijkstra-Table for every
# incoming TC-Message from nodes more than n hops away -
# Disable this algorithm in a huge mesh only if you are
# interested to accelerate global warming with overheated CPUs
# The first integer tells the algorithm to recalculate
# the Dijkstra-table when a TC-Message arrives from a node
# not more than n hops away. If set to 0 it will not
# recalculate it upon incoming TCs
# The second number (float) sets the time interval when
# the Dijkstra table will be recalculated anyway.
# Whatever comes first...
LinkQualityDijkstraLimit 0 10.0
# IP version to use (4 or 6)
IpVersion 4
# Clear the screen each time the internal state changes
ClearScreen yes
# HNA IPv4 routes
# syntax: netaddr netmask
# Example Internet gateway:
# 0.0.0.0 0.0.0.0
Hna4
{
# Don't use this to announce an Internet Gateway -
# rather use the dyn_gw plugin that checks wheter you are
# actually a gateway or a black hole for other peoples
# internet traffic...
# Internet gateway:
# 0.0.0.0 0.0.0.0
# more entries can be added:
# 192.168.1.0 255.255.255.0
}
# HNA IPv6 routes
# syntax: netaddr prefix
# Example Internet gateway:
Hna6
{
# Internet gateway:
# :: 0
# more entries can be added:
# fec0:2200:106:: 48
}
# Should olsrd keep on running even if there are
# no interfaces available? This is a good idea
# for a PCMCIA/USB hotswap environment.
# "yes" OR "no"
AllowNoInt yes
# TOS(type of service) value for
# the IP header of control traffic.
# If not set it will default to 16
#TosValue 16
# The fixed willingness to use(0-7)
# If not set willingness will be calculated
# dynamically based on battery/power status
# if such information is available
Willingness 7
# Allow processes like the GUI front-end
# to connect to the daemon.
IpcConnect
{
# Determines how many simultaneously
# IPC connections that will be allowed
# Setting this to 0 disables IPC
MaxConnections 1
# By default only 127.0.0.1 is allowed
# to connect. Here allowed hosts can
# be added
Host 127.0.0.1
#Host 10.0.0.5
# You can also specify entire net-ranges
# that are allowed to connect. Multiple
# entries are allowed
#Net 192.168.1.0 255.255.255.0
}
# Enable Hysteresis only if you want your routing table
# to brake down every 5 seconds
# Hysteresis is one of this fancy looking 'optimizations'
# in RFC 3626 that don't work in real life
# If unsure say "NO!"
UseHysteresis no
# Hysteresis parameters
# Do not alter these unless you know
# what you are doing!
#
# If you know what you are doing
# you make sure that hysteresis
# is completely SWITCHED OFF!
#
# Set to auto by default. Allowed
# values are floating point values
# in the interval 0,1
# THR_LOW must always be lower than
# THR_HIGH.
#HystScaling 0.50
#HystThrHigh 0.80
#HystThrLow 0.30
# Link quality level
# 0 = do not use link quality
# 1 = use link quality for MPR selection
# 2 = use link quality for MPR selection and routing
# Defaults to 0
LinkQualityLevel 2
# Link quality window size
# Defaults to 10
# 100 is slow but stable...
LinkQualityWinSize 100
# Polling rate in seconds(float).
# Default value 0.05 sec
Pollrate 0.05
# TC redundancy
# Specifies how much neighbor info should
# be sent in TC messages
# Possible values are:
# 0 - only send MPR selectors
# 1 - send MPR selectors and MPRs
# 2 - send all neighbors
#
# defaults to 0
# MultiPointRelais is another notorious
# 'optimization' feature in RFC3626...
# Switch it off by chosing redundancy value 2
TcRedundancy 2
#
# MPR coverage
# Specifies how many MPRs a node should
# try select to reach every 2 hop neighbor
#
# Can be set to any integer >0
#
# defaults to 1
#
# Full coverage is the way to get rid of this
# annoying 'optimization'
MprCoverage 7
# Olsrd plugins to load
# This must be the absolute path to the file
# or the loader will use the following scheme:
# - Try the paths in the LD_LIBRARY_PATH
# environment variable.
# - The list of libraries cached in /etc/ld.so.cache
# - /lib, followed by /usr/lib
# Example plugin entry with parameters:
# This plugin generates the information to make those fancy
# 2D and 3D topology graphs
#LoadPlugin "olsrd_dot_draw.so.0.3"
#{
# PlParam "accept" "192.168.120.17"
#}
# This plugin announces that this node is a gateway into
# other networks, it it actually is:
LoadPlugin "olsrd_dyn_gw.so.0.4"
{
# Here parameters are set to be sent to the
# plugin. Theese are on the form "key" "value".
# Parameters ofcause, differs from plugin to plugin.
# Consult the documentation of your plugin for details.
# Example: dyn_gw params
# how often to check for Internet connectivity
# defaults to 5 secs
PlParam "Interval" "40"
# if one or more IPv4 addresses are given, do a ping on these in
# descending order to validate that there is not only an entry in
# routing table, but also a real internet connection. If any of
# these addresses could be pinged successfully, the test was
# succesful, i.e. if the ping on the 1st address was successful,the
# 2nd won't be pinged
PlParam "Ping" "141.1.1.1"
PlParam "Ping" "194.25.2.129"
}
# This plugin announces services available on your router:
# Of course the configfile should be present...
# LoadPlugin "olsrd_servicediscover.so.0.3"
#{
# PlParam "configfile" "/etc/servicediscover.conf"
#};
# Add more plugins here...
LoadPlugin "olsrd_httpinfo.so.0.1"
{
PlParam "port" "8080"
PlParam "Host" "127.0.0.1"
PlParam "Net" "0.0.0.0 0.0.0.0"
}
LoadPlugin "olsrd_nameservice.so.0.3"
{
PlParam "name" "freerunner.olsr"
PlParam "hosts-file" "/var/hosts"
PlParam "suffix" ".olsr"
PlParam "interval" "180"
PlParam "timeout" "3600"
PlParam "latlon-infile" "/var/run/latlon.txt"
PlParam "latlon-file" "/var/run/latlon.js"
}
# Finally, the interfaces section:
# Interfaces and their rules
# Omitted options will be set to the
# default values. Multiple interfaces
# can be specified in the same block
# and multiple blocks can be set.
# !!CHANGE THE INTERFACE LABEL(s) TO MATCH YOUR INTERFACE(s)!!
# (eg. wlan0 or eth1):
Interface "eth0"
{
# IPv4 broadcast address to use. The
# one usefull example would be 255.255.255.255
# If not defined the broadcastaddress
# every card is configured with is used
# Ip4Broadcast 255.255.255.255
# IPv6 address scope to use.
# Must be 'site-local' or 'global'
# Ip6AddrType site-local
# IPv6 multicast address to use when
# using site-local addresses.
# If not defined, ff05::15 is used
# Ip6MulticastSite ff05::11
# IPv6 multicast address to use when
# using global addresses
# If not defined, ff0e::1 is used
# Ip6MulticastGlobal ff0e::1
# Emission intervals.
# If not defined, RFC proposed values will
# be used in most cases.
# Hello interval in seconds(float)
HelloInterval 5.0
# HELLO validity time
HelloValidityTime 300.0
# TC interval in seconds(float)
TcInterval 2.0
# TC validity time
TcValidityTime 300.0
# MID interval in seconds(float)
MidInterval 5.0
# MID validity time
MidValidityTime 300.0
# HNA interval in seconds(float)
HnaInterval 5.0
# HNA validity time
HnaValidityTime 300.0
# When multiple links exist between hosts
# the weight of interface is used to determine
# the link to use. Normally the weight is
# automatically calculated by olsrd based
# on the characteristics of the interface,
# but here you can specify a fixed value.
# Olsrd will choose links with the lowest value.
# Weight 0
}
_______________________________________________
Openmoko community mailing list
community(a)lists.openmoko.org
http://lists.openmoko.org/mailman/listinfo/community
Hi Antonio,
As I know you can not directly trigger to change the default route.
batmand allows you to setup a ip address that should be used as gateway.
<batmand -p ip>
What the script does I don't know. Actually I do not use it as the routing
that batmand-experimental does with its arguments works fine.
> ip route add 0.0.0.0/0 via 0.0.0.0 src 169.254.0.1 dev gate0 table 68
does setup a default route for dev gate0. gate0 is created by batmand
and the ip is taken from a ip range that is never routed in internet.
As soon as batmand detects a working gateway it creates this tunnel and
the tunnel interface gate0. Depending on the routing parameters "-r"
batmand chooses the gateway. If you specify the -p option to pass a
ip of the network (not from range 169.254.x.x) and the gateway is working,
it is used. If this gateway does not work, batmand chooses the gateway
depending on the -r option.
if you look at the router script you will see that it only prints the
commands and does not really execute it.
You have to remove the "echo" in front of the command or keep the line and
add your own commands to add/del the rules/routes.
If not no routes are setup at all and your network shouldn't work.
When I remember right, if you specifiy a routing script batmand does not
set rules/routes anymore and pass the complete control to the script.
/Stephan
> Hi Stephan
>
> I too am interested to capture the gateway-switching from application
> layer, but looking at the log produced by a custom-policy-routing
> script I can only see something like:
>
> ip route add 0.0.0.0/0 via 0.0.0.0 src 169.254.0.1 dev gate0 table 68
>
> that is the initialization of the tunnel with a 169.254/16 IP address.
> Any idea about triggering the gateway change?
>
> I've a bit edited the default script as included, hope this could be
> useful.
>
>
> Antonio
>
>
>
>
Hi,
I'm using batmand-experimental rev 1066 and it works fine.
The batmand sets all routes and rules as I have specified by arguments.
But additional I need to run a script to detect any routing changes of the
deamon. It is important that batmand still sets the routes as usual and
also runs the "routing-script" in addition to it. I like to use this for
other purposes.
I have heard that you already have a similar functionality implemented in
different batman branches. But this option will turn off setting the
routes
and rules of batmand.
Can you please add/merge this functionality it to the exp-branch and perhaps
add an option so that the normal route/rule setting is not turned off.
The reason for this is that I like to detect the current gateway changes.
Another questions is, why does the node that offers a gateway not be listed
itself in its batmand -cd2 screen?
It is possible that you add this. The web interface of the router displays
the currently used gateway, but it does not list it if the router self
offers the internet connection. I just grep for the "==>" of the batmand
-cbd2 screen.
Regards
Stephan
I can't understund why the batmand doesn't add the default route for go on
internet.
My configuration is:
The fonera (192.168.9.1) has internet throught the eth0 interface with class
ip 192.168.1.X/24
On fonera i start batman with this command:
batmand -s 192.168.9.1 -g 9 ath0
And on the client computer (192.168.9.4) i start batmand with this computer:
batmand -s 192.168.9.1 -r 3 -p 192.168.9.1 eth1
The problem is that when i start batman on the client pc it doesn't add the
default route to 192.168.9.1 infact if i add it manually with:
route add default gw 192.168.9.1
everything goes ok and i can surf on internet but without the manual add of
the route i can't surf..
Can someone help me?
Eidos
I am duplicating Shane Chao's setup with three nodes - the central one
having two radios on different channels - each one on the same channel
as one of the other two nodes.
node 1 node 2 node 3
10.232.0.1 10.232.0.3 10.232.0.2
------ ------ ------
wlan0 <--ch 50--> wlan0
wlan1 <--ch 58-> wlan1
When they are all on the same channel (and the central node is just
using one radio), batman works fine - node 2 relays between the two
(node 1 and node3 can't hear each other due to an obstruction).
However when I get batman to run on both interfaces, I can no longer
talk between node 1 and node 2 at all. In fact even if node 3 is turned
off, just running batmand on both interfaces of node 2 stops it working.
What is wierd is that node 1 can't seem to get its routes organised so
that when it tries to send packets back to node 2, its gets (-d4 log):-
Error - can't send requested ip to client (10.232.0.3): Network is
unreachable
It can hear packets coming from node 2 just fine. More log:-
Received BATMAN packet via NB: 10.232.0.3, IF: wlan1 10.232.0.1 (from
OG: 10.231.0.3, via old OG: 10.231.0.3, seqno 5126, tq 255, TTL 50, V 5,
IDF 0)
[ 5187150] HNA information received (1 HNA network):
[ 5187150] hna: 10.232.0.3/32
[ 5187150] Creating new originator: 10.231.0.3
[ 5187150] updating last_seqno: old 0, new 5126
[ 5187150] Drop packet: OGM via unkown neighbor!
I am not so much looking for someone to help me to debug this, just a
confirmation that multiple interfaces does work OK.
Damian
--
Launtel - Plugging Tassie into the world
Tel: 1800LAUNTEL (1800528683)
Mob: 0418217582
Fax: 1300784109
http://www.launtel.net.au
Hi all,
Simon has answered to this topic. Could you be more specific? I have the
same problem... no objects (for AP, network...) are loaded on s3d window. I
received the same error just when I'm not root or when another meshs3d
process is running, but ever the symbols are appeared.
ldd of meshs3d recognize libg3d library. What do you exactly mean with those
3ds plugins? where can we found them or realize if we've got them installed?
Thanks a lot.
Regards,
Francesc
Does anyone have any experience with securing batman networks (or more
to the point the adhoc networks it is based on)? My setup will be a
relatively planned infrastructure with all units controlled by myself,
so embedding keys etc won't really be an issue.
Can you use WPA2 with adhoc networks? How does this work with
wpa_supplicant & hostapd (which are obviously designed for use with
access point infrastructure).
When I use the term "security" I am looking at it at several levels:-
1) Stopping rogue units joining the network.
2) Encrypting the traffic to stop eavesdropping.
3) Stopping others from hijacking the connections (either between nodes
or via the gateways).
I realise this is a different style from the community mesh network,
open to everyone, that Batman appears to have been part of up to now. In
Australia bandwidth is so limited (and expensive) that people here are
generally not willing to share it, so there is almost no chance of a
community arising of its own accord.
Damian
--
Launtel - Plugging Tassie into the world
Tel: 1800LAUNTEL (1800528683)
Mob: 0418217582
Fax: 1300784109
http://www.launtel.net.au