Ole Troan 5297447bd6 nat: tweak rfc7857 tcp connection tracking
The RFC7857 state machine introduced in 56c492a is a trade-off.
It tries to retain sessions as much as possible and also offers
some protection against spurious RST by re-establishing sessions if data
is received after the RST. From experience in the wild, this algorithm is
a little too liberal, as it leaves too many spurious established sessions
in the session table.

E.g. a oberserved pattern is:
client      server
         <- FIN, ACK
ACK      ->
ACK      ->
RST, ACK ->

With the current state machine this would leave the session in established state.

These proposed changes do:
 - require 3-way handshake to establish session.
   (current requires only to see SYNs from both sides)
 - RST will move session to transitory without recovery if data is sent after
 - Only a single FIN is needed to move to transitory

Fixes: 56c492aa0502751de2dd9d890096a82c5f04776d
Type: fix
Signed-off-by: Ole Troan <ot@cisco.com>
Change-Id: I92e593e00b2efe48d04997642d85bd59e0eaa2ea
Signed-off-by: Ole Troan <ot@cisco.com>
2022-04-21 10:35:58 +00:00
..
2022-03-18 20:11:26 +00:00
2022-02-17 18:02:35 +00:00
2022-03-27 09:21:34 +00:00
2022-02-17 18:02:35 +00:00
2022-03-22 00:50:23 +00:00
2022-02-07 16:39:35 +00:00
2022-03-27 09:21:34 +00:00
2021-09-28 16:06:19 +00:00
2021-11-22 16:44:26 +00:00
2022-04-01 13:26:04 +00:00
2021-09-27 09:54:56 +00:00
2021-10-07 15:34:31 +00:00
2022-03-22 14:31:45 +00:00
2022-03-24 14:26:28 +00:00
2021-10-06 12:32:20 +00:00
2021-11-22 16:44:26 +00:00
2021-05-13 09:33:06 +00:00
2022-02-06 11:45:11 +00:00
2019-12-11 15:23:55 +00:00
2022-03-27 09:21:34 +00:00
2022-03-09 15:04:26 +00:00
2021-05-13 09:33:06 +00:00
2021-05-13 09:33:06 +00:00
2021-02-19 10:48:20 +00:00
2021-05-29 18:13:01 +00:00