0
0
mirror of https://github.com/OpenVPN/openvpn.git synced 2024-09-20 03:52:28 +02:00
OpenVPN is an open source VPN daemon
Go to file
Selva Nair 5d429efd97 Exponentially back off on repeated connect retries
- When the number of retries per remote exceeds a limit
  (hard coded to 5), double the restart pause interval
  for each additional retry per remote.
- Trigger a SIGHUP to reset the retry count when the pause
  interval exceeds 1024 times the base value of restart pause.
  (removed in v2 of the patch)

The base value of restart pause is set using --connect-retry
(5 seconds by default).

v2 changes (based on suggestions from Arne Schwabe <arne@rfc2549.org>)

- Do not throw SIGHUP.
- Add an optional argument to "--connect-retry n [m]" where 'm'
  specifies the max value of restart pause interval (default
  300 sec).
  E.g., "--connect-retry 5 1800" will cause the restart pause to
  scale up starting at 5 until it exceeds 1800 seconds at which
  point it gets capped at 1800.
- If n == m no slow down will occur.
- While at it, fix typos and clarify the description of connect-retry-max
  in the man page and Changes.rst

v3 changes (on further feedback from arne@rfc2549.org):
- Limiting the base value of retry wait interval to 16 bits moved
  to options.c
- Apply backoff only in the udp and tcp-client modes. Backing off on
  tcp-server could be exploited by a client in p2p-mode to maliciously
  slow it down (thanks to Arne Schwabe for pointing this out.
- Fix typo in Changes.rst: "third argument" -> "second argument"

Signed-off-by: Selva Nair <selva.nair@gmail.com>
Acked-by: Arne Schwabe <arne@rfc2549.org>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <1467732770-19110-1-git-send-email-selva.nair@gmail.com>
URL: http://article.gmane.org/gmane.network.openvpn.devel/12050
Signed-off-by: Gert Doering <gert@greenie.muc.de>
2016-07-11 16:19:12 +02:00
build Generate openvpn-plugin.h for MSVC build 2015-10-22 19:47:28 +02:00
contrib Update contrib/pull-resolv-conf/client.up for no DOMAIN 2016-05-31 00:17:26 +02:00
debug build: standard directory layout 2012-03-22 22:07:08 +01:00
distro Include systemd units in the source tarball (make dist) 2014-12-02 21:42:11 +01:00
doc Exponentially back off on repeated connect retries 2016-07-11 16:19:12 +02:00
include Add support for register-dns through interactive service 2016-05-16 17:44:45 +02:00
m4 build: ax_varargs.m4: fixups 2012-03-26 14:33:15 +02:00
sample sample-plugin: TLS Keying Material Exporter [RFC-5705] demonstration plug-in 2015-10-10 00:03:07 +02:00
src Exponentially back off on repeated connect retries 2016-07-11 16:19:12 +02:00
tests Only build and run cmocka unit tests if its submodule is initialized 2016-05-31 16:40:29 +02:00
vendor Another fix related to unit test framework 2016-06-03 20:31:41 +02:00
.gitattributes cleanup: add .gitattributes to control eol style explicitly 2012-04-26 20:54:26 +02:00
.gitignore ignore the local config file t_client.rc in git 2016-05-01 19:05:57 +02:00
.gitmodules Add unit testing support via cmocka 2016-05-30 22:40:55 +02:00
.mailmap Added mapping files from SVN commit ID to more descriptive commit IDs. 2010-10-21 11:31:26 +02:00
.svncommitters Added mapping files from SVN commit ID to more descriptive commit IDs. 2010-10-21 11:31:26 +02:00
AUTHORS This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
ChangeLog Preparing for v2.3_beta1 2012-09-12 16:12:28 +02:00
Changes.rst Exponentially back off on repeated connect retries 2016-07-11 16:19:12 +02:00
compat.m4 build: add git revision to --version output if build from git repository 2012-06-01 15:34:49 +02:00
config-msvc-version.h.in build: win-msvc: msbuild format 2012-03-22 22:53:39 +01:00
config-msvc.h Add lz4 support to MSVC. 2016-02-26 08:36:24 +01:00
configure.ac Change --enable-pedantic to use -std=c99 and not -ansi (C90). 2016-06-09 15:07:34 +02:00
CONTRIBUTING.rst Update CONTRIBUTING.rst to allow GitHub PRs for code review purposes 2016-05-19 11:22:50 +02:00
COPYING Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
COPYRIGHT.GPL This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
INSTALL Clarify which Windows versions require which TUN/TAP driver 2016-06-23 11:42:10 +02:00
INSTALL-win32.txt Added cross-compilation information INSTALL-win32.txt 2013-02-03 14:47:19 +01:00
Makefile.am Add unit testing support via cmocka 2016-05-30 22:40:55 +02:00
msvc-build.bat build: msvc: chdir with change drive to script location 2012-06-29 10:26:15 +02:00
msvc-dev.bat build: msvc: chdir with change drive to script location 2012-06-29 10:26:15 +02:00
msvc-env.bat Continuation of MSVS fixes 2015-10-06 13:17:34 +02:00
NEWS This is the start of the BETA21 branch. 2005-09-26 05:28:27 +00:00
openvpn.sln build: msvc: upgrade to Visual Studio 2010 + fixups 2012-03-29 12:31:10 +02:00
PORTS Updated copyright date to 2010. 2010-04-28 16:31:36 +00:00
README Clarify the fact that build instructions in README are for release tarballs 2016-05-31 19:47:21 +02:00
README.ec Add support for elliptic curve diffie-hellmann key exchange (ECDH) 2014-04-25 19:36:52 +02:00
README.IPv6 Update IPv6 related readme files 2014-01-03 16:01:12 +01:00
README.polarssl Update README.polarssl 2014-06-24 22:51:27 +02:00
TODO.IPv6 Update IPv6 related readme files 2014-01-03 16:01:12 +01:00
version.m4 Provide compile time OpenVPN version information to plug-ins 2015-07-27 20:48:46 +02:00
version.sh.in build: windows: install version.sh to allow installer read version 2012-03-24 00:14:23 +01:00

OpenVPN -- A Secure tunneling daemon

Copyright (C) 2002-2010 OpenVPN Technologies, Inc. This program is free software;
you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2
as published by the Free Software Foundation.

*************************************************************************

To get the latest release of OpenVPN, go to:

	https://openvpn.net/index.php/download/community-downloads.html

To Build and Install,

	tar -zxf openvpn-<version>.tar.gz
	cd openvpn-<version>
	./configure
	make
	make install

or see the file INSTALL for more info.

*************************************************************************

For detailed information on OpenVPN, including examples, see the man page
  http://openvpn.net/man.html

For a sample VPN configuration, see
  http://openvpn.net/howto.html

To report an issue, see
  https://community.openvpn.net/openvpn/report

For a description of OpenVPN's underlying protocol,
  see the file ssl.h included in the source distribution.

*************************************************************************

Other Files & Directories:

* INSTALL-win32.txt -- installation instructions
  for Windows

* configure.ac -- script to rebuild our configure
  script and makefile.

* sample/sample-scripts/verify-cn

  A sample perl script which can be used with OpenVPN's
  --tls-verify option to provide a customized authentication
  test on embedded X509 certificate fields.

* sample/sample-keys/

  Sample RSA keys and certificates.  DON'T USE THESE FILES
  FOR ANYTHING OTHER THAN TESTING BECAUSE THEY ARE TOTALLY INSECURE.

* sample/sample-config-files/

  A collection of OpenVPN config files and scripts from
  the HOWTO at http://openvpn.net/howto.html

*************************************************************************

Note that easy-rsa and tap-windows are now maintained in their own subprojects.
Their source code is available here:

  https://github.com/OpenVPN/easy-rsa
  https://github.com/OpenVPN/tap-windows

The old cross-compilation environment (domake-win) and the Python-based
buildsystem have been replaced with openvpn-build:

  https://github.com/OpenVPN/openvpn-build

See the INSTALL file for usage information.