diff options
author | phk <phk@FreeBSD.org> | 1999-06-05 05:45:57 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 1999-06-05 05:45:57 +0000 |
commit | 47e8c0df80372b7e332c2917c46155e79ace4a7f (patch) | |
tree | 9dd464ed6a1f446e88c62be5ca11a9046f93b487 /etc | |
parent | 21732dea0c4943518e727150906d9117775a8a6b (diff) | |
download | FreeBSD-src-47e8c0df80372b7e332c2917c46155e79ace4a7f.zip FreeBSD-src-47e8c0df80372b7e332c2917c46155e79ace4a7f.tar.gz |
Add handle to control global TCP keepalives and turn them on as
default.
Despite their name it doesn't keep TCP sessions alive, it kills
them if the other end has gone AWOL. This happens a lot with
clients which use NAT, dynamic IP assignment or which has a 2^32
* 10^-3 seconds upper bound on their uptime.
There is no detectable increase in network trafic because of this:
two minimal TCP packets every two hours for a live TCP connection.
Many servers already enable keepalives themselves.
The host requirements RFC is 10 years old, and doesn't know about
the loosing clients of todays InterNet.
Diffstat (limited to 'etc')
-rw-r--r-- | etc/defaults/rc.conf | 3 | ||||
-rw-r--r-- | etc/network.subr | 7 | ||||
-rw-r--r-- | etc/rc.d/netoptions | 7 | ||||
-rw-r--r-- | etc/rc.d/network1 | 7 | ||||
-rw-r--r-- | etc/rc.d/network2 | 7 | ||||
-rw-r--r-- | etc/rc.d/network3 | 7 | ||||
-rw-r--r-- | etc/rc.d/routing | 7 | ||||
-rw-r--r-- | etc/rc.network | 7 |
8 files changed, 44 insertions, 8 deletions
diff --git a/etc/defaults/rc.conf b/etc/defaults/rc.conf index b3874d6..a81058e 100644 --- a/etc/defaults/rc.conf +++ b/etc/defaults/rc.conf @@ -9,7 +9,7 @@ # # All arguments must be in double or single quotes. # -# $Id: rc.conf,v 1.8 1999/04/10 10:56:56 des Exp $ +# $Id: rc.conf,v 1.9 1999/05/16 09:19:44 phk Exp $ ############################################################## ### Important initial Boot-time options ##################### @@ -41,6 +41,7 @@ natd_interface="fxp0" # Public interface or IPaddress to use. natd_flags="" # Additional flags for natd. tcp_extensions="NO" # Set to Yes to turn on RFC1323 extensions. log_in_vain="NO" # Disallow bad connection logging (or YES). +tcp_keepalive="YES" # Kill dead TCP connections (or NO). network_interfaces="lo0" # List of network interfaces (lo0 is loopback). ifconfig_lo0="inet 127.0.0.1" # default loopback device configuration. #ifconfig_lo0_alias0="inet 127.0.0.254 netmask 0xffffffff" # Sample alias entry. diff --git a/etc/network.subr b/etc/network.subr index a10e8fd..ef6bc08 100644 --- a/etc/network.subr +++ b/etc/network.subr @@ -1,6 +1,6 @@ #!/bin/sh - # -# $Id: rc.network,v 1.43 1999/04/10 10:56:58 des Exp $ +# $Id: rc.network,v 1.44 1999/04/12 15:26:41 brian Exp $ # From: @(#)netstart 5.9 (Berkeley) 3/30/91 # Note that almost all the user-configurable behavior is no longer in @@ -180,6 +180,11 @@ network_pass1() { sysctl -w net.inet.ip.accept_sourceroute=1 >/dev/null 2>&1 fi + if [ "X$tcp_keepalive" = X"YES" ]; then + echo -n ' TCP keepalive=YES' + sysctl -w net.inet.tcp.always_keepalive=1 >/dev/null 2>&1 + fi + if [ "X$ipxgateway_enable" = X"YES" ]; then echo -n ' IPX gateway=YES' sysctl -w net.ipx.ipx.ipxforwarding=1 >/dev/null 2>&1 diff --git a/etc/rc.d/netoptions b/etc/rc.d/netoptions index a10e8fd..ef6bc08 100644 --- a/etc/rc.d/netoptions +++ b/etc/rc.d/netoptions @@ -1,6 +1,6 @@ #!/bin/sh - # -# $Id: rc.network,v 1.43 1999/04/10 10:56:58 des Exp $ +# $Id: rc.network,v 1.44 1999/04/12 15:26:41 brian Exp $ # From: @(#)netstart 5.9 (Berkeley) 3/30/91 # Note that almost all the user-configurable behavior is no longer in @@ -180,6 +180,11 @@ network_pass1() { sysctl -w net.inet.ip.accept_sourceroute=1 >/dev/null 2>&1 fi + if [ "X$tcp_keepalive" = X"YES" ]; then + echo -n ' TCP keepalive=YES' + sysctl -w net.inet.tcp.always_keepalive=1 >/dev/null 2>&1 + fi + if [ "X$ipxgateway_enable" = X"YES" ]; then echo -n ' IPX gateway=YES' sysctl -w net.ipx.ipx.ipxforwarding=1 >/dev/null 2>&1 diff --git a/etc/rc.d/network1 b/etc/rc.d/network1 index a10e8fd..ef6bc08 100644 --- a/etc/rc.d/network1 +++ b/etc/rc.d/network1 @@ -1,6 +1,6 @@ #!/bin/sh - # -# $Id: rc.network,v 1.43 1999/04/10 10:56:58 des Exp $ +# $Id: rc.network,v 1.44 1999/04/12 15:26:41 brian Exp $ # From: @(#)netstart 5.9 (Berkeley) 3/30/91 # Note that almost all the user-configurable behavior is no longer in @@ -180,6 +180,11 @@ network_pass1() { sysctl -w net.inet.ip.accept_sourceroute=1 >/dev/null 2>&1 fi + if [ "X$tcp_keepalive" = X"YES" ]; then + echo -n ' TCP keepalive=YES' + sysctl -w net.inet.tcp.always_keepalive=1 >/dev/null 2>&1 + fi + if [ "X$ipxgateway_enable" = X"YES" ]; then echo -n ' IPX gateway=YES' sysctl -w net.ipx.ipx.ipxforwarding=1 >/dev/null 2>&1 diff --git a/etc/rc.d/network2 b/etc/rc.d/network2 index a10e8fd..ef6bc08 100644 --- a/etc/rc.d/network2 +++ b/etc/rc.d/network2 @@ -1,6 +1,6 @@ #!/bin/sh - # -# $Id: rc.network,v 1.43 1999/04/10 10:56:58 des Exp $ +# $Id: rc.network,v 1.44 1999/04/12 15:26:41 brian Exp $ # From: @(#)netstart 5.9 (Berkeley) 3/30/91 # Note that almost all the user-configurable behavior is no longer in @@ -180,6 +180,11 @@ network_pass1() { sysctl -w net.inet.ip.accept_sourceroute=1 >/dev/null 2>&1 fi + if [ "X$tcp_keepalive" = X"YES" ]; then + echo -n ' TCP keepalive=YES' + sysctl -w net.inet.tcp.always_keepalive=1 >/dev/null 2>&1 + fi + if [ "X$ipxgateway_enable" = X"YES" ]; then echo -n ' IPX gateway=YES' sysctl -w net.ipx.ipx.ipxforwarding=1 >/dev/null 2>&1 diff --git a/etc/rc.d/network3 b/etc/rc.d/network3 index a10e8fd..ef6bc08 100644 --- a/etc/rc.d/network3 +++ b/etc/rc.d/network3 @@ -1,6 +1,6 @@ #!/bin/sh - # -# $Id: rc.network,v 1.43 1999/04/10 10:56:58 des Exp $ +# $Id: rc.network,v 1.44 1999/04/12 15:26:41 brian Exp $ # From: @(#)netstart 5.9 (Berkeley) 3/30/91 # Note that almost all the user-configurable behavior is no longer in @@ -180,6 +180,11 @@ network_pass1() { sysctl -w net.inet.ip.accept_sourceroute=1 >/dev/null 2>&1 fi + if [ "X$tcp_keepalive" = X"YES" ]; then + echo -n ' TCP keepalive=YES' + sysctl -w net.inet.tcp.always_keepalive=1 >/dev/null 2>&1 + fi + if [ "X$ipxgateway_enable" = X"YES" ]; then echo -n ' IPX gateway=YES' sysctl -w net.ipx.ipx.ipxforwarding=1 >/dev/null 2>&1 diff --git a/etc/rc.d/routing b/etc/rc.d/routing index a10e8fd..ef6bc08 100644 --- a/etc/rc.d/routing +++ b/etc/rc.d/routing @@ -1,6 +1,6 @@ #!/bin/sh - # -# $Id: rc.network,v 1.43 1999/04/10 10:56:58 des Exp $ +# $Id: rc.network,v 1.44 1999/04/12 15:26:41 brian Exp $ # From: @(#)netstart 5.9 (Berkeley) 3/30/91 # Note that almost all the user-configurable behavior is no longer in @@ -180,6 +180,11 @@ network_pass1() { sysctl -w net.inet.ip.accept_sourceroute=1 >/dev/null 2>&1 fi + if [ "X$tcp_keepalive" = X"YES" ]; then + echo -n ' TCP keepalive=YES' + sysctl -w net.inet.tcp.always_keepalive=1 >/dev/null 2>&1 + fi + if [ "X$ipxgateway_enable" = X"YES" ]; then echo -n ' IPX gateway=YES' sysctl -w net.ipx.ipx.ipxforwarding=1 >/dev/null 2>&1 diff --git a/etc/rc.network b/etc/rc.network index a10e8fd..ef6bc08 100644 --- a/etc/rc.network +++ b/etc/rc.network @@ -1,6 +1,6 @@ #!/bin/sh - # -# $Id: rc.network,v 1.43 1999/04/10 10:56:58 des Exp $ +# $Id: rc.network,v 1.44 1999/04/12 15:26:41 brian Exp $ # From: @(#)netstart 5.9 (Berkeley) 3/30/91 # Note that almost all the user-configurable behavior is no longer in @@ -180,6 +180,11 @@ network_pass1() { sysctl -w net.inet.ip.accept_sourceroute=1 >/dev/null 2>&1 fi + if [ "X$tcp_keepalive" = X"YES" ]; then + echo -n ' TCP keepalive=YES' + sysctl -w net.inet.tcp.always_keepalive=1 >/dev/null 2>&1 + fi + if [ "X$ipxgateway_enable" = X"YES" ]; then echo -n ' IPX gateway=YES' sysctl -w net.ipx.ipx.ipxforwarding=1 >/dev/null 2>&1 |