Netsukuku / netsukuku

Revived C-code
GNU General Public License v2.0
143 stars 34 forks source link

Enhancement: Hardware device #8

Open kallisti5 opened 9 years ago

kallisti5 commented 9 years ago

Looking around a bit... found an interesting hardware device that might work well with Netsukuku:

http://shop.8devices.com/carambola2-bundle

Carambola2 is a Tiny Linux SOC with built in Wifi + ethernet. Small cheap low power access points running Netsukuku might be a neat way to deploy mesh networks :-D

MissValeska commented 9 years ago

Thank you, This looks to be pretty interesting. How many do you think would be good to get? More would allow a more in-depth simulation of a network, Although, That would be a lot of flashing. We could set up a .ISO which would be installed on all of them, But that would be a lot installing never-the-less.

Network booting might be better, But the thing is, I only have one, Maybe two functional Ethernet cables that I'm not using, I certainly don't have enough for a hundred or even five. I, Also, Don't really have anywhere to put them.

So I don't see myself buying these any time soon, Although, I do still have some machines which I can and do test Netsukuku on, I like that that device has two Ethernet cables, though.

I might buy a router or something at some point, Also, Netsukuku does run on OpenWRT, Although, I know pretty much nothing about OpenWRT and do not have a router which I was able to install it on. I imagine a good portion of people would want to install Netsukuku to their router.

Someone pushed a commit in the past few months relating to some OpenWRT compile script or what ever. I think they re-wrote the original.

Maybe you would be interested in that? Do you have any machines or routers you can test Netsukuku on?

I think an important test is if Netsukuku can access a machine through another machine. I.E Machine One is connected to Machine Two which is connected to Machine Three, Which can all access each other.

Do you think you will buy any of these any time soon? It says out of stock for me.

I should be in IRC if you want to reach me there.

kallisti5 commented 9 years ago

Mostly trying to figure out a cheap and small platform to run Netsukuku on.

Another option is this mini 3g router: http://www.dxsoul.com/product/tp-link-703n-ultra-mini-portable-3g-802-11b-g-n-150mbps-wifi-wireless-router-light-blue-white-901102903#.VDSD2XVdWHs

http://www.cnx-software.com/2012/07/19/tp-link-wr703n-23-hackable-openwrt-wi-fi-802-11n-router/

Down side is only 150MBit vs 300MBit and small antenna

jptalusan commented 9 years ago

Couldn't you run Netsukuku on a raspberry pi? Or maybe you could try running them on some plug computers.

jercos commented 9 years ago

Raspi is perfectly functional, but has no wireless and only USB-based Ethernet, so performance will suffer and a USB wireless adapter will add to the cost. Plug computers are neat, but unless something has changed, you can expect to shell out $100 or more for each one, and those baseline sheevaplug-equivalents also don't have wireless (and iirc, the Kirkwood SoC can overheat with both Ethernet ports pushing out gigabit).

Outside of network virtualization (requiring a mess of VPN links, or a VLAN-capable switch with some hackery, or a managed switch), multiple network interfaces are a must, and USB is not a very effective way to accomplish that. Wireless adapters and wired adapters alike sit in the $10 range, equalizing the cost difference between a pi and a platform with multiple Ethernet ports+WLAN.

Little "3g" wifi routers and similar devices like Carambola 2 present a practical cross of low cost ($30-$70 depending on feature set and CPU power) and the required power and peripherals to efficiently run Netsukuku. Of course a testbed network should be heterogeneous to have the most chance of catching bugs that would not appear if all hardware involved was identical, but for testing large nodecount in a real network, 10-20 identical nodes provide easier deployment through imaging.

In any case, explicitly supporting one particular hardware platform above others is counterproductive in the long run, so rather than a particular hardware platform being an "Enhancement" to Netsukuku, Netsukuku not supporting any arbitrary piece of hardware meeting the basic specs would be a bug.

kallisti5 commented 9 years ago

Netsukuku not supporting any arbitrary piece of hardware meeting the basic specs would be a bug.

I completely agree. The point wasn't to only support one piece of hardware, I wanted to investigate what hardware would work well as mesh nodes (ethernet, wifi, clock speed, memory, openwrt, and cheap) and maybe document some "recommendations"

You can install Netsukuku on old routers... but by nature Netsukuku works best on a larger scale deployment. Recommending cheap identical hardware (in docs or wiki) means more deployments and better bug reports :-)

MissValeska commented 9 years ago

Hm, Yeah, That is interesting. I think we should create some kind of testing platform, Preferably automated. A system of virtual machines/user mode linuxes which can be run via a script, All with their own auto start scripts to test various things and network topologies would be great.

It would provide us a stable environment to test features, Document bugs, And see differences between builds. This, However, Is limited in accuracy.

We most likely wouldn't or couldn't accurately simulate WiFi, So we wouldn't learn about how Netsukuku reacts or what bugs it has when communicating over WiFi. The machines would be identical, Even if they were simulating different hard ware and running different linux kernel versions and distros, They would still be the same every time we ran it.

Which is great for noticing changes in the way Netsukuku functions, And testing new features. However, It doesn't tell us how it reacts on hardware/software other than what we are currently testing it on.

Regardless, I think some kind of stable test environment would be good for us. I have a couple machines which I can and do test Netsukuku on. However, They are not identical and are changing due to their software being upgraded and such.

This does, More or less, Simulate a practical situation, Where an update could break something Netsukuku uses and so on. Although, It isn't necessarily the best in testing changes in behaviours of Netsukuku itself.

Regardless, I think we should merge the current pull request, If everyone is okay with that. Also, There are some standing bugs which I'm trying to resolve but a bit confused about. I will write another issue report for the second one.

In some good news, A person on the spotchat irc network, I think it was, In some electronic channel named arctictelecom has been working with me on a deployment of Netsukuku.

They are working in Alaska and, I think, Canada to enhance internet accessibility. They have some packet radios I think and several machines.

I helped them download and install Netsukuku, Along with its dependencies on arch linux, That is why I added arch linux install instructions.

They have told me recently, That they were able to run Netsukuku through their packet radios and share their internet connection through Netsukuku via IGS. They maintained internet access on an airplane flight for about six hours through this method.

I have asked him for the logs if possible, I will check that irc channel again today to see if he has them ready.

I think he will be a very valuable in-the-field tester/user for us. Anyway, I hope to see you all in #Netsukuku soon!

MissValeska commented 9 years ago

Can we close this now, Or do we need it open?