* [B.A.T.M.A.N.] how to make IP layer handle the change of network topology @ 2014-08-07 7:49 liudows 2014-08-07 8:24 ` Antonio Quartulli 2014-08-07 8:29 ` Simon Wunderlich 0 siblings, 2 replies; 7+ messages in thread From: liudows @ 2014-08-07 7:49 UTC (permalink / raw) To: b.a.t.m.a.n Hello, eveyone, I am learning the batman.adv recently. We know that batman.adv works on layer 2. When the network topology change, batman.adv can know this change and handle it. But the IP layer doesn't know that. How to make IP layer handle the change of network topology? For example, I have 3 mesh nodes, client node A, gateway node B and geteway node C. A connects to internet via B. Then I shutdown B. I guess A will switch to C as it's gateway node automatically. But it's not so. A continuously send the ARP request packet to search the MAC address of B. The default gateway is still B, not C. So, how should I do to make the IP layer be aware of that the gateway has swithed to another one? Thanks! Best regards. liu ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [B.A.T.M.A.N.] how to make IP layer handle the change of network topology 2014-08-07 7:49 [B.A.T.M.A.N.] how to make IP layer handle the change of network topology liudows @ 2014-08-07 8:24 ` Antonio Quartulli 2014-08-07 8:57 ` Antonio Quartulli 2014-08-07 8:29 ` Simon Wunderlich 1 sibling, 1 reply; 7+ messages in thread From: Antonio Quartulli @ 2014-08-07 8:24 UTC (permalink / raw) To: b.a.t.m.a.n, liudows [-- Attachment #1: Type: text/plain, Size: 1532 bytes --] Hi Lui, there is no direct way to get a topology change in userspace unless you want to parse the originator table (and even in that case you will only see "local" changes). The behaviour you described about the ARP packets is normal because the IP layer does not know anything about changes happening at the batman-adv layer. You need to handle them by yourself (if possible). However it looks like you want to detect a "gateway change" rather than a real "topology change". Please check this link[1] out that is explaining how batman-adv tells userspace about GW changes. Cheers, [1] http://www.open-mesh.org/projects/batman-adv/wiki/Uevent#Gateway-uevents On 07/08/14 09:49, liudows wrote: > Hello, eveyone, I am learning the batman.adv recently. > > We know that batman.adv works on layer 2. When the network topology change, batman.adv can know this change and handle it. But the IP layer doesn't know that. How to make IP layer handle the change of network topology? > > For example, I have 3 mesh nodes, client node A, gateway node B and geteway node C. A connects to internet via B. Then I shutdown B. I guess A will switch to C as it's gateway node automatically. But it's not so. A continuously send the ARP request packet to search the MAC address of B. The default gateway is still B, not C. > > So, how should I do to make the IP layer be aware of that the gateway has swithed to another one? > > Thanks! Best regards. > > liu > -- Antonio Quartulli [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 884 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [B.A.T.M.A.N.] how to make IP layer handle the change of network topology 2014-08-07 8:24 ` Antonio Quartulli @ 2014-08-07 8:57 ` Antonio Quartulli 0 siblings, 0 replies; 7+ messages in thread From: Antonio Quartulli @ 2014-08-07 8:57 UTC (permalink / raw) To: b.a.t.m.a.n, liudows [-- Attachment #1: Type: text/plain, Size: 147 bytes --] On 07/08/14 10:24, Antonio Quartulli wrote: > Hi Lui, Sorry I misspelled your name. I meant Liu :) Cheers, -- Antonio Quartulli [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 884 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [B.A.T.M.A.N.] how to make IP layer handle the change of network topology 2014-08-07 7:49 [B.A.T.M.A.N.] how to make IP layer handle the change of network topology liudows 2014-08-07 8:24 ` Antonio Quartulli @ 2014-08-07 8:29 ` Simon Wunderlich 2014-08-07 8:32 ` Simon Wunderlich 1 sibling, 1 reply; 7+ messages in thread From: Simon Wunderlich @ 2014-08-07 8:29 UTC (permalink / raw) To: b.a.t.m.a.n Hi liu, > Hello, eveyone, I am learning the batman.adv recently. > > We know that batman.adv works on layer 2. When the network topology change, > batman.adv can know this change and handle it. But the IP layer doesn't > know that. How to make IP layer handle the change of network topology? The IP layer does not need to know - to the upper layers, a batman-adv network appears to be a network where all nodes are just one hop away - although they might be more far away in practice. So if you insert an IP packet, it will get transported automatically to the right destination (provided batman-adv knows where that is), even over multiple hops. > > For example, I have 3 mesh nodes, client node A, gateway node B and geteway > node C. A connects to internet via B. Then I shutdown B. I guess A will > switch to C as it's gateway node automatically. But it's not so. A > continuously send the ARP request packet to search the MAC address of B. > The default gateway is still B, not C. This will only work if the gateways IP stays the same. This could work like that: * connect B and C to the same LAN, and enable bridge loop avoidance in batman-adv * This LAN should have only one router to the internet (e.g. your ADSL modem). * bridge the batman-interface bat0 and you Ethernet interface eth0 using a linux bridge device > > So, how should I do to make the IP layer be aware of that the gateway has > swithed to another one? > > Thanks! Best regards. > > liu --- Mit freundlichen Grüßen / kind regards Simon Wunderlich Fon: +49 (0) 3741 / 2518068-0 Fax: +49 (0) 3741 / 2518068-9 ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [B.A.T.M.A.N.] how to make IP layer handle the change of network topology 2014-08-07 8:29 ` Simon Wunderlich @ 2014-08-07 8:32 ` Simon Wunderlich 2014-08-08 11:10 ` liu 0 siblings, 1 reply; 7+ messages in thread From: Simon Wunderlich @ 2014-08-07 8:32 UTC (permalink / raw) To: b.a.t.m.a.n Bah, i hit the wrong button before finishing the mail :) > Hi liu, > > > Hello, eveyone, I am learning the batman.adv recently. > > > > We know that batman.adv works on layer 2. When the network topology > > change, batman.adv can know this change and handle it. But the IP layer > > doesn't know that. How to make IP layer handle the change of network > > topology? > > The IP layer does not need to know - to the upper layers, a batman-adv > network appears to be a network where all nodes are just one hop away - > although they might be more far away in practice. So if you insert an IP > packet, it will get transported automatically to the right destination > (provided batman-adv knows where that is), even over multiple hops. > > > For example, I have 3 mesh nodes, client node A, gateway node B and > > geteway node C. A connects to internet via B. Then I shutdown B. I > > guess A will switch to C as it's gateway node automatically. But it's > > not so. A continuously send the ARP request packet to search the MAC > > address of B. The default gateway is still B, not C. > > This will only work if the gateways IP stays the same. This could work like > that: > * connect B and C to the same LAN, and enable bridge loop avoidance in > batman-adv > * This LAN should have only one router to the internet (e.g. your ADSL > modem). > * bridge the batman-interface bat0 and you Ethernet interface eth0 using a > linux bridge device Please see our quick start guide for more information on the topic: http://www.open-mesh.org/projects/batman-adv/wiki/Quick-start-guide#Mixing- non-BATMAN-systems-with-batman-adv > > > So, how should I do to make the IP layer be aware of that the gateway has > > swithed to another one? By using bridges, you always send to the same gateway in your LAN, which does not change IP or MAC addresses - so your clients don't need to be aware of the topology change. Cheers, Simon ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [B.A.T.M.A.N.] how to make IP layer handle the change of network topology 2014-08-07 8:32 ` Simon Wunderlich @ 2014-08-08 11:10 ` liu 2014-08-08 12:20 ` Simon Wunderlich 0 siblings, 1 reply; 7+ messages in thread From: liu @ 2014-08-08 11:10 UTC (permalink / raw) To: b.a.t.m.a.n [-- Attachment #1: Type: text/plain, Size: 3616 bytes --] Thanks for reply. I have tried to fix this problem followed by Simon's guide. Unfortunately It stil doesn't work.I draw a pciture named 'topo.jpg' in the attachment to describe my situation. Gateway B and C are wired to router 192.168.1.1 through their 'WAN' interface. They are in the same LAN. 'bat0' and 'eth0' are bridged by 'br-lan' interface, and are assigned a mesh subnet IP address '10.130.1.x'. Client A connected to B and C by mesh network. 'bat0' and 'wan' is bridged by 'br-wan' in Client A. 'br-wan' is assigned a subnet IP address by DHCP server in B or C, for example '10.130.1.138'. Now, client A choose B as it's gateway, and it's routing table is : root@dragino2-71e100:~# route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default 10.130.1.20 0.0.0.0 UG 0 0 0 br-wan 10.10.1.0 * 255.255.255.0 U 0 0 0 wlan0-1 10.130.1.0 * 255.255.255.0 U 0 0 0 br-lan 10.130.1.0 * 255.255.255.0 U 0 0 0 br-wan Now, I can ping to the router ' 192.168.1.1' from A. Then, shuting down the node B. In the routing table of A, node B is still the default gateway. A can't ping to '192.168.1.1' now. The key of this issue is client A and the internet router are not in the same network segment. So, the default gateway of A is B or C, but not the router. If B is lost, A can't change it's default gateway to C. In another words, it's not a self-healing network in this situation. Best regards, liu 在 2014/8/7 16:32, Simon Wunderlich 写道: > Bah, i hit the wrong button before finishing the mail :) > >> Hi liu, >> >>> Hello, eveyone, I am learning the batman.adv recently. >>> >>> We know that batman.adv works on layer 2. When the network topology >>> change, batman.adv can know this change and handle it. But the IP layer >>> doesn't know that. How to make IP layer handle the change of network >>> topology? >> The IP layer does not need to know - to the upper layers, a batman-adv >> network appears to be a network where all nodes are just one hop away - >> although they might be more far away in practice. So if you insert an IP >> packet, it will get transported automatically to the right destination >> (provided batman-adv knows where that is), even over multiple hops. >> >>> For example, I have 3 mesh nodes, client node A, gateway node B and >>> geteway node C. A connects to internet via B. Then I shutdown B. I >>> guess A will switch to C as it's gateway node automatically. But it's >>> not so. A continuously send the ARP request packet to search the MAC >>> address of B. The default gateway is still B, not C. >> This will only work if the gateways IP stays the same. This could work like >> that: >> * connect B and C to the same LAN, and enable bridge loop avoidance in >> batman-adv >> * This LAN should have only one router to the internet (e.g. your ADSL >> modem). >> * bridge the batman-interface bat0 and you Ethernet interface eth0 using a >> linux bridge device > Please see our quick start guide for more information on the topic: > > http://www.open-mesh.org/projects/batman-adv/wiki/Quick-start-guide#Mixing- > non-BATMAN-systems-with-batman-adv > >>> So, how should I do to make the IP layer be aware of that the gateway has >>> swithed to another one? > By using bridges, you always send to the same gateway in your LAN, which does > not change IP or MAC addresses - so your clients don't need to be aware of the > topology change. > > Cheers, > Simon > [-- Attachment #2: topo.jpg --] [-- Type: image/jpeg, Size: 105459 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [B.A.T.M.A.N.] how to make IP layer handle the change of network topology 2014-08-08 11:10 ` liu @ 2014-08-08 12:20 ` Simon Wunderlich 0 siblings, 0 replies; 7+ messages in thread From: Simon Wunderlich @ 2014-08-08 12:20 UTC (permalink / raw) To: liu; +Cc: b.a.t.m.a.n Hello Liu, > Thanks for reply. I have tried to fix this problem followed by Simon's > guide. Unfortunately It stil doesn't work.I draw a pciture named > 'topo.jpg' in the attachment to describe my situation. > > Gateway B and C are wired to router 192.168.1.1 through their 'WAN' > interface. They are in the same LAN. 'bat0' and 'eth0' are bridged by > 'br-lan' interface, and are assigned a mesh subnet IP address '10.130.1.x'. > > Client A connected to B and C by mesh network. 'bat0' and 'wan' is > bridged by 'br-wan' in Client A. 'br-wan' is assigned a subnet IP > address by DHCP server in B or C, for example '10.130.1.138'. You are still doing routing in that scenario. Instead, you should bridge all nodes in the same network, and they should be in the same IP subnet. If you configure another WAN, you are back to routing, which will not work for that scenario. Please configure eth0, wan and bat0 in the same bridge (e.g. br-lan) on all devices. Don't configure other bridges. Then, your devices and your client should get an IP address from the 192.168.1.x subnet, and should be able to ping 192.168.1.1, even if node A fails. Cheers, Simon ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2014-08-08 12:20 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-08-07 7:49 [B.A.T.M.A.N.] how to make IP layer handle the change of network topology liudows 2014-08-07 8:24 ` Antonio Quartulli 2014-08-07 8:57 ` Antonio Quartulli 2014-08-07 8:29 ` Simon Wunderlich 2014-08-07 8:32 ` Simon Wunderlich 2014-08-08 11:10 ` liu 2014-08-08 12:20 ` Simon Wunderlich
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox