All of lore.kernel.org
 help / color / mirror / Atom feed
* [B.A.T.M.A.N.] Migration to Batman
@ 2012-04-12 10:26 Mitar
  2012-04-12 10:36 ` Gioacchino Mazzurco
  0 siblings, 1 reply; 45+ messages in thread
From: Mitar @ 2012-04-12 10:26 UTC (permalink / raw)
  To: b.a.t.m.a.n; +Cc: Jernej Kos

Hi!

I really liked your client roaming support presented at Battlemesh.
But I am still afraid to deploy Batman in the network. As I
understand, we should be migrating the whole network at same time each
time a new version of Batman (or Linux kernel) is released, because
you do not keep things backwards compatible? How serious is this
limitation in practice?

I am also a bit afraid of L2 meshing. How problematic are floods in
the network in practice? Like people broadcasting stuff and so on? Are
there any filters possible for this?

We have a setup where nodes have WiFi connections and VPN links to
central server. We are thinking of migration OpenVPN to L2TP tunnels,
so on the central server there will be many tunnels dynamically
created as nodes connect and disconnect. Is Batman able to add
interfaces it operates during run-time? Probably we should not just
bridge all tunnels and run Batman on top of that? This would probably
hide that there are different links bellow from Batman? Or not? (For
example, on OLSR we should not do this, because then nodes would
discover each other over server as one hop/direct neighbors.)


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-12 10:26 [B.A.T.M.A.N.] Migration to Batman Mitar
@ 2012-04-12 10:36 ` Gioacchino Mazzurco
  2012-04-12 12:00   ` Antonio Quartulli
  2012-04-12 17:05   ` Mitar
  0 siblings, 2 replies; 45+ messages in thread
From: Gioacchino Mazzurco @ 2012-04-12 10:36 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Jernej Kos

Hao! Ma allora sei stronzo !!

>As I
> understand, we should be migrating the whole network at same time each
> time a new version of Batman (or Linux kernel) is released, because
> you do not keep things backwards compatible? How serious is this
> limitation in practice?

It happen just some times not every batman/kernel version change.
We use batman-adv in Ninux Pisa and in Ninux Sicily and we managed have
some compatibility break in updates without problem just start to update
from the fairest node to the yours

> I am also a bit afraid of L2 meshing. How problematic are floods in
> the network in practice? Like people broadcasting stuff and so on? Are
> there any filters possible for this?

II have tried to do something about filtering but without success, but
we never encountered flooding problems nor in Pisa nor in Sicily

> We have a setup where nodes have WiFi connections and VPN links to
> central server. We are thinking of migration OpenVPN to L2TP tunnels,
> so on the central server there will be many tunnels dynamically
> created as nodes connect and disconnect. Is Batman able to add
> interfaces it operates during run-time? Probably we should not just
> bridge all tunnels and run Batman on top of that? This would probably
> hide that there are different links bellow from Batman? Or not? (For
> example, on OLSR we should not do this, because then nodes would
> discover each other over server as one hop/direct neighbors.)

In batman-adv you can add/remove interfaces at runtime without problems
so you doesn't need bridging or similar nasty things

On 04/12/12 12:26, Mitar wrote:
> Hi!
> 
> I really liked your client roaming support presented at Battlemesh.
> But I am still afraid to deploy Batman in the network. As I
> understand, we should be migrating the whole network at same time each
> time a new version of Batman (or Linux kernel) is released, because
> you do not keep things backwards compatible? How serious is this
> limitation in practice?
> 
> I am also a bit afraid of L2 meshing. How problematic are floods in
> the network in practice? Like people broadcasting stuff and so on? Are
> there any filters possible for this?
> 
> We have a setup where nodes have WiFi connections and VPN links to
> central server. We are thinking of migration OpenVPN to L2TP tunnels,
> so on the central server there will be many tunnels dynamically
> created as nodes connect and disconnect. Is Batman able to add
> interfaces it operates during run-time? Probably we should not just
> bridge all tunnels and run Batman on top of that? This would probably
> hide that there are different links bellow from Batman? Or not? (For
> example, on OLSR we should not do this, because then nodes would
> discover each other over server as one hop/direct neighbors.)
> 
> 
> Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-12 10:36 ` Gioacchino Mazzurco
@ 2012-04-12 12:00   ` Antonio Quartulli
  2012-04-12 15:13     ` Mitar
  2012-04-12 17:10     ` Mitar
  2012-04-12 17:05   ` Mitar
  1 sibling, 2 replies; 45+ messages in thread
From: Antonio Quartulli @ 2012-04-12 12:00 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Jernej Kos

[-- Attachment #1: Type: text/plain, Size: 4170 bytes --]

On Thu, Apr 12, 2012 at 12:36:27PM +0200, Gioacchino Mazzurco wrote:
> Hao! Ma allora sei stronzo !!
> 
> >As I
> > understand, we should be migrating the whole network at same time each
> > time a new version of Batman (or Linux kernel) is released, because
> > you do not keep things backwards compatible? How serious is this
> > limitation in practice?
> 
> It happen just some times not every batman/kernel version change.
> We use batman-adv in Ninux Pisa and in Ninux Sicily and we managed have
> some compatibility break in updates without problem just start to update
> from the fairest node to the yours

Up to now we had the so called "COMPATIBILITY VERSION". All the nodes must use
the same compatibility version otherwise they will not be able to communicate to
each other. However the compatibility version is not increased in each and every
batman-adv release, but only when the packet format (or something really
crucial) is touched.

> 
> > I am also a bit afraid of L2 meshing. How problematic are floods in
> > the network in practice? Like people broadcasting stuff and so on? Are
> > there any filters possible for this?
> 
> II have tried to do something about filtering but without success, but
> we never encountered flooding problems nor in Pisa nor in Sicily
> 

Actually it depends on what you want to filter. batman-adv itself doesn't
support filtering. But what you can do is using "ebtables" (bridge version of
iptables).

For example: If you are creating a bridge called br0 and enslaving bat0 and ap0, you can use
ebtables to DROP all the broadcast packet that want to go out through bat0. Int
his way you will limit the broadcast packets to the AP only.

By the way, I don't know if you really meant this kind of filtering.

> > We have a setup where nodes have WiFi connections and VPN links to
> > central server. We are thinking of migration OpenVPN to L2TP tunnels,
> > so on the central server there will be many tunnels dynamically
> > created as nodes connect and disconnect. Is Batman able to add
> > interfaces it operates during run-time? Probably we should not just
> > bridge all tunnels and run Batman on top of that? This would probably
> > hide that there are different links bellow from Batman? Or not? (For
> > example, on OLSR we should not do this, because then nodes would
> > discover each other over server as one hop/direct neighbors.)
> 
> In batman-adv you can add/remove interfaces at runtime without problems
> so you doesn't need bridging or similar nasty things

exactly. You can add/remove interfaces at run-time. Creating a bridge with all
the tunnels would not be good because it would not make batman-adv exploit the
interface diversity.

Cheers,

> 
> On 04/12/12 12:26, Mitar wrote:
> > Hi!
> > 
> > I really liked your client roaming support presented at Battlemesh.
> > But I am still afraid to deploy Batman in the network. As I
> > understand, we should be migrating the whole network at same time each
> > time a new version of Batman (or Linux kernel) is released, because
> > you do not keep things backwards compatible? How serious is this
> > limitation in practice?
> > 
> > I am also a bit afraid of L2 meshing. How problematic are floods in
> > the network in practice? Like people broadcasting stuff and so on? Are
> > there any filters possible for this?
> > 
> > We have a setup where nodes have WiFi connections and VPN links to
> > central server. We are thinking of migration OpenVPN to L2TP tunnels,
> > so on the central server there will be many tunnels dynamically
> > created as nodes connect and disconnect. Is Batman able to add
> > interfaces it operates during run-time? Probably we should not just
> > bridge all tunnels and run Batman on top of that? This would probably
> > hide that there are different links bellow from Batman? Or not? (For
> > example, on OLSR we should not do this, because then nodes would
> > discover each other over server as one hop/direct neighbors.)
> > 
> > 
> > Mitar

-- 
Antonio Quartulli

..each of us alone is worth nothing..
Ernesto "Che" Guevara

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-12 12:00   ` Antonio Quartulli
@ 2012-04-12 15:13     ` Mitar
  2012-04-12 15:36       ` Andrew Lunn
       [not found]       ` <CAOaDhSRTgejL5tzAnAx6wBso1sjWn_7bVuT6P1_C1qcVu25McQ@mail.gmail.com>
  2012-04-12 17:10     ` Mitar
  1 sibling, 2 replies; 45+ messages in thread
From: Mitar @ 2012-04-12 15:13 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Jernej Kos

Hi!

It is possible to announce a network behind a router without exposing
it on L2? So that you would have nodes and clients meshed in L2, but
subnets behind nodes are only routed to?

In what shape is L3 batman implementation?


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-12 15:13     ` Mitar
@ 2012-04-12 15:36       ` Andrew Lunn
  2012-04-12 17:12         ` Mitar
       [not found]       ` <CAOaDhSRTgejL5tzAnAx6wBso1sjWn_7bVuT6P1_C1qcVu25McQ@mail.gmail.com>
  1 sibling, 1 reply; 45+ messages in thread
From: Andrew Lunn @ 2012-04-12 15:36 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Jernej Kos

On Thu, Apr 12, 2012 at 05:13:33PM +0200, Mitar wrote:
> Hi!
> 
> It is possible to announce a network behind a router without exposing
> it on L2? So that you would have nodes and clients meshed in L2, but
> subnets behind nodes are only routed to?
> 
> In what shape is L3 batman implementation?

L3 problems are L3 problems. So you need OSPF, RIP, BPG, etc, to solve
your L3 routing. This works well, i've had OSPF routers talked to each
other over the mesh, so building a routed network of multiple subnets,
some subnets being mesh, some being plain old ethernet.

Your DHCP server could announce a default route which might be enough,
depending on your network topology. BATMAN also has the ability to
filter DHCP requests so that the "nearest" DHCP server replies, and
that server could have a different default route as all the other DHCP
servers on the mesh.

Or, if you are in a transition phase, and don't mind your head
exploding, run olsr, babel, etc, on top of BATMAN to gateway between
the L2 meshes!

	   Andrew


^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
       [not found]       ` <CAOaDhSRTgejL5tzAnAx6wBso1sjWn_7bVuT6P1_C1qcVu25McQ@mail.gmail.com>
@ 2012-04-12 15:37         ` Jernej Kos
  2012-04-12 17:19           ` Mitar
  2012-04-12 21:08           ` Mitar
  0 siblings, 2 replies; 45+ messages in thread
From: Jernej Kos @ 2012-04-12 15:37 UTC (permalink / raw)
  To: Gioacchino Mazzurco
  Cc: Mitar, The list for a Better Approach To Mobile Ad-hoc Networking

[-- Attachment #1: Type: text/plain, Size: 500 bytes --]

Hello!

On 04/12/2012 05:17 PM, Gioacchino Mazzurco wrote:
> You need a routing protocol between the gateways to do that, Batman creates

Wouldn't just need something like an announce mechanism so each node
would add an L3 route to the gateway announcing the said prefix?

Since from layer 3, the batman mesh looks just like a big LAN, any node
could simply add a route saying "prefix A via gateway B dev bat0" where
B is a mesh node known to batman via its L2 identifier, no?

Jernej


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 294 bytes --]

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-12 10:36 ` Gioacchino Mazzurco
  2012-04-12 12:00   ` Antonio Quartulli
@ 2012-04-12 17:05   ` Mitar
  2012-04-12 22:17     ` Marek Lindner
  1 sibling, 1 reply; 45+ messages in thread
From: Mitar @ 2012-04-12 17:05 UTC (permalink / raw)
  To: Gioacchino Mazzurco
  Cc: The list for a Better Approach To Mobile Ad-hoc Networking, Jernej Kos

Hi!

On Thu, Apr 12, 2012 at 12:36 PM, Gioacchino Mazzurco
<gmazzurco89@gmail.com> wrote:
> and we managed have
> some compatibility break in updates without problem just start to update
> from the fairest node to the yours

This works if all nodes are online at that time ...

> In batman-adv you can add/remove interfaces at runtime without problems
> so you doesn't need bridging or similar nasty things

Great. Can you also say to work on all "tun+" interfaces, so that any
interface which starts with "tun" is automatically operated on?


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-12 12:00   ` Antonio Quartulli
  2012-04-12 15:13     ` Mitar
@ 2012-04-12 17:10     ` Mitar
  2012-04-12 22:13       ` Marek Lindner
  1 sibling, 1 reply; 45+ messages in thread
From: Mitar @ 2012-04-12 17:10 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Jernej Kos

Hi!

On Thu, Apr 12, 2012 at 2:00 PM, Antonio Quartulli <ordex@autistici.org> wrote:
> but only when the packet format (or something really
> crucial) is touched.

But couldn't the packet format be made so that unknown values in there
are simply ignored? And also ignore unknown packet types? So that at
least connectivity is possible, but not as good as it could be? For
example, if we have some node which reconnects after a month, it would
be great that it still is able to connect, so that we can at least
upgrade it.

> exactly. You can add/remove interfaces at run-time. Creating a bridge with all
> the tunnels would not be good because it would not make batman-adv exploit the
> interface diversity.

And it would also see all nodes as directly connected together? So:

[nodeA] --- [tunA on server, tunB on server] --- [nodeB]

If I bridge tunA and tunB together, nodeA will think that there is
only one hop to nodeB, no?


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-12 15:36       ` Andrew Lunn
@ 2012-04-12 17:12         ` Mitar
  2012-04-12 18:12           ` Andrew Lunn
  0 siblings, 1 reply; 45+ messages in thread
From: Mitar @ 2012-04-12 17:12 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Jernej Kos

Hi!

On Thu, Apr 12, 2012 at 5:36 PM, Andrew Lunn <andrew@lunn.ch> wrote:
> Or, if you are in a transition phase, and don't mind your head
> exploding, run olsr, babel, etc, on top of BATMAN to gateway between
> the L2 meshes!

Can you please explain a bit more what are you thinking here?


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-12 15:37         ` Jernej Kos
@ 2012-04-12 17:19           ` Mitar
  2012-04-12 21:08           ` Mitar
  1 sibling, 0 replies; 45+ messages in thread
From: Mitar @ 2012-04-12 17:19 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Mitar

Hi!

On Thu, Apr 12, 2012 at 5:37 PM, Jernej Kos <k@jst.sm> wrote:
> Wouldn't just need something like an announce mechanism so each node
> would add an L3 route to the gateway announcing the said prefix?

One way could be arp proxy. So that border node would pretend to hold
all IPs of subnet behind it and reply with its own MAC address for all
those IPs. Once packets gets there is then routed behind. I have been
playing with this once and it does work.

https://en.wikipedia.org/wiki/Proxy_ARP

> Since from layer 3, the batman mesh looks just like a big LAN, any node
> could simply add a route saying "prefix A via gateway B dev bat0" where
> B is a mesh node known to batman via its L2 identifier, no?

So we would just need some other L3 routing protocol on top of
batman-adv, without any need of knowing the wireless infrastructure,
only to configure dynamically those announcements on all nodes, no? So
that when gateway B appears, that all nodes add its prefix A to their
L3 routing tables?


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-12 17:12         ` Mitar
@ 2012-04-12 18:12           ` Andrew Lunn
  2012-04-12 19:49             ` 3zl Trizonelabs
  0 siblings, 1 reply; 45+ messages in thread
From: Andrew Lunn @ 2012-04-12 18:12 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Jernej Kos

On Thu, Apr 12, 2012 at 07:12:08PM +0200, Mitar wrote:
> Hi!
> 
> On Thu, Apr 12, 2012 at 5:36 PM, Andrew Lunn <andrew@lunn.ch> wrote:
> > Or, if you are in a transition phase, and don't mind your head
> > exploding, run olsr, babel, etc, on top of BATMAN to gateway between
> > the L2 meshes!
> 
> Can you please explain a bit more what are you thinking here?

Well, your infrastructure already speaks olsr, babel, or what every L3
mesh protocol you have. It knows how to advertise additional
routes. So make one or more of your BATMAN nodes L2 mesh also a L3
mesh node. These L3 mesh nodes will see each other over the mesh, and
they will see other L3 mesh nodes over what every network technology
you have between L2 meshes. These L3 mesh nodes should also be the
default router for the devices in the L2 mesh. The L2 mesh devices
will send there packets to a L3 mesh node. It will then route it,
maybe back over the mesh, or maybe over an inter mesh links, to where
ever it needs to go. If ICMP redirect works on your L2 and L3 nodes,
it should add host routes to the L2 nodes when they use the wrong
gateway out of the L2 mesh.

	Andrew

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-12 18:12           ` Andrew Lunn
@ 2012-04-12 19:49             ` 3zl Trizonelabs
  0 siblings, 0 replies; 45+ messages in thread
From: 3zl Trizonelabs @ 2012-04-12 19:49 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

As we did  L2 Mesh with AWDS for some years and are switching to
batman-adv at the moment here my 2c.

a) Networks on L2 needs some more insight because wireless mesh isn't
just like ethernet cable, even if it looks like.
b) "leaking" subnets must be taken care of. Often the L3 network works
fine without exactly knowing what happening "down below" and
astonishingly one can see packets flowing around and been transported
with L2 all over the mesh.
c) VLAN on L2 helps alot in design of the network topoly ( VLAN over
WIFI was no problem with AWDS - we will test this with batman-adv)

regards
3zl


2012/4/12 Andrew Lunn <andrew@lunn.ch>:
> On Thu, Apr 12, 2012 at 07:12:08PM +0200, Mitar wrote:
>> Hi!
>>
>> On Thu, Apr 12, 2012 at 5:36 PM, Andrew Lunn <andrew@lunn.ch> wrote:
>> > Or, if you are in a transition phase, and don't mind your head
>> > exploding, run olsr, babel, etc, on top of BATMAN to gateway between
>> > the L2 meshes!
>>
>> Can you please explain a bit more what are you thinking here?
>
> Well, your infrastructure already speaks olsr, babel, or what every L3
> mesh protocol you have. It knows how to advertise additional
> routes. So make one or more of your BATMAN nodes L2 mesh also a L3
> mesh node. These L3 mesh nodes will see each other over the mesh, and
> they will see other L3 mesh nodes over what every network technology
> you have between L2 meshes. These L3 mesh nodes should also be the
> default router for the devices in the L2 mesh. The L2 mesh devices
> will send there packets to a L3 mesh node. It will then route it,
> maybe back over the mesh, or maybe over an inter mesh links, to where
> ever it needs to go. If ICMP redirect works on your L2 and L3 nodes,
> it should add host routes to the L2 nodes when they use the wrong
> gateway out of the L2 mesh.
>
>        Andrew

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-12 15:37         ` Jernej Kos
  2012-04-12 17:19           ` Mitar
@ 2012-04-12 21:08           ` Mitar
  2012-04-12 21:15             ` Gioacchino Mazzurco
  2012-04-13  5:59             ` Andrew Lunn
  1 sibling, 2 replies; 45+ messages in thread
From: Mitar @ 2012-04-12 21:08 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Mitar

Hi!

On Thu, Apr 12, 2012 at 5:37 PM, Jernej Kos <k@jst.sm> wrote:
> Since from layer 3, the batman mesh looks just like a big LAN, any node
> could simply add a route saying "prefix A via gateway B dev bat0" where
> B is a mesh node known to batman via its L2 identifier, no?

So I have almost convinced Kostko that we could switch to Batman, but
he does not want to run multiple routing daemons on nodes. So could
Batman support announcing also L3 prefixes? For example, that in the
node configuration you could define that that node (let say it has IP
10.10.10.10) should announce also some L3 subnet. Like
192.168.42.0/24. And when that node would be reachable from other
node, that other node would run:

ip route add prefix 192.168.42.0/24 via gateway 10.10.10.10 dev bat0

Doable? Because to run additional routing daemon just to rediscover
which nodes are around and announce things ... when Batman already
knows all this ...


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-12 21:08           ` Mitar
@ 2012-04-12 21:15             ` Gioacchino Mazzurco
  2012-04-13  5:59             ` Andrew Lunn
  1 sibling, 0 replies; 45+ messages in thread
From: Gioacchino Mazzurco @ 2012-04-12 21:15 UTC (permalink / raw)
  To: Mitar; +Cc: Mitar, The list for a Better Approach To Mobile Ad-hoc Networking

You do not need a routing daemon on all nodes but just on the gateways,
each gateway will talk to others and saying i am announcing that subnet
with that cost, so when the gateway receive a packet for that subnet it
forward the packet to the right router and tell the client "next time
you need that subnet use the other router" with an icmp message

On 04/12/12 23:08, Mitar wrote:
> Hi!
> 
> On Thu, Apr 12, 2012 at 5:37 PM, Jernej Kos <k@jst.sm> wrote:
>> Since from layer 3, the batman mesh looks just like a big LAN, any node
>> could simply add a route saying "prefix A via gateway B dev bat0" where
>> B is a mesh node known to batman via its L2 identifier, no?
> 
> So I have almost convinced Kostko that we could switch to Batman, but
> he does not want to run multiple routing daemons on nodes. So could
> Batman support announcing also L3 prefixes? For example, that in the
> node configuration you could define that that node (let say it has IP
> 10.10.10.10) should announce also some L3 subnet. Like
> 192.168.42.0/24. And when that node would be reachable from other
> node, that other node would run:
> 
> ip route add prefix 192.168.42.0/24 via gateway 10.10.10.10 dev bat0
> 
> Doable? Because to run additional routing daemon just to rediscover
> which nodes are around and announce things ... when Batman already
> knows all this ...
> 
> 
> Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-12 17:10     ` Mitar
@ 2012-04-12 22:13       ` Marek Lindner
  0 siblings, 0 replies; 45+ messages in thread
From: Marek Lindner @ 2012-04-12 22:13 UTC (permalink / raw)
  To: b.a.t.m.a.n; +Cc: Jernej Kos

On Thursday, April 12, 2012 19:10:42 Mitar wrote:
> On Thu, Apr 12, 2012 at 2:00 PM, Antonio Quartulli <ordex@autistici.org> 
wrote:
> > but only when the packet format (or something really
> > crucial) is touched.
> 
> But couldn't the packet format be made so that unknown values in there
> are simply ignored? And also ignore unknown packet types? So that at
> least connectivity is possible, but not as good as it could be? For
> example, if we have some node which reconnects after a month, it would
> be great that it still is able to connect, so that we can at least
> upgrade it.

Yes, exactly that is on the feature todo list (and more) to ensure better 
backward compatibility in the future.


> > exactly. You can add/remove interfaces at run-time. Creating a bridge
> > with all the tunnels would not be good because it would not make
> > batman-adv exploit the interface diversity.
> 
> And it would also see all nodes as directly connected together? So:
> 
> [nodeA] --- [tunA on server, tunB on server] --- [nodeB]
> 
> If I bridge tunA and tunB together, nodeA will think that there is
> only one hop to nodeB, no?

Correct.

Regards,
Marek

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-12 17:05   ` Mitar
@ 2012-04-12 22:17     ` Marek Lindner
  2012-04-13  6:22       ` Antonio Quartulli
  0 siblings, 1 reply; 45+ messages in thread
From: Marek Lindner @ 2012-04-12 22:17 UTC (permalink / raw)
  To: b.a.t.m.a.n; +Cc: Jernej Kos

On Thursday, April 12, 2012 19:05:54 Mitar wrote:
> > In batman-adv you can add/remove interfaces at runtime without problems
> > so you doesn't need bridging or similar nasty things
> 
> Great. Can you also say to work on all "tun+" interfaces, so that any
> interface which starts with "tun" is automatically operated on?

No, batman-adv is not a user space daemon with a configuration file, hence you 
can't tell batman-adv to wait for tun+. However, you can easily write a simple 
shell script for hotplug which adds whatever interface you want to batman-adv 
as soon as it is created.
Or, if you are using OpenWrt, you can simply extend the existing hotplug shell 
script to interprete the "+" as you like.

Regards,
Marek
 

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-12 21:08           ` Mitar
  2012-04-12 21:15             ` Gioacchino Mazzurco
@ 2012-04-13  5:59             ` Andrew Lunn
  2012-04-13  7:58               ` Mitar
  2012-04-16 10:25               ` Mitar
  1 sibling, 2 replies; 45+ messages in thread
From: Andrew Lunn @ 2012-04-13  5:59 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Mitar

On Thu, Apr 12, 2012 at 11:08:48PM +0200, Mitar wrote:
> Hi!
> 
> On Thu, Apr 12, 2012 at 5:37 PM, Jernej Kos <k@jst.sm> wrote:
> > Since from layer 3, the batman mesh looks just like a big LAN, any node
> > could simply add a route saying "prefix A via gateway B dev bat0" where
> > B is a mesh node known to batman via its L2 identifier, no?
> 
> So I have almost convinced Kostko that we could switch to Batman, but
> he does not want to run multiple routing daemons on nodes. So could
> Batman support announcing also L3 prefixes?

A few points here:

1) You need, in your head, a clear separation between L3 and L2.  Your
   L3 gateways need routes. Your L2 only nodes don't need routes,
   except the default route, to the gateway out of the current L2
   mesh.

   Just think about plain old Ethernet networking, and you won't go
   too far wrong. In an Ethernet based network, you have maybe 2 nodes
   which are gateways, and run L3 routing protocols. All the rest of
   the devices are L2 only and have a default route pointing it one of
   the two gateways out of the Ethernet to the rest of the world.

2) BATMAN is not a daemon. Its a kernel module. Hence it cannot play
   around with routes, even if it wanted to. Also, adding/removing
   routes is policy, and the Linux/Unix view of the world is that user
   space is responsible for deciding policy.

> For example, that in the
> node configuration you could define that that node (let say it has IP
> 10.10.10.10) should announce also some L3 subnet. Like
> 192.168.42.0/24. And when that node would be reachable from other
> node, that other node would run:
> 
> ip route add prefix 192.168.42.0/24 via gateway 10.10.10.10 dev bat0
> 
> Doable? Because to run additional routing daemon just to rediscover
> which nodes are around and announce things ... when Batman already
> knows all this ...

Nope. BATMAN has no idea. That is a L3 address. BATMAN is L2, it only
knows L2 Addresses. All it knows is that MAC address 02:01:02:03:04:05
can be reached by sending packets towards the next hop
02:06:07:08:09:0A.

Here is a rather boring example of that BATMAN knows, from a real
device:

root@tmn4:~# batctl o
[B.A.T.M.A.N. adv 2012.0.0, MainIF/MAC: br0/00:80:48:6b:9d:36 (bat0)]
  Originator      last-seen (#/255)           Nexthop [outgoingIF]:   Potential nexthops ...
00:80:48:6b:9d:35    0.084s   (255) 00:80:48:6b:9d:35 [       wlan0]: 00:80:48:6b:9d:3a (166) 00:80:48:6b:9d:35 (255)
00:80:48:6b:9d:3a    0.352s   (216) 00:80:48:6b:9d:35 [       wlan0]: 00:80:48:6b:9d:35 (216) 00:80:48:6b:9d:3a (181)


So:
In order to reach 00:80:48:6b:9d:35, send packets to 00:80:48:6b:9d:35
In order to reach 00:80:48:6b:9d:3a, send packets to 00:80:48:6b:9d:35

This comes back to:

     You need, in your head, a clear separation between L3 and L2.

     Andrew

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-12 22:17     ` Marek Lindner
@ 2012-04-13  6:22       ` Antonio Quartulli
  2012-04-13  7:29         ` Mitar
  0 siblings, 1 reply; 45+ messages in thread
From: Antonio Quartulli @ 2012-04-13  6:22 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Jernej Kos

[-- Attachment #1: Type: text/plain, Size: 1073 bytes --]

On Fri, Apr 13, 2012 at 12:17:31AM +0200, Marek Lindner wrote:
> On Thursday, April 12, 2012 19:05:54 Mitar wrote:
> > > In batman-adv you can add/remove interfaces at runtime without problems
> > > so you doesn't need bridging or similar nasty things
> > 
> > Great. Can you also say to work on all "tun+" interfaces, so that any
> > interface which starts with "tun" is automatically operated on?
> 
> No, batman-adv is not a user space daemon with a configuration file, hence you 
> can't tell batman-adv to wait for tun+. However, you can easily write a simple 
> shell script for hotplug which adds whatever interface you want to batman-adv 
> as soon as it is created.
> Or, if you are using OpenWrt, you can simply extend the existing hotplug shell 
> script to interprete the "+" as you like.

A little remark here. You MUST use interfaces that support ethernet frames
transmission. Therefore (IIRC) you can use tap interfaces but not tun ones.


Cheers,

-- 
Antonio Quartulli

..each of us alone is worth nothing..
Ernesto "Che" Guevara

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-13  6:22       ` Antonio Quartulli
@ 2012-04-13  7:29         ` Mitar
  2012-04-13  7:43           ` Andrew Lunn
  2012-04-13  8:52           ` Christian Huldt
  0 siblings, 2 replies; 45+ messages in thread
From: Mitar @ 2012-04-13  7:29 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Jernej Kos

Hi!

On Fri, Apr 13, 2012 at 8:22 AM, Antonio Quartulli <ordex@autistici.org> wrote:
> A little remark here. You MUST use interfaces that support ethernet frames
> transmission. Therefore (IIRC) you can use tap interfaces but not tun ones.

L2TP tunnel is creates a L2 tun interface, no?


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-13  7:29         ` Mitar
@ 2012-04-13  7:43           ` Andrew Lunn
  2012-04-13  7:51             ` Mitar
  2012-04-13  8:52           ` Christian Huldt
  1 sibling, 1 reply; 45+ messages in thread
From: Andrew Lunn @ 2012-04-13  7:43 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Jernej Kos

On Fri, Apr 13, 2012 at 09:29:27AM +0200, Mitar wrote:
> Hi!
> 
> On Fri, Apr 13, 2012 at 8:22 AM, Antonio Quartulli <ordex@autistici.org> wrote:
> > A little remark here. You MUST use interfaces that support ethernet frames
> > transmission. Therefore (IIRC) you can use tap interfaces but not tun ones.
> 
> L2TP tunnel is creates a L2 tun interface, no?

First, of, lets make sure we are all using tun/tap correctly. I know i
keep having the check which is which.

http://en.wikipedia.org/wiki/TUN/TAP

	TAP (as in network tap) simulates a link layer device and it
	operates with layer 2 packets such as Ethernet frames. TUN (as
	in network TUNnel) simulates a network layer device and it
	operates with layer 3 packets such as IP packets. TAP is used
	to create a network bridge, while TUN is used with routing.

So a tap interface can be added to BATMAN and become part of the L2
mesh.

tun cannot be added to batman. You need to perform L3 routing over the
interface.

Which implementation are you using of L2TP?

      Andrew

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-13  7:43           ` Andrew Lunn
@ 2012-04-13  7:51             ` Mitar
  2012-04-13  8:26               ` Andrew Lunn
  0 siblings, 1 reply; 45+ messages in thread
From: Mitar @ 2012-04-13  7:51 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Jernej Kos

Hi!

On Fri, Apr 13, 2012 at 9:43 AM, Andrew Lunn <andrew@lunn.ch> wrote:
> Which implementation are you using of L2TP?

We are not using any, we are planning to use ones provided by OpenL2TP:

http://www.openl2tp.org/

We are hoping to use UDP as transport and do L2 tunnels. I was lead to
believe that this is achievable with OpenL2TP. But I must admit I do
not know which type of interface it creates.


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-13  5:59             ` Andrew Lunn
@ 2012-04-13  7:58               ` Mitar
  2012-04-13  8:15                 ` Andrew Lunn
  2012-04-16 10:25               ` Mitar
  1 sibling, 1 reply; 45+ messages in thread
From: Mitar @ 2012-04-13  7:58 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Mitar

Hi!

On Fri, Apr 13, 2012 at 7:59 AM, Andrew Lunn <andrew@lunn.ch> wrote:
> This comes back to:
>
>     You need, in your head, a clear separation between L3 and L2.

:-)

OK, maybe I am getting a bit of hold on this. :-)

OK, so if we would like to provide a way for all nodes to also
announce their L3 subnets which are maybe behind them, we should run
additional L3 routing protocol between them so that they can exchange
information about those subnets and configure routes accordingly.
Which routing protocol are you proposing for such task? If I
understand it can be a really simple one, checking just when a node is
accessible and setting its announcements on all other nodes. There is
no need to think about link quality or anything else. If node is
accessible, set routes for its announced subnets to it. OK, one need
we would like is that it provides some routing filtering capabilities.
So that we could for example forbid to announce anything from
192.168/16. How does such protocol determine node availability?


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-13  7:58               ` Mitar
@ 2012-04-13  8:15                 ` Andrew Lunn
  2012-04-13  8:41                   ` Mitar
  0 siblings, 1 reply; 45+ messages in thread
From: Andrew Lunn @ 2012-04-13  8:15 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Mitar

On Fri, Apr 13, 2012 at 09:58:26AM +0200, Mitar wrote:
> Hi!
> 
> On Fri, Apr 13, 2012 at 7:59 AM, Andrew Lunn <andrew@lunn.ch> wrote:
> > This comes back to:
> >
> > ?? ?? You need, in your head, a clear separation between L3 and L2.
> 
> :-)
> 
> OK, maybe I am getting a bit of hold on this. :-)
> 
> OK, so if we would like to provide a way for all nodes to also
> announce their L3 subnets which are maybe behind them, we should run
> additional L3 routing protocol between them so that they can exchange
> information about those subnets and configure routes accordingly.
> Which routing protocol are you proposing for such task?

How many subnets do you think you will have? Are they all using
classful networks or classless network?

http://en.wikipedia.org/wiki/Classful_network
http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing

If you have a small network which is classful, you could use RIP.

http://en.wikipedia.org/wiki/Routing_Information_Protocol

Otherwise, i would probably use ospf.
http://en.wikipedia.org/wiki/Ospf

OSPF is much more scale-able, and typically used for enterprise
networks. If you are considering joining this network to some other
network, you are probably going to end up using OSPF, or maybe BGP as
the protocol between the networks. OSPF is designed for this sort of
multi-organizational networks.

quagga is a well used suite of routing protocols.
http://www.nongnu.org/quagga/

	Andrew

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-13  7:51             ` Mitar
@ 2012-04-13  8:26               ` Andrew Lunn
  2012-04-13  8:35                 ` Mitar
  0 siblings, 1 reply; 45+ messages in thread
From: Andrew Lunn @ 2012-04-13  8:26 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Jernej Kos

On Fri, Apr 13, 2012 at 09:51:51AM +0200, Mitar wrote:
> Hi!
> 
> On Fri, Apr 13, 2012 at 9:43 AM, Andrew Lunn <andrew@lunn.ch> wrote:
> > Which implementation are you using of L2TP?
> 
> We are not using any, we are planning to use ones provided by OpenL2TP:
> 
> http://www.openl2tp.org/

Never used it, so i "use the source luke", since its in the kernel...

Looks like you have at least two options:

Linux PPP over L2TP (PPPoX/PPPoL2TP) Sockets
L2TPv3 ethernet pseudowire driver

PPP is L3 only, so you cannot add it to BATMAN. You would need to L3
routing over it.

The pseudowire driver creates a network device l2tpeth0, l2tpeth1,
l2tpeth2, etc, one for each session. Looks like you should be able to
add these to BATMAN.

    Andrew


^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-13  8:26               ` Andrew Lunn
@ 2012-04-13  8:35                 ` Mitar
  0 siblings, 0 replies; 45+ messages in thread
From: Mitar @ 2012-04-13  8:35 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Jernej Kos

Hi!

On Fri, Apr 13, 2012 at 10:26 AM, Andrew Lunn <andrew@lunn.ch> wrote:
> The pseudowire driver creates a network device l2tpeth0, l2tpeth1,
> l2tpeth2, etc, one for each session. Looks like you should be able to
> add these to BATMAN.

Yes. This was what we were targeting. Hopefully we can make it go over UDP.


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-13  8:15                 ` Andrew Lunn
@ 2012-04-13  8:41                   ` Mitar
  2012-04-13  9:24                     ` Andrew Lunn
  2012-04-14  2:26                     ` Nicolás Echániz
  0 siblings, 2 replies; 45+ messages in thread
From: Mitar @ 2012-04-13  8:41 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Mitar

Hi!

On Fri, Apr 13, 2012 at 10:15 AM, Andrew Lunn <andrew@lunn.ch> wrote:
> How many subnets do you think you will have? Are they all using
> classful networks or classless network?

Probably not much. At most 10 % of nodes would announce their home
subnets too. But we should support also classless networks.

> quagga is a well used suite of routing protocols.
> http://www.nongnu.org/quagga/

If I understand correctly, this would allow us also easier peering
with other networks as quagga supports also redistribution of routes
and so on. So if we decide for OSPF, it will be easy also to setup BGP
on border nodes within the single daemon, no?

How CPU and memory heavy it is to run it on consumer routers like
TP-links and so on? Probably depends on number of routes and not on
itself? But is there a big penalty of running it on all nodes?


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-13  7:29         ` Mitar
  2012-04-13  7:43           ` Andrew Lunn
@ 2012-04-13  8:52           ` Christian Huldt
  2012-04-13 13:32             ` Mitar
  1 sibling, 1 reply; 45+ messages in thread
From: Christian Huldt @ 2012-04-13  8:52 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

13 apr 2012 kl. 09:29 Mitar wrote:
> On Fri, Apr 13, 2012 at 8:22 AM, Antonio Quartulli <ordex@autistici.org> wrote:
>> A little remark here. You MUST use interfaces that support ethernet frames
>> transmission. Therefore (IIRC) you can use tap interfaces but not tun ones.
> 
> L2TP tunnel is creates a L2 tun interface, no?


Just asking to educate myself.

Why would you use L2TP rather than just IPsec?
With KLIPS you would get a ethernet style device ipsec0, that should work fine with batman, no?

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-13  8:41                   ` Mitar
@ 2012-04-13  9:24                     ` Andrew Lunn
  2012-04-13 13:24                       ` Mitar
  2012-04-14  2:26                     ` Nicolás Echániz
  1 sibling, 1 reply; 45+ messages in thread
From: Andrew Lunn @ 2012-04-13  9:24 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Mitar

> If I understand correctly, this would allow us also easier peering
> with other networks as quagga supports also redistribution of routes
> and so on. So if we decide for OSPF, it will be easy also to setup BGP
> on border nodes within the single daemon, no?

Yes, quagga has BGP, but depending on your organizational structure,
it might be easier to use OSPF on your peering links. It depends on
your peers. If its The Internet, then you probably have little choice,
you need BGP. However, if your peer is another mesh network, you can
decide for your self what routing protocol to use.

> How CPU and memory heavy it is to run it on consumer routers like
> TP-links and so on? Probably depends on number of routes and not on
> itself? But is there a big penalty of running it on all nodes?

I've used quagga on Gateworks Cambria devices, with a Xscale CPU,
667MHz, 128Mbytes RAM. These tend to have more RAM than typical
consumer devices, but i've no idea how much is actually consumed.

	 Andrew

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-13  9:24                     ` Andrew Lunn
@ 2012-04-13 13:24                       ` Mitar
  0 siblings, 0 replies; 45+ messages in thread
From: Mitar @ 2012-04-13 13:24 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Mitar

Hi!

On Fri, Apr 13, 2012 at 11:24 AM, Andrew Lunn <andrew@lunn.ch> wrote:
> Yes, quagga has BGP, but depending on your organizational structure,
> it might be easier to use OSPF on your peering links. It depends on
> your peers. If its The Internet, then you probably have little choice,
> you need BGP. However, if your peer is another mesh network, you can
> decide for your self what routing protocol to use.

OK, but quagga can run multiple protocols at the same time? Like OSPF
into one direction and BGP into another? (Just making sure if I
understand correctly.)

> I've used quagga on Gateworks Cambria devices, with a Xscale CPU,
> 667MHz, 128Mbytes RAM. These tend to have more RAM than typical
> consumer devices, but i've no idea how much is actually consumed.

We would like to run that on Foneras. Does anybody have experience
with this? So we are running OLSR and it works good. If we switch to
quagga and OSPF and same network, will we have more or less CPU usage?


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-13  8:52           ` Christian Huldt
@ 2012-04-13 13:32             ` Mitar
  2012-04-13 13:50               ` Andrew Lunn
  0 siblings, 1 reply; 45+ messages in thread
From: Mitar @ 2012-04-13 13:32 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

Hi!

On Fri, Apr 13, 2012 at 10:52 AM, Christian Huldt <christian@solvare.se> wrote:
> Just asking to educate myself.

I am also doing that.

> Why would you use L2TP rather than just IPsec?

We want UDP transport. Does IPsec tunnels support that? And
furthermore, we do not want/need encryption. The main reason for going
to L2TP is that currently we are using OpenVPN for our L2 tunnels and
have problems that our links are CPU bound and not bandwidth bound. So
we would like to go to a in-kernel solution and probably without
encryption. (I doubt that Fonera can encrypt 20 Mbit/s. I even doubt
it can route that over L2TP. But I hope it will be better then current
5 Mbit/s limit.)


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-13 13:32             ` Mitar
@ 2012-04-13 13:50               ` Andrew Lunn
  2012-04-13 13:53                 ` Mitar
  0 siblings, 1 reply; 45+ messages in thread
From: Andrew Lunn @ 2012-04-13 13:50 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

On Fri, Apr 13, 2012 at 03:32:59PM +0200, Mitar wrote:
> Hi!
> 
> On Fri, Apr 13, 2012 at 10:52 AM, Christian Huldt <christian@solvare.se> wrote:
> > Just asking to educate myself.
> 
> I am also doing that.
> 
> > Why would you use L2TP rather than just IPsec?
> 
> We want UDP transport.

Why?

>  Does IPsec tunnels support that?

Don't think so. Its a L3 solution, not L4.

> And
> furthermore, we do not want/need encryption. The main reason for going
> to L2TP is that currently we are using OpenVPN for our L2 tunnels and
> have problems that our links are CPU bound and not bandwidth bound.

Did you try:

auth none
cipher none

       Andrew

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-13 13:50               ` Andrew Lunn
@ 2012-04-13 13:53                 ` Mitar
  0 siblings, 0 replies; 45+ messages in thread
From: Mitar @ 2012-04-13 13:53 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

Hi!

On Fri, Apr 13, 2012 at 3:50 PM, Andrew Lunn <andrew@lunn.ch> wrote:
>> We want UDP transport.
>
> Why?

Because it easier goes through consumer firewalls than some non-TCP
non-UDP IP packets.


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-13  8:41                   ` Mitar
  2012-04-13  9:24                     ` Andrew Lunn
@ 2012-04-14  2:26                     ` Nicolás Echániz
  2012-04-14  9:06                       ` Mitar
  1 sibling, 1 reply; 45+ messages in thread
From: Nicolás Echániz @ 2012-04-14  2:26 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

On 04/13/2012 05:41 AM, Mitar wrote:
> Hi!
> 
> On Fri, Apr 13, 2012 at 10:15 AM, Andrew Lunn <andrew@lunn.ch> wrote:
>> How many subnets do you think you will have? Are they all using
>> classful networks or classless network?
> 
> Probably not much. At most 10 % of nodes would announce their home
> subnets too. But we should support also classless networks.

I'm curious as to why those nodes wouldn't use the same IP address space
as the net if they will be announcing their routes to the mesh anyway.

One thing to be aware of is that when a home network (on a different
subnet) is connected to the batman mesh you get some side-effects, like
for example an in-house router responding to DHCP requests...
It happens here in QuintanaLibre where one user has a router with 2 IPs,
one for the house network and another for the mesh and DHCP server
enabled using the home net address space, which sometimes "leak" to a
client in the mesh.

I understand the batman-adv mesh works almost as one big switch, so it
makes sense that this router will answer for requests... but at first I
could not understand what was happening.

One other suggestion, for VPN is to take a look at Tinc; it has a
routing (or router?) mode which might be useful in your case.


>> quagga is a well used suite of routing protocols.
>> http://www.nongnu.org/quagga/
> 
> If I understand correctly, this would allow us also easier peering
> with other networks as quagga supports also redistribution of routes
> and so on. So if we decide for OSPF, it will be easy also to setup BGP
> on border nodes within the single daemon, no?
> 
> How CPU and memory heavy it is to run it on consumer routers like
> TP-links and so on? Probably depends on number of routes and not on
> itself? But is there a big penalty of running it on all nodes?
> 
> 
> Mitar


^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-14  2:26                     ` Nicolás Echániz
@ 2012-04-14  9:06                       ` Mitar
  0 siblings, 0 replies; 45+ messages in thread
From: Mitar @ 2012-04-14  9:06 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

Hi!

2012/4/14 Nicolás Echániz <nicoechaniz@codigosur.org>:
> I'm curious as to why those nodes wouldn't use the same IP address space
> as the net if they will be announcing their routes to the mesh anyway.

Probably they will use the same IP address space, but we want to route
those subnets not bridge them. This is the main difference.

> One thing to be aware of is that when a home network (on a different
> subnet) is connected to the batman mesh you get some side-effects, like
> for example an in-house router responding to DHCP requests...

If we do routing between home network and mesh network, no.

Also, our routers will not run DHCP itself. (Probably DHCP will be run
inside home networks. But as I said, we would like to only route
there, not bridge.)

> One other suggestion, for VPN is to take a look at Tinc; it has a
> routing (or router?) mode which might be useful in your case.

No, it is an user-space daemon. Context switches between user-space
and kernel-space kills much of the performance on those cheap routers.
We are currently using OpenVPN and I doubt Tinc will improve much in
this aspect. Or am I mistaken?


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-13  5:59             ` Andrew Lunn
  2012-04-13  7:58               ` Mitar
@ 2012-04-16 10:25               ` Mitar
  2012-04-16 10:37                 ` Marek Lindner
  1 sibling, 1 reply; 45+ messages in thread
From: Mitar @ 2012-04-16 10:25 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking; +Cc: Jernej Kos

Hi!

I have a feature request.

On Fri, Apr 13, 2012 at 7:59 AM, Andrew Lunn <andrew@lunn.ch> wrote:
> 2) BATMAN is not a daemon. Its a kernel module. Hence it cannot play
>   around with routes, even if it wanted to. Also, adding/removing
>   routes is policy, and the Linux/Unix view of the world is that user
>   space is responsible for deciding policy.

I have problems with an idea of running another routing protocol on
top of Batman. I think this is creates unnecessary additional
bandwidth consumption:
1) routing protocol has to find which nodes are reachable
2) routing protocol has to exchange information about announced routes

But 1) Batman already knows. So we could have a netlink protocol where
user-land daemon could subscribe to events and get for example two
events: "node reachable" and "node unreachable". Then it can do some
user-land mingling. :-)

And for 2), Batman could allow a general key/value additional
information to be announced by nodes. From its point of view that
information can be anything.

And the in our case we could add to each node information which IP it
has and which subnets it has behind. This information would then be
announced to other nodes. And then we could run a simple daemon on
other nodes which would listen to netlink events and once  a node is
reachable, read that information and setup necessary routes.

I like the idea because it allows general hooks into Batman
reachability awareness. So no duplication of this is necessary. Also,
Batman already exchanges information, so we could just allow custom
additional information from nodes to be exchanged. Maybe even stored
in that DHT you have.


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-16 10:25               ` Mitar
@ 2012-04-16 10:37                 ` Marek Lindner
  2012-04-16 10:46                   ` Mitar
  0 siblings, 1 reply; 45+ messages in thread
From: Marek Lindner @ 2012-04-16 10:37 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

On Monday, April 16, 2012 12:25:42 Mitar wrote:
> I have problems with an idea of running another routing protocol on
> top of Batman. I think this is creates unnecessary additional
> bandwidth consumption:
> 1) routing protocol has to find which nodes are reachable
> 2) routing protocol has to exchange information about announced routes
> 
> But 1) Batman already knows. So we could have a netlink protocol where
> user-land daemon could subscribe to events and get for example two
> events: "node reachable" and "node unreachable". Then it can do some
> user-land mingling. :-)

Batman-adv already has an event reporting system (via sysfs):
http://www.open-mesh.org/wiki/batman-adv/Uevent
It could be easily extended to also throw node events (reachable/unreachable).

Note: Whoever is going to implement that should think about the implications 
of mesh clouds periodically connecting and disconnecting. A lot of events 
could be fired over and over again.


> And for 2), Batman could allow a general key/value additional
> information to be announced by nodes. From its point of view that
> information can be anything.
> 
> And the in our case we could add to each node information which IP it
> has and which subnets it has behind. This information would then be
> announced to other nodes. And then we could run a simple daemon on
> other nodes which would listen to netlink events and once  a node is
> reachable, read that information and setup necessary routes.

There is no need to implement such a thing in batman-adv. You can have this 
feature today by using any broadcast system (avahi, routing daemon, self-
implemented thingy, etc) you like. Here also lies the misunderstanding: You 
don't need to run another routing protocol "on top" of batman-adv. You only 
run it to announce "stuff". You can simply run your routing protocol of choice 
to announce the routes. 
This was explained several times in this thread - maybe it still is not clear?

Cheers,
Marek


^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-16 10:37                 ` Marek Lindner
@ 2012-04-16 10:46                   ` Mitar
  2012-04-16 10:58                     ` Marek Lindner
  2012-04-16 11:03                     ` Antonio Quartulli
  0 siblings, 2 replies; 45+ messages in thread
From: Mitar @ 2012-04-16 10:46 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

Hi!

On Mon, Apr 16, 2012 at 12:37 PM, Marek Lindner <lindner_marek@yahoo.de> wrote:
> Note: Whoever is going to implement that should think about the implications
> of mesh clouds periodically connecting and disconnecting. A lot of events
> could be fired over and over again.

We made such extension to olsrd (which runs given bash script) and I
think it is the consumer who needs to take care to aggregate/average
those events and so on. Batman logic could be very simple.

> You don't need to run another routing protocol "on top" of batman-adv. You only
> run it to announce "stuff". You can simply run your routing protocol of choice
> to announce the routes.

Announcing and checking for node reachability, no? And the second part
still require some additional bandwidth, no?


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-16 10:46                   ` Mitar
@ 2012-04-16 10:58                     ` Marek Lindner
  2012-04-16 12:32                       ` Mitar
  2012-04-16 11:03                     ` Antonio Quartulli
  1 sibling, 1 reply; 45+ messages in thread
From: Marek Lindner @ 2012-04-16 10:58 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

On Monday, April 16, 2012 12:46:35 Mitar wrote:
> > Note: Whoever is going to implement that should think about the
> > implications of mesh clouds periodically connecting and disconnecting. A
> > lot of events could be fired over and over again.
> 
> We made such extension to olsrd (which runs given bash script) and I
> think it is the consumer who needs to take care to aggregate/average
> those events and so on. Batman logic could be very simple.

If you already have a shell script uevent definitely is the way to go. It is 
far easier to script than netlink.

How does your logic handle network splits / join ? Do you have the source 
somewhere ?


> > You don't need to run another routing protocol "on top" of batman-adv.
> > You only run it to announce "stuff". You can simply run your routing
> > protocol of choice to announce the routes.
> 
> Announcing and checking for node reachability, no? And the second part
> still require some additional bandwidth, no?

Batman would also need to announce the route. What are we saving?
How reachability is handled / verified depends on the routing daemon you 
choose. You could even connect your routing daemon to the uevents mentioned 
above.

I don't see any benefit of putting this into batman-adv - only a loss of 
flexibility / choice.

Cheers,
Marek

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-16 10:46                   ` Mitar
  2012-04-16 10:58                     ` Marek Lindner
@ 2012-04-16 11:03                     ` Antonio Quartulli
  2012-04-16 12:37                       ` Mitar
  1 sibling, 1 reply; 45+ messages in thread
From: Antonio Quartulli @ 2012-04-16 11:03 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

[-- Attachment #1: Type: text/plain, Size: 1364 bytes --]

On Mon, Apr 16, 2012 at 12:46:35PM +0200, Mitar wrote:
> Hi!
> 
> On Mon, Apr 16, 2012 at 12:37 PM, Marek Lindner <lindner_marek@yahoo.de> wrote:
> > Note: Whoever is going to implement that should think about the implications
> > of mesh clouds periodically connecting and disconnecting. A lot of events
> > could be fired over and over again.
> 
> We made such extension to olsrd (which runs given bash script) and I
> think it is the consumer who needs to take care to aggregate/average
> those events and so on. Batman logic could be very simple.
> 
> > You don't need to run another routing protocol "on top" of batman-adv. You only
> > run it to announce "stuff". You can simply run your routing protocol of choice
> > to announce the routes.
> 
> Announcing and checking for node reachability, no? And the second part
> still require some additional bandwidth, no?

We are not talking about another "wireless oriented" routing protocol, which
would need to measure link quality (cost) and announce it. We are talking about
something like OSPF/BGP/RIP which can be configured to announce routes only
(actually I think this is the standard way they work and this is also the reason
why they are not suitable for wireless networks).

Cheers,


-- 
Antonio Quartulli

..each of us alone is worth nothing..
Ernesto "Che" Guevara

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-16 10:58                     ` Marek Lindner
@ 2012-04-16 12:32                       ` Mitar
  2012-04-16 12:40                         ` Antonio Quartulli
  2012-04-16 18:30                         ` Marek Lindner
  0 siblings, 2 replies; 45+ messages in thread
From: Mitar @ 2012-04-16 12:32 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

Hi!

On Mon, Apr 16, 2012 at 12:58 PM, Marek Lindner <lindner_marek@yahoo.de> wrote:
> If you already have a shell script uevent definitely is the way to go. It is
> far easier to script than netlink.

Yes, but are there uevent events for node reachable/unreachable?

> How does your logic handle network splits / join ? Do you have the source
> somewhere ?

Our current logic is very simple: if route to 0.0.0.0 disappears,
display to the user error message through splash screen ("sorry, node
is separated from the rest of the mesh" message) when user tries to
access external IPs. When it comes back, return to normal behavior.

I am not sure what you mean by splits / joins. Yes, source is
available. But I am not sure if this is what you had in mind?

I was just saying that route flapping (on/off) can be dealt with some
aggregation of events on a consumer side. (But I am now unsure, maybe
we are doing this already on the plugin side.)

For olsrd plugin:

http://dev.wlan-si.net/browser/firmware/packages/opkg/net/olsrd/plugins/actions

> You could even connect your routing daemon to the uevents mentioned
> above.

Are those uevents already available? Do we know of any existing
routing protocol being capable of using them?


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-16 11:03                     ` Antonio Quartulli
@ 2012-04-16 12:37                       ` Mitar
  0 siblings, 0 replies; 45+ messages in thread
From: Mitar @ 2012-04-16 12:37 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

Hi!

On Mon, Apr 16, 2012 at 1:03 PM, Antonio Quartulli <ordex@autistici.org> wrote:
> We are not talking about another "wireless oriented" routing protocol, which
> would need to measure link quality (cost) and announce it. We are talking about
> something like OSPF/BGP/RIP which can be configured to announce routes only
> (actually I think this is the standard way they work and this is also the reason
> why they are not suitable for wireless networks).

I admit I am not familiar how those protocols work, but I imagine they
need to check if node is available/reachable in some regular
intervals? Or it is that node is just announcing its routes in regular
intervals and once it stops, after some timeout other daemons remove
the route?

Yes, I am aware that wireless cost is unneeded. But reachability
checking should still be done?

BTW, if multiple nodes are announcing the same subnet/prefix, how does
the L3 routing protocol daemon knows which one to select? From its
point of view everything is one hope away, but in reality there could
be huge differences?

For DHCP you sniff packets. But could be there some general way?


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-16 12:32                       ` Mitar
@ 2012-04-16 12:40                         ` Antonio Quartulli
  2012-04-16 13:59                           ` Mitar
  2012-04-16 18:30                         ` Marek Lindner
  1 sibling, 1 reply; 45+ messages in thread
From: Antonio Quartulli @ 2012-04-16 12:40 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

[-- Attachment #1: Type: text/plain, Size: 1256 bytes --]

On Mon, Apr 16, 2012 at 02:32:09PM +0200, Mitar wrote:
> Hi!
> 
> On Mon, Apr 16, 2012 at 12:58 PM, Marek Lindner <lindner_marek@yahoo.de> wrote:
> > If you already have a shell script uevent definitely is the way to go. It is
> > far easier to script than netlink.
> 
> Yes, but are there uevent events for node reachable/unreachable?

Actually there is only one class of event: Gateway event.
A Uevent is sent to the userspace each time the node ADD/DELETE/CHANGE its own
batman-adv-GW. Actually, if the batman-adv-GW is co-located with the L3 GW, you
can use this event to understand whether you have or not a default route in the
network (assuming that I correctly understood your scenario).
> 
> Are those uevents already available? Do we know of any existing
> routing protocol being capable of using them?

Uevents support is in the batman-adv code, but as I told you before we only have
GW events right now. But the code is easily extendible for other uevents :)

Then, in the userspace you can use UDEV to handle such uevents and do something
you like (e.g. triggeringa bash script, relaunching another daemon, whatever..)

Cheers,

-- 
Antonio Quartulli

..each of us alone is worth nothing..
Ernesto "Che" Guevara

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-16 12:40                         ` Antonio Quartulli
@ 2012-04-16 13:59                           ` Mitar
  2012-04-16 18:28                             ` Marek Lindner
  0 siblings, 1 reply; 45+ messages in thread
From: Mitar @ 2012-04-16 13:59 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

Hi!

On Mon, Apr 16, 2012 at 2:40 PM, Antonio Quartulli <ordex@autistici.org> wrote:
> you
> can use this event to understand whether you have or not a default route in the
> network (assuming that I correctly understood your scenario).

Yes. This is one feature we need. To detect gateway availability.

But also general subnet routing so that we do not need to bridge home
networks into the mesh, but route to them.

So, about my question from before about other routing protocols, like
OSPF, it probably still consumes bandwidth to detect node
availability, no?


Mitar

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-16 13:59                           ` Mitar
@ 2012-04-16 18:28                             ` Marek Lindner
  0 siblings, 0 replies; 45+ messages in thread
From: Marek Lindner @ 2012-04-16 18:28 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

On Monday, April 16, 2012 15:59:11 Mitar wrote:
> But also general subnet routing so that we do not need to bridge home
> networks into the mesh, but route to them.
> 
> So, about my question from before about other routing protocols, like
> OSPF, it probably still consumes bandwidth to detect node
> availability, no?

Unless somebody shows up with real life experience regarding the routing 
daemons you consider using you have to test it yourself. 
I am sure there are mechanisms as network failures were not a new invention 
that came with wifi. ;)

Cheers,
Marek

^ permalink raw reply	[flat|nested] 45+ messages in thread

* Re: [B.A.T.M.A.N.] Migration to Batman
  2012-04-16 12:32                       ` Mitar
  2012-04-16 12:40                         ` Antonio Quartulli
@ 2012-04-16 18:30                         ` Marek Lindner
  1 sibling, 0 replies; 45+ messages in thread
From: Marek Lindner @ 2012-04-16 18:30 UTC (permalink / raw)
  To: The list for a Better Approach To Mobile Ad-hoc Networking

On Monday, April 16, 2012 14:32:09 Mitar wrote:
> I am not sure what you mean by splits / joins. Yes, source is
> available. But I am not sure if this is what you had in mind?
> 
> I was just saying that route flapping (on/off) can be dealt with some
> aggregation of events on a consumer side. (But I am now unsure, maybe
> we are doing this already on the plugin side.)

I was talking about the scenario in which you have two mesh clouds consisting 
of roughly 100 nodes. These two clouds are barely connected via a single flaky 
link. Whenever this link vanishes you have 100 unreachable events and a minute 
later 100 reachable events and so on ..

Cheers,
Marek

^ permalink raw reply	[flat|nested] 45+ messages in thread

end of thread, other threads:[~2012-04-16 18:30 UTC | newest]

Thread overview: 45+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-04-12 10:26 [B.A.T.M.A.N.] Migration to Batman Mitar
2012-04-12 10:36 ` Gioacchino Mazzurco
2012-04-12 12:00   ` Antonio Quartulli
2012-04-12 15:13     ` Mitar
2012-04-12 15:36       ` Andrew Lunn
2012-04-12 17:12         ` Mitar
2012-04-12 18:12           ` Andrew Lunn
2012-04-12 19:49             ` 3zl Trizonelabs
     [not found]       ` <CAOaDhSRTgejL5tzAnAx6wBso1sjWn_7bVuT6P1_C1qcVu25McQ@mail.gmail.com>
2012-04-12 15:37         ` Jernej Kos
2012-04-12 17:19           ` Mitar
2012-04-12 21:08           ` Mitar
2012-04-12 21:15             ` Gioacchino Mazzurco
2012-04-13  5:59             ` Andrew Lunn
2012-04-13  7:58               ` Mitar
2012-04-13  8:15                 ` Andrew Lunn
2012-04-13  8:41                   ` Mitar
2012-04-13  9:24                     ` Andrew Lunn
2012-04-13 13:24                       ` Mitar
2012-04-14  2:26                     ` Nicolás Echániz
2012-04-14  9:06                       ` Mitar
2012-04-16 10:25               ` Mitar
2012-04-16 10:37                 ` Marek Lindner
2012-04-16 10:46                   ` Mitar
2012-04-16 10:58                     ` Marek Lindner
2012-04-16 12:32                       ` Mitar
2012-04-16 12:40                         ` Antonio Quartulli
2012-04-16 13:59                           ` Mitar
2012-04-16 18:28                             ` Marek Lindner
2012-04-16 18:30                         ` Marek Lindner
2012-04-16 11:03                     ` Antonio Quartulli
2012-04-16 12:37                       ` Mitar
2012-04-12 17:10     ` Mitar
2012-04-12 22:13       ` Marek Lindner
2012-04-12 17:05   ` Mitar
2012-04-12 22:17     ` Marek Lindner
2012-04-13  6:22       ` Antonio Quartulli
2012-04-13  7:29         ` Mitar
2012-04-13  7:43           ` Andrew Lunn
2012-04-13  7:51             ` Mitar
2012-04-13  8:26               ` Andrew Lunn
2012-04-13  8:35                 ` Mitar
2012-04-13  8:52           ` Christian Huldt
2012-04-13 13:32             ` Mitar
2012-04-13 13:50               ` Andrew Lunn
2012-04-13 13:53                 ` Mitar

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.