Merge branch 'master' of git://tinc-vpn.org/tinc into 1.1
[tinc] / NEWS
1 Version 1.1-cvs              Work in progress
2
3  * Use libevent to handle I/O events and timeouts.
4
5  * Use splay trees instead of AVL trees.
6
7 Version 1.0.15               June 24 2011
8
9  * Improved logging to file.
10
11  * Reduced amount of process wakeups on platforms which support pselect().
12
13  * Fixed ProcessPriority option under Windows.
14
15 Version 1.0.14               May  8 2011
16
17  * Fixed reading configuration files that do not end with a newline. Again.
18
19  * Allow arbitrary configuration options being specified on the command line.
20
21  * Allow all options in both tinc.conf and the local host config file.
22
23  * Configurable replay window, UDP send and receive buffers for performance tuning.
24
25  * Try harder to get UDP communication back after falling back to TCP.
26
27  * Initial support for attaching tinc to a VDE switch.
28
29  * DragonFly BSD support.
30
31  * Allow linking with OpenSSL 1.0.0.
32
33  Thanks to Brandon Black, Julien Muchembled, Michael Tokarev, Rumko and Timothy
34  Redaelli for their contributions to this version of tinc.
35
36 Version 1.0.13               Apr 11 2010
37
38  * Allow building tinc without LZO and/or Zlib.
39
40  * Clamp MSS of TCP packets in both directions.
41
42  * Experimental StrictSubnets, Forwarding and DirectOnly options,
43    giving more control over information and packets received from/sent to other
44    nodes.
45
46  * Ensure tinc never sends symbolic names for ports over the wire.
47
48 Version 1.0.12               Feb  3 2010
49
50  * Really allow fast roaming of hosts to other nodes in a switched VPN.
51
52  * Fixes missing or incorrect environment variables when calling host-up/down
53    and subnet-up/down scripts in some cases.
54
55  * Allow port to be specified in Address statements.
56
57  * Clamp MSS of TCP packets to the discovered path MTU.
58
59  * Let two nodes behind NAT learn each others current UDP address and port via
60    a third node, potentially allowing direct communications in a similar way to
61    STUN.
62
63 Version 1.0.11               Nov  1 2009
64
65  * Fixed potential crash when the HUP signal is sent.
66
67  * Fixes handling of weighted Subnets in switch and hub modes, preventing
68    unnecessary broadcasts.
69
70  * Works around a MinGW bug that caused packets to Windows nodes to always be
71    sent via TCP.
72
73  * Improvements to the PMTU discovery code, especially on Windows.
74
75  * Use UDP again in certain cases where 1.0.10 was too conservative and fell
76    back to TCP unnecessarily.
77
78  * Allow fast roaming of hosts to other nodes in a switched VPN.
79
80 Version 1.0.10               Oct 18 2009
81
82  * Fixed potential crashes during shutdown and (in rare conditions) when other
83    nodes disconnected from the VPN.
84
85  * Improved NAT handling: tinc now copes with mangled port numbers, and will
86    automatically fall back to TCP if direct UDP connection between nodes is not
87    possible. The TCPOnly option should not have to be used anymore.
88
89  * Allow configuration files with CRLF line endings to be read on UNIX.
90
91  * Disable old RSA keys when generating new ones, and raise the default size of
92    new RSA keys to 2048 bits.
93
94  * Many fixes in the path MTU discovery code, especially when Compression is
95    being used.
96
97  * Tinc can now drop privileges and/or chroot itself.
98
99  * The TunnelServer code now just ignores information from clients instead of
100    disconnecting them.
101
102  * Improved performance on Windows by using the new ProcessPriority option and
103    by making the handling of packets received from the TAP-Win32 adapter more
104    efficient.
105
106  * Code cleanups: tinc now follows the C99 standard, copyright headers have
107    been updated to include patch authors, checkpoint tracing and localisation
108    features have been removed.
109
110  * Support for (jailbroken) iPhone and iPod Touch has been added.
111
112  Thanks to Florian Forster, Grzegorz Dymarek and especially Michael Tokarev for
113  their contributions to this version of tinc.
114
115 Version 1.0.9                Dec 26 2008
116
117  * Fixed tinc as a service under Windows 2003.
118
119  * Fixed reading configuration files that do not end with a newline.
120
121  * Fixed crashes in situations where hostnames could not be resolved or hosts
122    would disconnect at the same time as session keys were exchanged.
123
124  * Improved default settings of tun and tap devices on BSD platforms.
125
126  * Make IPv6 sockets bind only to IPv6 on Linux.
127
128  * Enable path MTU discovery by default.
129
130  * Fixed a memory leak that occured when connections were closed.
131
132  Thanks to Max Rijevski for his contributions to this version of tinc.
133
134 Version 1.0.8                May 16 2007
135
136  * Fixed some memory and resource leaks.
137
138  * Made network sockets non-blocking under Windows.
139
140  Thanks to Scott Lamb and "dnk" for their contributions to this version of tinc.
141
142 Version 1.0.7                Jan  5 2007
143
144  * Fixed a bug that caused slow network speeds on Windows.
145
146  * Fixed a bug that caused tinc unable to write packets to the tun device on
147    OpenBSD.
148
149 Version 1.0.6                Dec 18 2006
150
151  * More flexible detection of the LZO libraries when compiling.
152
153  * Fixed a bug where broadcasts in switch and hub modes sometimes would not
154    work anymore when part of the VPN had become disconnected from the rest.
155
156 version 1.0.5                Nov 14 2006
157
158  * Lots of small fixes.
159
160  * Broadcast packets no longer grow in size with each hop. This should
161    fix switch mode (again).
162  
163  * Generic host-up and host-down scripts.
164
165  * Optionally dump graph in graphviz format to a file or a script.
166
167  * Support LZO 2.0 and later.
168
169  Thanks to Scott Lamb for his contributions to this version of tinc.
170
171 version 1.0.4                May  4 2005
172
173  * Fix switch and hub modes.
174
175  * Optionally start scripts when a Subnet becomes (un)reachable.
176
177 version 1.0.3                Nov 11 2004
178
179 * Show error message when failing to write a PID file.
180
181 * Ignore spaces at end of lines in config files.
182
183 * Fix handling of late packets.
184
185 * Unify BSD tun/tap device handling. This allows IPv6 on tun devices and
186   anything on tap devices as long as the underlying OS supports it.
187
188 * Handle IPv6 on Solaris tun devices.
189
190 * Allow tinc to work properly under Windows XP SP2.
191
192 * Allow VLAN tagged Ethernet frames in switch and hub mode.
193
194 * Experimental PMTUDiscovery, TunnelServer and BlockingTCP options.
195
196 version 1.0.2                Nov  8 2003
197
198 * Fix address and hostname resolving under Windows.
199
200 * Remove warnings about non-existing scripts and unsupported address families.
201
202 * Use the event logger under Windows.
203
204 * Fix quoting of filenames and command line arguments under Windows.
205
206 * Strict checks for length incoming network packets and return values of
207   cryptographic functions,
208
209 * Fix a bug in metadata handling that made the tinc daemon abort.
210
211 version 1.0.1                Aug 14 2003
212
213 * Allow empty lines in config files.
214
215 * Fix handling of spaces and backslashes in filenames under native Windows.
216
217 * Allow scripts to be executed under native Windows.
218
219 * Update documentation, make it less Linux specific.
220
221 version 1.0                  Aug  4 2003
222
223 * Lots of small bugfixes and code cleanups.
224
225 * Throughput doubled and latency reduced.
226
227 * Added support for LZO compression.
228
229 * No need to set MAC address or disable ARP anymore.
230
231 * Added support for Windows 2000 and XP, both natively and in a Cygwin
232   environment.
233
234 version 1.0pre8              Sep 16 2002
235
236 * More fixes for subnets with prefixlength undivisible by 8.
237
238 * Added support for NetBSD and MacOS/X.
239
240 * Switched from undirected graphs to directed graphs to avoid certain race
241   conditions and improve scalability.
242
243 * Generalized broadcasting and forwarding of protocol messages.
244
245 * Cleanup of source code.
246
247
248 version 1.0pre7              Apr  7 2002
249
250 * Don't do blocking read()s when getting a signal.
251
252 * Remove RSA key checking code, since it sometimes thinks perfectly good RSA
253   keys are bad.
254
255 * Fix handling of subnets when prefixlength isn't divisible by 8.
256
257
258 version 1.0pre6              Mar 27 2002
259
260 * Improvement of redundant links:
261
262   * Non-blocking connects.
263   
264   * Protocol broadcast messages can no longer go into an infinite loop.
265   
266   * Graph algorithm updated to look harder for direct connections.
267
268 * Good support for routing IPv6 packets over the VPN. Works on Linux,
269   FreeBSD, possibly OpenBSD but not on Solaris.
270
271 * Support for tunnels over IPv6 networks. Works on all supported
272   operating systems.
273
274 * Optional compression of UDP connections using zlib.
275
276 * Optionally let UDP connections inherit TOS field of tunneled packets.
277
278 * Optionally start scripts when certain hosts become (un)reachable.
279
280
281 version 1.0pre5              Feb  9 2002
282
283 * Security enhancements:
284
285   * Added sequence number and optional message authentication code to
286     the packets.
287
288   * Configurable encryption cipher and digest algorithms.
289
290 * More robust handling of dis- and reconnects.
291
292 * Added a "switch" and a "hub" mode to allow bridging setups.
293
294 * Preliminary support for routing of IPv6 packets.
295
296 * Supports Linux, FreeBSD, OpenBSD and Solaris.
297
298
299 It looks like this might be the last release before 1.0.
300
301
302 version 1.0pre4              Jan 17 2001
303
304 * Updated documentation; the documentation now reflects the
305   configuration as it is.
306
307 * Some internal changes to make tinc scale better for large
308   networks, such as using AVL trees instead of linked lists for the
309   connection list.  
310
311 * RSA keys can be stored in separate files if needed.  See the
312   documentation for more information.
313
314 * tinc has now been reported to run on Linux PowerPC and FreeBSD x86.
315
316
317
318 version 1.0pre3              Oct 31 2000
319
320 * The protocol has been redesigned, and although some details are
321   still under discussion, this is secure.  Care has been taken to
322   resist most, if not all, attacks.
323   
324 * Unfortunately this protocol is not compatible with earlier versions,
325   nor are earlier versions compatible with this version.  Because the
326   older protocol has huge security flaws, we feel that not
327   implementing backwards compatibility is justified.
328
329 * Some data about the protocol:
330
331   * It uses public/private RSA keys for authentication (this is the
332     actual fix for the security hole).
333
334   * All cryptographic functions have been taken out of tinc, instead
335     it uses the OpenSSL library functions.
336
337   * Offers support for multiple subnets per tinc daemon.
338
339 * New is also the support for the universal tun/tap device.  This
340   means better portability to FreeBSD and Solaris.
341
342 * tinc is tested to compile on Solaris, Linux x86, Linux alpha.
343
344 * tinc now uses the OpenSSL library for cryptographic operations.
345   More information on getting and installing OpenSSL is in the manual.
346   This also means that the GMP library is no longer required.
347
348 * Further, thanks to Enrique Zanardi, we have Spanish messages; Matias
349   Carrasco provided us with a Spanish translation of the manual.
350
351
352 What still needs to be done before 1.0:
353
354 * Documentation.  Especially since the protocol has changed, and a lot
355   of configuration directives have been added.
356
357
358
359
360 version 1.0pre2              May 31 2000
361
362 * This version has been internationalized; and a Dutch translation has          
363   been included.                                                                
364                                                                                 
365 * Two configuration variables have been added:                                  
366   * VpnMask - the IP network mask for the entire VPN, not just our              
367     subnet (as given by MyVirtualIP).  The Redhat and Debian packages           
368     use this variable in their system startup scripts, but it is                
369     ignored by tinc.                                                            
370   * Hostnames - if set to `yes', look up the names of IP addresses              
371     trying to connect to us.  Default set to `no', to prevent lockups           
372     during lookups.                                                             
373                                                                                 
374 * The system startup scripts for Debian and Redhat use                          
375   /etc/tinc/nets.boot to find out which networks need to be started             
376   during system boot.                                                           
377                                                                                 
378 * Fixes to prevent denial of service attacks by sending random data             
379   after connecting (and even when the connection has been established),         
380   either random garbage or just nonsensical protocol fields.                    
381                                                                                 
382 * tinc will retry to connect upon startup, does not quit if it doesn't          
383   work the first time.                                                          
384                                                                                 
385 * Hosts that are disconnected implicitly if we lose a connection get            
386   deleted from the internal list, to prevent hogging eachother with             
387   add and delete requests when the connection is restored.                      
388                                                                                 
389                                                                                 
390 What still needs to be done before 1.0:                                         
391                                                                                 
392 * Documentation.                                                                
393 * Failover ConnectTo lines, try another one if the first doesn't work.          
394
395
396
397
398 version 1.0pre1              May 12 2000
399  * New meta-protocol
400  * Various other bugfixes
401  * Documentation updates
402
403 version 0.3.3                Feb  9 2000
404  * Fixed bug that made tinc stop working with latest kernels (Guus
405    Sliepen)
406  * Updated the manual
407
408 version 0.3.2                Nov 12 1999
409  * no more `Invalid filedescriptor' when working with multiple
410    connections
411  * forward unknown packets to uplink
412
413 version 0.3.1                Oct 20 1999
414  * fixed a bug where tinc would exit without a trace
415
416 version 0.3                  Aug 20 1999
417  * pings now work immediately
418  * all packet sizes get transmitted correctly
419
420 version 0.2.26               Aug 15 1999
421  * fixed some remaining bugs
422  * --sysconfdir works with configure
423  * last version before 0.3
424
425 version 0.2.25               Aug  8 1999
426  * improved stability, going towards 0.3 now.
427
428 version 0.2.24               Aug  7 1999
429  * added key aging, there's a new config variable, KeyExpire.
430  * updated man and info pages
431
432 version 0.2.23               Aug  5 1999
433  * all known bugs fixed, this is a candidate for 0.3
434
435 version 0.2.22               Apr 11 1999
436  * multiconnection thing is now working nearly perfect :)
437
438 version 0.2.21               Apr 10 1999
439  * You shouldn't notice a thing, but a lot has changed wrt key
440 management - except that it refuses to talk to versions < 0.2.20
441
442 version 0.2.20
443
444 version 0.2.19               Apr  3 1999
445  * don't install a libcipher.so
446
447 version 0.2.18               Apr  3 1999
448  * blowfish library dynamically loaded upon execution
449  * included Eric Young's IDEA library
450
451 version 0.2.17               Apr  1 1999
452  * tincd now re-executes itself in case of a segmentation fault.
453
454 version 0.2.16               Apr  1 1999
455  * wrote tincd.conf(5) man page, which still needs a lot of work.
456  * config file now accepts and tolerates spaces, and any integer base
457 for integer variables, and better error reporting. See
458 doc/tincd.conf.sample for an example.
459
460 version 0.2.15               Mar 29 1999
461  * fixed bugs
462
463 version 0.2.14               Feb 10 1999
464  * added --timeout flag and PingTimeout configuration
465  * did some first syslog cleanup work
466
467 version 0.2.13               Jan 23 1999
468  * bugfixes
469
470 version 0.2.12               Jan 23 1999
471  * fixed nauseating bug so that it would crash whenever a connection
472 got lost
473
474 version 0.2.11               Jan 22 1999
475  * framework for multiple connections has been done
476  * simple manpage for tincd
477
478 version 0.2.10               Jan 18 1999
479  * passphrase support added
480
481 version 0.2.9                Jan 13 1999
482  * bugs fixed.
483
484 version 0.2.8                Jan 11 1999
485  * a reworked protocol version
486  * a ping/pong system
487  * more reliable networking code
488  * automatic reconnection
489  * still does not work with more than one connection :)
490  * strips MAC addresses before sending, so there's less overhead, and
491 less redundancy
492
493 version 0.2.7                Jan  3 1999
494  * several updates to make extending more easy.
495
496 version 0.2.6                Dec 20 1998
497  * Point-to-Point connections have been established, including
498 blowfish encryption and a secret key-exchange.
499
500 version 0.2.5                Dec 16 1998
501  * Project renamed to tinc, in honour of TINC.
502
503 version 0.2.4                Dec 16 1998
504  * now it really does ;)
505
506 version 0.2.3                Nov 24 1998
507  * it sort of works now
508
509 version 0.2.2                Nov 20 1998
510  * uses GNU gmp.
511
512 version 0.2.1                Nov 14 1998
513
514  * Bare version.