adulau / Forban

Forban is a p2p application for link-local and local area networks. Forban works independently from the Internet and uses only the local area capabilities to announce, discover, search or share files. Forban relies on HTTP and it is "opportunistic".
http://www.foo.be/forban/
134 stars 24 forks source link

Mesh Clients don't find each other #8

Closed MaStr closed 11 years ago

MaStr commented 12 years ago

Hi, sorry, me again :)

I've done a basic mesh-network setup with a Piratebox running forban and my eePC joining the mesh and running forban. I'm using B.A.T.M.A.N. , so I have a mesh0 interface (which stands for the wlan interface used) and a bat0 Interface, which gets an IP-Adress and is the valid interface for reaching other boxes.

I assigned Box1 192.168.78.1 I assigned Box2 192.168.78.2

Ping works, Traffic on bat0 showes up.

Remote access on :12555 works fine.

My eePC shows up only "access v6" (no link) My Box only v4 (link working)

I can't see any broadcasts on packet dumps. Bash-Forban on eePC only monitors nothing. :( Seems it can't see itself, too :(

Maybe it is a "test-setup problem"? Maybe forban can't figure out where to broadcast & listen?

Thank you so much. Matthias

edit: Sidenote: Wired access server <--> OpenWRT-Piratebox worked VERY fine

adulau commented 12 years ago

Hi Matthias,

So the best would be run a tcpdump on each interface (including "logical" meshX interface) to see where the broadcast packets (for v4) and multicast packet are seen or dropped on each interface.

tcpdump -A -i port 12555

If your setup is not forwarding any broadcast or multicast on each interface, the Forban won't be seen. In some case, Wireless AP are dropping broadcast or multicast even on the same subnet (you just need to enable the broadcast/multicast) between the 802.11 joined clients. Another option to allow the bridging between the interfaces but you might have some nasty effects on the dynamic routing protocols in use like OLSR or alike.

Is the mesh network on the shared L2 access?

Let me know.

See ya,

MaStr commented 12 years ago

Hi, yes, I'm using B.A.T.M.A.N. on Level2.

tcpdump -A -i port 12555

I could figure out, that one problem was the automatic IPv6 adress given on the mesh0 . Forban sends its broadcast into this device on the ipv6 adress. Now I can see the broadcasts are sent through the bat0 interface on eePC side.

Bridging AP+ETH0 net with mesh is not my intention.. I want to use routing between the two different ranges.

Can you explain how the "access" entry on forban's webpage is generated?

Matthias


Edit: After stopping the Mesh-interfaces, connecting via lan-cable the openwrt-box discovered my eePC, but the eePC does not discover the box. Ok. Still my question: What are the rules followed by forban?

Matthias


edit: I just discovered, the non-linked "V6" on forban page is a browser issue .

adulau commented 12 years ago

Hi,

The rule is straightforward for the announce to take place. Forban used all the interface available to broadcast and multicast the announce. forban_discover captures those announces and make link based on the source IP seen by the announce. If one of the interface has no IPv6 address or the receiver doesn't support IPv6, you won't see the IPv6 link. That's purely optimistic. If Forban founds an accessible IP, it's enough to get the index and start the reconciliation.

Regarding the "non-linked" v6 browser issue, could you tell me what's the exact issue is? Could I fix it in Forban?

Again thank you for your test. (It seems that I need to invest in two OpenWRT boxes in the future ;-)

MaStr commented 12 years ago

Thank you! The non linked seems not to be Forban Issue, because you creates a link. The only thing, I'm not sure about is the inserted @eth0 at href= - but Later more on the v6 topic. The mesh will run with v6 so, I'll come back to this topic later.

So, If I added a "non localhost ip" (127.0.0.1 , ipv6-127.0.0.1), forban does not use them?

Issue #5 would be very nice ( I want forban on br-lan & bat0 only)

btw: MR3020 with a littly usb stick aren't so expensive :)

MaStr commented 11 years ago

Hi, it is a firewall Issue on the OpenWRT system. Broadcasts to 255.255.255.255 are filtered by default.

Modifying the destination used by forban_announce via forban.cfg would be useful... I'll check this.

Matthias

MaStr commented 11 years ago

After a few checks and "print"s in the Exception of sending the Broadcast, I found out, that python is throwing the exception "address not reachable" This is because somehow OpenWRT does not have the 255.255.255.255 IP in its routing table and no default route.

Would be useful to modify "destinations" via config and more verbose error-log in announce.py