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.
This commit is contained in:
Poul-Henning Kamp 1999-06-05 05:45:57 +00:00
parent b903b04cc0
commit 2c7b227278
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=47752
8 changed files with 44 additions and 8 deletions

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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