Egg packaging
[re6stnet.git] / docs / re6stnet
1 OPTIONS : RES6NET
2     usage : ./re6stnet.py [options...]
3     --ip address port proto
4             Specify connection information to be advertised to other nodes.
5             address MUST be a ipv4 address since as of now openvpn does not
6             support ipv6 addresses.
7             Proto should be either udp or tcp-client
8
9     -i, --interface interface
10             Give one interface name for each use of the argument. The interface
11             will be used to detect other nodes on the local network.
12
13     --peers-db-refresh duration
14             Duration in seconds of the peers DB refresh interval.
15             Default : 3600  ( 1 hour )
16
17     -l, --log directory
18             Path to the directory used for log files. Will create one file
19             for babel logging and one file for each openvpn server and client
20             started.
21             Default : /var/log
22
23     -s, --state directory
24             Path to the directory used for state files. State files include :
25             - peers.db : the peers db used to establish connection
26             - re6stnet.babeld.state : babeld state file ( created if does not
27               exists, overriden if exists )
28               There must be a valid peers db file ( named peers.db ) in the
29               directory. A valid peers db file can be created with setup.py
30             Default : /var/lib/re6stnet
31
32     -v, --verbose level
33             Defines the verbose level, level should be an integer between 0
34             and 3 ( including ). There is no precise convention for verbode
35             level for now, except an increased number means more log messages.
36             This parameter is also given to babel for its log.
37             To adjust verbose level for openvpn, add an openvpn optional
38             arguments at the end of the command line
39             Default : 0
40
41     --registry address
42            Complete public ( reachable from the internet ) address of the machine
43            running a registry. Will be used to get the pirvate address of the
44            registry and/or bootstrap peers
45            Examples : http://192.0.2.42:80, http://[2001:db8:42::1]:80
46
47     --hello duration
48             Set hello interval, in seconds, for both wired and wireless
49             connections. Openvpn ping-exit option is set to 4 times the hello
50             interval. Argument passed down to the babel daemon, equivalent
51             to :
52             -h duration -H duration
53             in babeld ( for more information, see babeld man page )
54             It takes between 3 times and 4 times the hello interval for babel
55             to re-establish connection with a node for which the direct
56             connection has been cut
57             Default : 15
58
59     -w, --wireless
60             Consider all interfaces as being wireless interfaces. Argument
61             directly passed down to the babeld daemon
62
63     --pp port proto
64             Port and protocol used by the openvpn server(s). Start one openvpn
65             server for each couple port/protocol specified.
66             Additionally, if no external configuration is given in the command
67             line, re6stnet will attempt to forward a port with upnp for each
68             couple port/proto given.
69             Protocols should be either udp or tcp-server.
70             Default : (1194, udp), (1194, tcp-server)
71
72     --tunnel-refresh duration
73             Interval in seconds between two tunnel refresh. Refreshing tunnels
74             mean :
75             - killing all dead tunnels ( detected via the ping-exit option
76               if openvpn )
77             - killing the 'worst' tunnels, so that at least the ratio of
78               tunnels set by the --refresh-rate option have been killed
79             - creating new tunnels to other clients randomly choosen in the
80               peers database, to reach the number of connection specified by
81               the connection-count option ( There can be less tunnels if the
82               peers DB does not contain enough peers )
83             Default : 300
84
85     --dh path
86             Path to the dh file to be used by the openvpn server
87             (for more information see the openvpn man page)
88
89     --ca path
90             Path to the certificate authority file delivered by the re6stnet
91             server. The prefix of the VPN network is included in the serial
92             number of the file.
93
94     --cert path
95             Path to the individual certificate file delivered by the re6stnet
96             server. The prefix of the machine is included in the certificate's
97             subject common name.
98
99     --connection-count number
100             The maximum number of openvpn clients to start.
101             Default : 20
102
103     --refresh-rate ratio
104             The ratio of connection to kill each time we refresh tunnels.
105             For more information see the --tunnel-refresh option
106             ratio should be a float between 0 and 1 ( included )
107             Default : 0.05
108
109     openvpn_args
110             Additional arguments to be passed down to all openvpn processes
111             can be given at the end of the command line.
112             In that case, insert '--' to delimit re6stnet regular options
113             from the additional openvpn arguments. The list of arguments will
114             be passed down to ALL openvpn processes ( including servers )
115             exactly as they are given
116             One SHOULD give a --key argument with the key file delivered by the
117             re6stnet server
118
119     @file
120             You can give to re6stnet a config file as a regular argument
121             (meaning before giving optional openvpn arguments)
122             The file should contain one option per line, possibly ommitting
123             the '--'. Only long option are allowed (i.e "v 3" will not work
124             while "verbose 3" will)
125             You can give a file ( with the @ prefix ) as an argument within a
126             file
127
128
129 If you are using a version of python < 2.7.3-2, then you should include this at
130 the beggining of registry.py
131
132 --------------------------------------------------------------------------------
133 # Fix for librpcxml to avoid doing reverse dns on each request
134 # it was causing a 10s delay on each request when no reverse DNS was avalaible
135 import BaseHTTPServer
136
137
138 def not_insane_address_string(self):
139     host, port = self.client_address[:2]
140     return '%s (reverse DNS disabled)' % host  # used to call: socket.getfqdn(host)
141
142 BaseHTTPServer.BaseHTTPRequestHandler.address_string = not_insane_address_string
143
144 --------------------------------------------------------------------------------