Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1303618 > unrolled thread

[PATCH 0/3] Namespaceify tcp keepalive machinery

Started byNikolay Borisov <kernel@kyup.com>
First post2016-01-07 15:40 +0100
Last post2016-01-10 23:40 +0100
Articles 3 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH 0/3] Namespaceify tcp keepalive machinery Nikolay Borisov <kernel@kyup.com> - 2016-01-07 15:40 +0100
    Re: [PATCH 0/3] Namespaceify tcp keepalive machinery ebiederm@xmission.com (Eric W. Biederman) - 2016-01-07 22:50 +0100
    Re: [PATCH 0/3] Namespaceify tcp keepalive machinery David Miller <davem@davemloft.net> - 2016-01-10 23:40 +0100

#1303618 — [PATCH 0/3] Namespaceify tcp keepalive machinery

FromNikolay Borisov <kernel@kyup.com>
Date2016-01-07 15:40 +0100
Subject[PATCH 0/3] Namespaceify tcp keepalive machinery
Message-ID<qOjTj-SP-3@gated-at.bofh.it>
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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1303931

Fromebiederm@xmission.com (Eric W. Biederman)
Date2016-01-07 22:50 +0100
Message-ID<qOqBt-5uC-9@gated-at.bofh.it>
In reply to#1303618
Nikolay Borisov <kernel@kyup.com> writes:

> 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

Acked-by: "Eric W. Biederman" <ebiederm@xmission.com>

I took a quick skim and there appears to be nothing scary in your
patches and the separation of the patches did make the review easy.

All of the knobs are already per socket with a global default.  Moving
that global to be per network namespace appears straight forward in
your patches.

> 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(-)

[toc] | [prev] | [next] | [standalone]


#1305715

FromDavid Miller <davem@davemloft.net>
Date2016-01-10 23:40 +0100
Message-ID<qPwOt-1Sj-17@gated-at.bofh.it>
In reply to#1303618
From: Nikolay Borisov <kernel@kyup.com>
Date: Thu,  7 Jan 2016 16:38:42 +0200

> 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

Series applied, thanks.

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web