netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Nikolay Borisov <kernel@kyup.com>
To: davem@davemloft.net, netdev@vger.kernel.org,
	linux-kernel@vger.kernel.org
Cc: edumazet@google.com, ebiederm@xmission.com, fan.du@intel.com,
	kaber@trash.net, jmorris@namei.org, alexander.h.duyck@redhat.com,
	kuznet@ms2.inr.ac.ru, operations@siteground.com
Subject: [PATCH 0/3] Namespaceify tcp keepalive machinery
Date: Thu,  7 Jan 2016 16:38:42 +0200	[thread overview]
Message-ID: <1452177525-13244-1-git-send-email-kernel@kyup.com> (raw)

The following patch series enables the tcp keepalive mechanism
to be configured per net namespace. This is especially useful
if you have multiple containers hosted on one node and one of 
them is under DoS-  in such situations one thing which could 
be done is to configure the tcp keepalive settings such that 
connections for that particular container are being reset 
faster.

Another scenario where not being able to control those knob
comes per container is problematic is occurs the value of 
net.netfilter.nf_conntrack_tcp_timeout_established is set
below the keepalive interval, in such situations the server won't 
send an RST packet resulting in applications not trying to 
reconnect and stale connection waiting. Changing the global 
keepalive value is a possible solution but it might interfere
with other containers. 

The three patches gradually convert each of the affected knobs
to be per netns. I thought it would be easier for review than 
put everything in one patch. If people deem it more appropriate 
to squash everything in one patch (maybe after review) I'd
be more than happy to do it. 

The patches have been compile-tested on 4.4 and functionally 
tested on 3.12 and they work as expected. 

These are based off 4.4-rc8

Nikolay Borisov (3):
  ipv4: Namespaceify tcp_keepalive_time sysctl knob
  ipv4: Namespecify tcp_keepalive_probes sysctl knob 
  ipv4: Namespecify the tcp_keepalive_intvl sysctl knob

 include/net/netns/ipv4.h   |  4 ++++
 include/net/tcp.h          | 15 +++++++++------
 net/ipv4/sysctl_net_ipv4.c | 42 +++++++++++++++++++++---------------------
 net/ipv4/tcp_ipv4.c        |  4 ++++
 net/ipv4/tcp_timer.c       |  3 ---
 5 files changed, 38 insertions(+), 30 deletions(-)

-- 
2.5.0

             reply	other threads:[~2016-01-07 14:38 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-07 14:38 Nikolay Borisov [this message]
2016-01-07 14:38 ` [PATCH 1/3] ipv4: Namespaceify tcp_keepalive_time sysctl knob Nikolay Borisov
2016-01-07 14:38 ` [PATCH 2/3] ipv4: Namespecify tcp_keepalive_probes " Nikolay Borisov
2016-01-07 14:38 ` [PATCH 3/3] ipv4: Namespecify the tcp_keepalive_intvl " Nikolay Borisov
2016-01-07 21:38 ` [PATCH 0/3] Namespaceify tcp keepalive machinery Eric W. Biederman
2016-01-10 22:32 ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1452177525-13244-1-git-send-email-kernel@kyup.com \
    --to=kernel@kyup.com \
    --cc=alexander.h.duyck@redhat.com \
    --cc=davem@davemloft.net \
    --cc=ebiederm@xmission.com \
    --cc=edumazet@google.com \
    --cc=fan.du@intel.com \
    --cc=jmorris@namei.org \
    --cc=kaber@trash.net \
    --cc=kuznet@ms2.inr.ac.ru \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=operations@siteground.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).