netsukuku/README.md

272 lines
7.6 KiB
Markdown
Raw Normal View History

2013-09-16 10:00:24 +00:00
http://netsukuku.freaknet.org
2013-09-06 11:16:07 +00:00
2013-09-16 10:00:24 +00:00
2013-09-23 17:05:56 +00:00
# What is this?
2013-09-16 10:00:24 +00:00
Netsukuku is an alternative to the internet, It will have all of the features of the internet,
2013-09-23 10:35:08 +00:00
Such as websites, Instant messaging, File transfers, DNS, Etc. It functions as a
mesh network or a p2p net system that generates and sustains
2013-09-16 10:00:24 +00:00
itself autonomously. It is designed to handle an unlimited number of nodes
with minimal CPU and memory resources.
Thanks to this feature it can be easily
used to build a worldwide distributed, anonymous and decentralised network,
2013-09-16 10:00:24 +00:00
separated from the Internet, without the support of any servers, ISPs or
authorities.
This net is composed by computers linked physically each other, Therefore it
2013-09-16 10:00:24 +00:00
isn't build upon any existing network. Netsukuku builds only the routes which
connects all the computers of the net.
Although it can route through the internet if needed.
2013-09-16 10:00:24 +00:00
In other words, Netsukuku replaces the level 3 of the model iso/osi with
another routing protocol.
2013-09-16 10:00:24 +00:00
The Domain Name System is also replaced by a decentralised and distributed
system, Being the ANDNA system. (A Netsukuku Domain Name Architecture)
2013-09-16 10:00:24 +00:00
The complete features list of Netsukuku is here:
http://netsukuku.freaknet.org/files/doc/misc/Ntk_features_list
#For Documentation, Please read this!
2014-03-02 02:20:59 +00:00
## http://netsukuku.github.io/netsukuku/annotated.html
Just search what ever you want to know, And be amazed with doxygen's glory! ^-^
2013-09-16 10:00:24 +00:00
In order to join to Netsukuku, Just install it and run it! Connect as many
nodes together as you want!
2013-09-16 10:00:24 +00:00
# Build and install
2013-09-16 10:00:24 +00:00
## Get the code!
2013-09-16 10:00:24 +00:00
git clone git@github.com:Netsukuku/netsukuku.git
2013-09-16 10:00:24 +00:00
The dependencies of netsukuku can be installed by running this command.
2013-09-16 10:00:24 +00:00
sudo apt-get install zlibc libgmp-dev openssl libssl-dev libgee-dev libpth-dev libgcrypt11-dev autoconf cmake autogen mawk gawk
2013-09-16 10:00:24 +00:00
To compile the code you can do this:
autoreconf -i
./configure && make
sudo make install
2013-09-16 10:00:24 +00:00
## Once installed
2013-09-16 10:00:24 +00:00
In order to start netsukuku on eth0, It is preferred to run:
sudo ntkd -D -i eth0 -dd
2013-09-16 10:00:24 +00:00
CURRENTLY NON-FUNCTIONAL:
However, There are more options, Such as:
2013-09-16 10:00:24 +00:00
sudo ntkd -D -i eth0 -r -I -dd
This will run netsukuku in restricted mode and share your internet connection.
(Netsukuku should be able to use any network interface you have, Even VPNs that emulate ethernet
such as tinc.)
2013-09-16 10:00:24 +00:00
## Manual Dependencies
You can manually download the dependencies of netsukuku if you want,
Or use them for development.
Here they are!
2013-09-16 10:00:24 +00:00
2014-03-11 22:08:12 +00:00
for the libgmp: https://gmplib.org/
2013-09-16 10:00:24 +00:00
the openssl library here: http://openssl.org
the zlibs: http://zlib.net
gawk: http://www.gnu.org/software/gawk/
libgcrypt: https://www.gnu.org/software/libgcrypt/
libpth: http://www.gnu.org/software/pth/
libgee: https://wiki.gnome.org/Projects/Libgee
2013-09-16 10:00:24 +00:00
## Old stuff
You can use this, But, I don't know if it works anymore.
SCons is a cooler way to install netsukuku:
http://www.scons.org/
(You should have installed at least the 2.4 version of Python in order to
avoid dirty bugs in scons)
2013-09-16 10:00:24 +00:00
Then go in the src/ directory and type:
2013-09-23 17:05:56 +00:00
$ scons --help
2013-09-16 10:00:24 +00:00
That will show you all the options you can use in the build and installation
process. Finally execute:
2013-09-23 17:05:56 +00:00
$ scons
2013-09-16 10:00:24 +00:00
The code will be compiled. If all went well install NetsukukuD with:
2013-09-23 17:05:56 +00:00
# scons install
2013-09-16 10:00:24 +00:00
Now you should give a look at /etc/netsukuku.conf (or wherever you installed
it) and modify it for your needs, but generally the default options are good.
- Notes:
If you want to change some scons option to do another installation, (i.e. you
may want to reinstall it with another MANDIR path), you have to run:
2013-09-23 17:05:56 +00:00
$ scons --clean
2013-09-16 10:00:24 +00:00
2013-09-23 17:05:56 +00:00
# Static Binaries and Packages
2013-09-16 10:00:24 +00:00
These packages are old, We will update them soon, Or you can if you want.
2013-09-16 10:00:24 +00:00
If you prefer to just install Netsukuku, without compiling it, you can
download the static binaries suitable to your platform. They come packed in
various formats (.tgz, .deb, .ipk).
The packages repository is at:
http://netsukuku.freaknet.org/packages/ (Currently non-functional)
https://launchpad.net/~michele-bini/+archive/ppa-mbxxii/+sourcepub/1032974/+listing-archive-extra
(This archive contains unoffical packages, However, They have been tested, And function on Ubuntu 12.04 and earlier.)
2013-09-16 10:00:24 +00:00
2013-09-23 17:05:56 +00:00
# Kernel dependencies
I'm not sure if we need to do any of this anymore, But it is probably useful.
2013-09-16 10:00:24 +00:00
(The following probably is already, If not will be soon, Unnecessary/automated.)
2013-09-16 10:00:24 +00:00
On Linux be sure to have the following options set in your kernel .config.
These options are taken from linux-2.6.14.
2013-09-23 17:05:56 +00:00
Networking options
CONFIG_PACKET=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_MULTICAST=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_IP_ROUTE_MULTIPATH=y
CONFIG_NET_IPIP=y
CONFIG_NETFILTER=y
2013-09-16 10:00:24 +00:00
and these from linux-2.6.16.19.
2013-09-23 17:05:56 +00:00
Core Netfilter Configuration
(I vaugely remember getting a conntrack error in the past, But it is gone now.)
2013-09-16 10:00:24 +00:00
2013-09-23 17:05:56 +00:00
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y
NETFILTER_XT_TARGET_CONNMARK=y
2013-09-16 10:00:24 +00:00
2013-09-23 17:05:56 +00:00
IP: Netfilter Configuration
2013-09-16 10:00:24 +00:00
2013-09-23 17:05:56 +00:00
CONFIG_IP_NF_IPTABLES=y
CONFIG_IP_NF_FILTER=y
CONFIG_IP_NF_TARGET_REJECT=y
CONFIG_IP_NF_NAT=y
CONFIG_IP_NF_NAT_NEEDED=y
CONFIG_IP_NF_TARGET_MASQUERADE=y
2013-09-16 10:00:24 +00:00
If you are using modules you have to load them before launching the daemon.
2013-09-23 17:05:56 +00:00
# How to use it
2013-09-16 10:00:24 +00:00
Before doing anything do:
2013-09-23 17:05:56 +00:00
$ man ntkd
$ man andna
2013-09-16 10:00:24 +00:00
when you feel confortable and you are ready to dare run as root:
2013-09-16 10:00:24 +00:00
2013-09-23 17:05:56 +00:00
# ntkd
2013-09-16 10:00:24 +00:00
then just wait... ^_-
(For the first times it's cool to use the -D option to see what happens).
- Note:
The daemon at startup takes the list of all the network interfaces which are
currently UP and it uses all of them to send and receive packets. If you want
to force the daemon to use specific interfaces you should use the B<-i>
option.
2013-09-23 17:05:56 +00:00
# Where to get in touch with us
2013-09-16 10:00:24 +00:00
## IRC
This is still true and active! Please join!
We live night and day in IRC, come to see us on channel
#netsukuku
on the FreeNode irc server (irc.freenode.org).
2013-09-23 17:05:56 +00:00
## Mailing list
2013-09-16 10:00:24 +00:00
These mailing list should mostly still work, But they are not very active.
2013-09-16 10:00:24 +00:00
Subscribe to the netsukuku mailing to get help, be updated on the latest news
and discuss on its development.
To subscribe to the list, send a message to:
2013-09-23 17:05:56 +00:00
netsukuku-subscribe@lists.dyne.org
2013-09-16 10:00:24 +00:00
or use the web interface:
2013-09-23 17:05:56 +00:00
http://lists.dyne.org/mailman/listinfo/netsukuku
2013-09-16 10:00:24 +00:00
You can browse the archive here:
2013-09-23 17:05:56 +00:00
http://lists.dyne.org/netsukuku/
http://dir.gmane.org/gmane.network.peer-to-peer.netsukuku
2013-09-16 10:00:24 +00:00
2013-09-23 17:05:56 +00:00
# Bug report
2013-09-16 10:00:24 +00:00
{ Don't panic! }
If you encounter any bug, please report it.
Use the online bug track system:
https://github.com/Netsukuku/netsukuku/issues
The rest is inactive, Please just use the link above until further notice.
2013-09-23 17:05:56 +00:00
http://bugs.dyne.org/
2013-09-16 10:00:24 +00:00
or the mailing list:
2013-09-23 17:05:56 +00:00
http://lists.dyne.org/netsukuku/
2013-09-16 10:00:24 +00:00
and explain what the problem is and if possible a way to reproduce it.
2013-09-23 17:05:56 +00:00
# Hack the code
2013-09-16 10:00:24 +00:00
Feel free to debug, patch, modify and eat the code. Then submit your results
to the mailing list. ^_-
However, It is preferred that you make your own github fork, And show it to us in the IRC or issues page.
Although, For smaller changes, You could use pastebin.com
But please note! Tell us exactly which file you are editing in pastebin, And tell us which line you are editing.
2013-09-16 10:00:24 +00:00
There is a lot to code too! If you are a Kung Foo coder, get on board and
help the development! For a start you can take a look
2013-09-16 10:00:24 +00:00
at the src/TODO file.
Still valuable! ^^^^
2013-09-16 10:00:24 +00:00
2013-09-23 17:05:56 +00:00
# License and that kind of stuff...
2013-09-16 10:00:24 +00:00
All the Netsukuku code is released under the GPL-2, please see the COPYING
file for more information.
The authors of Netsukuku and NetsukukuD are listed in the file AUTHORS.
This should be ammended in the future, As more authors come on-board.