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