A first implementation of an Internet Gateway Sharing (IGS for short) mechanism will land in the repository very soon.
A node that is connected directly to the Internet will then be able to share its connection with other nodes. The nodes that haven't got a direct connection to the Internet receive informations on the 10 nearest nodes that allow to use their connection. Thus, they are able to use any number of them as gateways.
The current implementation (once again only linux is supported) allows to configure a node as a gateway or as a user. Theoretically it should be possible to be at the same time a gateway for other nodes and a user of other gateways but I had some troubles with this configuration in my tests, so I disabled this possibility.
The choice has to be made in the configuration file (/etc/netsukuku/settings.conf) by setting the variable IGS_MODE.
Set it to 'SHARE' to be a gateway. Set it to 'USE' to be a user. By default it is set to 'NONE' and the node will neither share its connection (if it has one) nor use the connection of others.
Further, if you set it to 'SHARE' you can indicate a Internet IP address to be periodically ping-ed in order to check if the Internet is at the moment reachable or not. This address can be set in the variable IGS_ANNOUNCE_INTERNET, which is by default set to 'ALWAYS', meaning that this node is to be considered always connected to the Internet.
Finally, if you set IGS_MODE to 'USE' you can indicate how many gateways you want to use at the same time. This can be set in the variable IGS_TUNNEL, by default 4. Min value is 1 and max value is 10.
With real hardware and real Internet I can only test one gateway. I hope to be able in a near future to test the real benefits one can get by using more than one ISP connection.
I want to test it a little bit more before doing a commit.
At the same time I am having some troubles with my netbook (Dell) wireless chipset. Its functioning is not reliable at all. I think it is a problem with the driver or with the hardware.
Since I have got another netbook, one of the first Eeepc shipped by Asus, I thought to use it. Its wireless chipset is much more reliable. The driver supports the new mac802 framework, so I can use the 'iw' commands instead of 'iwconfig' et al.
Thus, in the end, I will dedicate it to be running the DHCP daemon that I talked about in my previous post, for non-netsukuku clients.
While I am deploying this network I will also try to make use as much as possible of the methods we have got to try and mitigate the bufferbloat problem, that we so much experience these days on the Internet. I began to be aware of this problem by chance, on the blog of Jim Gettys.
So, if you feel brave enough when you build and deploy your very own TCP/IP mesh network, then look and ask for advices at www.bufferbloat.net.
You'll never regret!