check
[oweals/gnunet.git] / src / vpn / README
1 For Users
2 =========
3
4 To use the gnunet-vpn you have to have at least the following configuration in
5 your ~/.gnunet/gnunet.conf:
6
7 #v+
8 TODO
9 #v-
10
11 If you start gnunet now, you will get a new network-interface called
12 gnunet-vpn (or however you named it) with the IP addresses you configured. You
13 "normal" internet-usage should not be impaired (check that!) but you should be
14 able to point your web browser to something like http://gnunet.gnunet/ and the
15 the gnunet webpage! That's it, you are set to use gnunet to access legacy
16 services!
17
18 If you want to offer services such as your webpage vi gnunet you have to have
19 a file ~/.gnunet/dns.conf with the following content:
20
21 #v+
22 TODO
23 #v-
24
25 Also you will have to configure and start the exit-daemon:
26
27 #v+
28 TODO
29 #v-
30
31 Now point you computer (or any other computer in the gnunet) to
32 http://yourwebsite.gnunet/ and you will get your website.
33
34 Add the following options if you want to resolve DNS-queries for other users
35 of gnunet:
36
37 #v+
38 TODO
39 #v-
40
41 Add the following options if you want to provide access to your internet
42 connection to other users of gnunet:
43
44 #v+
45 TODO
46 #v-
47
48 Be aware, that this enables people to use your internet connection for
49 nefarious things which might make you liable!
50
51 For Developers
52 ==============
53
54 The gnunet-vpn is a combination of three programs:
55
56 - gnunet-daemon-vpn opens a tap-interface, configures it and controls the
57   network
58 - gnunet-service-dns configures a hijack for outgoing DNS-requests, so that
59   they get sent to gnunet-daemon-vpn, which sends them on to
60   gnunet-service-dns which sends them on, either to their original destination
61   or to gnunet. It also publishes names from dns.conf to the dht.
62 - gnunet-daemon-exit takes gets connections from the gnunet and sends them on
63   to the legacy internet.
64
65 The gnunet-service-dns decides where to send the query with an easy check:
66
67 - it is a query for something.gnunet: it gets sent to the dht
68 - it is a query sent to the configured VIRT_DNS: it gets sent on to some other
69   gnunet-service-dns somewhere in the gnunet (anyone having configured
70   DNS_EXIT TODO)
71 - else: it gets sent to the original destination
72
73 These programs exchange whole TCP- or UDP-packets, they only strip of the
74 IP-header. This way gnunet achieves translation between IPv6-services and
75 IPv4-clients and vice versa!