Philipp Tölke 02588b1ce6 Bug. fill the complete IP-Address 13 years ago
..
tests e73d970dd2 Give the tun-interface an IPv4-Address 14 years ago
.gitignore 9be3670e6d ignore files in git 14 years ago
Makefile.am 3d61ece99c chown 13 years ago
README 9ee83b1cb5 begin writing user- and developer-documentation 13 years ago
gnunet-daemon-exit.c fb2226d4b2 bug 13 years ago
gnunet-daemon-vpn-dns.c 134849c619 only start one helper 13 years ago
gnunet-daemon-vpn-dns.h c0509e6458 cleanup 13 years ago
gnunet-daemon-vpn-helper.c 3b2f2088bd send ipv4 through gnunet 13 years ago
gnunet-daemon-vpn-helper.h c0509e6458 cleanup 13 years ago
gnunet-daemon-vpn.c 02588b1ce6 Bug. fill the complete IP-Address 13 years ago
gnunet-daemon-vpn.h ca51d9b993 reply ipv4-icmp 13 years ago
gnunet-dns-parser.c 736b5e9964 Fixes and documentation 13 years ago
gnunet-dns-parser.h 736b5e9964 Fixes and documentation 13 years ago
gnunet-helper-hijack-dns.c 0b62b71e4b Use the configures IP-addresses correctly 13 years ago
gnunet-helper-vpn-api.c 07870c9466 try to fix the helper-startup and so on 13 years ago
gnunet-helper-vpn-api.h 238b4ac940 fix bugs found by compiling with -Wextra 13 years ago
gnunet-helper-vpn.c b13a84b528 create the tun-interfaces with a name choosen by the user 13 years ago
gnunet-service-dns-p.h 51074a30f3 begin resolving A-records 13 years ago
gnunet-service-dns.c b8c2182a28 Debug the connection-establishment in DNS 13 years ago
gnunet-vpn-checksum.c 7d9aa0ca86 Let the -exit use an own tun and not socks 13 years ago
gnunet-vpn-checksum.h 7d9aa0ca86 Let the -exit use an own tun and not socks 13 years ago
gnunet-vpn-packet.h ca51d9b993 reply ipv4-icmp 13 years ago
test-conf.conf 3c82a48a3a do not autostart nse 13 years ago

README

For Users
=========

To use the gnunet-vpn you have to have at least the following configuration in
your ~/.gnunet/gnunet.conf:

#v+
TODO
#v-

If you start gnunet now, you will get a new network-interface called
gnunet-vpn (or however you named it) with the IP addresses you configured. You
"normal" internet-usage should not be impaired (check that!) but you should be
able to point your web browser to something like http://gnunet.gnunet/ and the
the gnunet webpage! That's it, you are set to use gnunet to access legacy
services!

If you want to offer services such as your webpage vi gnunet you have to have
a file ~/.gnunet/dns.conf with the following content:

#v+
TODO
#v-

Also you will have to configure and start the exit-daemon:

#v+
TODO
#v-

Now point you computer (or any other computer in the gnunet) to
http://yourwebsite.gnunet/ and you will get your website.

Add the following options if you want to resolve DNS-queries for other users
of gnunet:

#v+
TODO
#v-

Add the following options if you want to provide access to your internet
connection to other users of gnunet:

#v+
TODO
#v-

Be aware, that this enables people to use your internet connection for
nefarious things which might make you liable!

For Developers
==============

The gnunet-vpn is a combination of three programs:

- gnunet-daemon-vpn opens a tap-interface, configures it and controls the
network
- gnunet-service-dns configures a hijack for outgoing DNS-requests, so that
they get sent to gnunet-daemon-vpn, which sends them on to
gnunet-service-dns which sends them on, either to their original destination
or to gnunet. It also publishes names from dns.conf to the dht.
- gnunet-daemon-exit takes gets connections from the gnunet and sends them on
to the legacy internet.

The gnunet-service-dns decides where to send the query with an easy check:

- it is a query for something.gnunet: it gets sent to the dht
- it is a query sent to the configured VIRT_DNS: it gets sent on to some other
gnunet-service-dns somewhere in the gnunet (anyone having configured
DNS_EXIT TODO)
- else: it gets sent to the original destination

These programs exchange whole TCP- or UDP-packets, they only strip of the
IP-header. This way gnunet achieves translation between IPv6-services and
IPv4-clients and vice versa!