Improve performance of edge updates.
[tinc] / README
1 This is the README file for tinc version 1.1pre11. Installation
2 instructions may be found in the INSTALL file.
3
4 tinc is Copyright (C) 1998-2014 by:
5
6 Ivo Timmermans,
7 Guus Sliepen <guus@tinc-vpn.org>,
8 and others.
9
10 For a complete list of authors see the AUTHORS file.
11
12 This program is free software; you can redistribute it and/or modify
13 it under the terms of the GNU General Public License as published by
14 the Free Software Foundation; either version 2 of the License, or (at
15 your option) any later version. See the file COPYING for more details.
16
17
18 This is a pre-release
19 ---------------------
20
21 Please note that this is NOT a stable release. Until version 1.1.0 is released,
22 please use one of the 1.0.x versions if you need a stable version of tinc.
23
24 Although tinc 1.1 will be protocol compatible with tinc 1.0.x, the
25 functionality of the tinc program may still change, and the control socket
26 protocol is not fixed yet.
27
28
29 Security statement
30 ------------------
31
32 This version uses an experimental and unfinished cryptographic protocol. Use it
33 at your own risk.
34
35
36 Compatibility
37 -------------
38
39 Version 1.1pre11 is compatible with 1.0pre8, 1.0 and later, but not with older
40 versions of tinc.
41
42 When the ExperimentalProtocol option is used, tinc is still compatible with
43 1.0.X and 1.1pre11 itself, but not with any other 1.1preX version.
44
45
46 Requirements
47 ------------
48
49 In order to compile tinc, you will need a GNU C compiler environment. Please
50 ensure you have the latest stable versions of all the required libraries:
51
52 - OpenSSL (http://www.openssl.org/) version 1.0.0 or later, with support for
53   elliptic curve cryptography (ECC) and Galois counter mode (GCM) enabled.
54
55 The following libraries are used by default, but can be disabled if necessary:
56
57 - zlib (http://www.gzip.org/zlib/)
58 - lzo (http://www.oberhumer.com/opensource/lzo/)
59 - ncurses (http://invisible-island.net/ncurses/)
60 - readline (ftp://ftp.gnu.org/pub/gnu/readline/)
61
62
63 Features
64 --------
65
66 Tinc is a peer-to-peer VPN daemon that supports VPNs with an arbitrary number
67 of nodes. Instead of configuring tunnels, you give tinc the location and
68 public key of a few nodes in the VPN. After making the initial connections to
69 those nodes, tinc will learn about all other nodes on the VPN, and will make
70 connections automatically. When direct connections are not possible, data will
71 be forwarded by intermediate nodes.
72
73 By default, nodes authenticate each other using 2048 bit RSA (or 521 bit
74 ECDSA*) keys. Traffic is encrypted using Blowfish in CBC mode (or AES-256 in
75 GCM mode*), authenticated using HMAC-SHA1 (or GCM*), and is protected against
76 replay attacks.
77
78 *) When using the ExperimentalProtocol option.
79
80 Tinc fully supports IPv6.
81
82 Tinc can operate in several routing modes. In the default mode, "router", every
83 node is associated with one or more IPv4 and/or IPv6 Subnets. The other two
84 modes, "switch" and "hub", let the tinc daemons work together to form a virtual
85 Ethernet network switch or hub.
86
87 Normally, when started tinc will detach and run in the background. In a native
88 Windows environment this means tinc will intall itself as a service, which will
89 restart after reboots.  To prevent tinc from detaching or running as a service,
90 use the -D option.
91
92 The status of the VPN can be queried using the "tinc" command, which connects
93 to a running tinc daemon via a control connection. The same tool also makes it
94 easy to start and stop tinc, and to change its configuration.