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

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!