Revision a82c25c366b0963d33ddf699196e6cf57f6d89b1 authored by Florian Westphal on 08 March 2022, 12:52:11 UTC, committed by Florian Westphal on 08 March 2022, 12:52:11 UTC
This reverts commit 878aed8db324bec64f3c3f956e64d5ae7375a5de. This change breaks existing setups where conntrack is used with asymmetric paths. In these cases, the NAT transformation occurs on the syn-ack instead of the syn: 1. SYN x:12345 -> y -> 443 // sent by initiator, receiverd by responder 2. SYNACK y:443 -> x:12345 // First packet seen by conntrack, as sent by responder 3. tuple_force_port_remap() gets called, sees: 'tcp from 443 to port 12345 NAT' -> pick a new source port, inititor receives 4. SYNACK y:$RANDOM -> x:12345 // connection is never established While its possible to avoid the breakage with NOTRACK rules, a kernel update should not break working setups. An alternative to the revert is to augment conntrack to tag mid-stream connections plus more code in the nat core to skip NAT for such connections, however, this leads to more interaction/integration between conntrack and NAT. Therefore, revert, users will need to add explicit nat rules to avoid port shadowing. Link: https://lore.kernel.org/netfilter-devel/20220302105908.GA5852@breakpoint.cc/#R Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2051413 Signed-off-by: Florian Westphal <fw@strlen.de>
1 parent f8e9bd3
File | Mode | Size |
---|---|---|
Kconfig | -rw-r--r-- | 2.8 KB |
Makefile | -rw-r--r-- | 703 bytes |
associola.c | -rw-r--r-- | 49.0 KB |
auth.c | -rw-r--r-- | 26.6 KB |
bind_addr.c | -rw-r--r-- | 13.9 KB |
chunk.c | -rw-r--r-- | 9.5 KB |
debug.c | -rw-r--r-- | 3.8 KB |
diag.c | -rw-r--r-- | 13.7 KB |
endpointola.c | -rw-r--r-- | 10.3 KB |
input.c | -rw-r--r-- | 35.7 KB |
inqueue.c | -rw-r--r-- | 6.4 KB |
ipv6.c | -rw-r--r-- | 31.7 KB |
objcnt.c | -rw-r--r-- | 2.8 KB |
offload.c | -rw-r--r-- | 2.6 KB |
output.c | -rw-r--r-- | 23.9 KB |
outqueue.c | -rw-r--r-- | 55.5 KB |
primitive.c | -rw-r--r-- | 6.7 KB |
proc.c | -rw-r--r-- | 10.9 KB |
protocol.c | -rw-r--r-- | 45.7 KB |
sm_make_chunk.c | -rw-r--r-- | 116.9 KB |
sm_sideeffect.c | -rw-r--r-- | 50.8 KB |
sm_statefuns.c | -rw-r--r-- | 208.6 KB |
sm_statetable.c | -rw-r--r-- | 34.3 KB |
socket.c | -rw-r--r-- | 265.1 KB |
stream.c | -rw-r--r-- | 26.5 KB |
stream_interleave.c | -rw-r--r-- | 31.5 KB |
stream_sched.c | -rw-r--r-- | 6.1 KB |
stream_sched_prio.c | -rw-r--r-- | 8.4 KB |
stream_sched_rr.c | -rw-r--r-- | 4.5 KB |
sysctl.c | -rw-r--r-- | 14.9 KB |
transport.c | -rw-r--r-- | 25.7 KB |
tsnmap.c | -rw-r--r-- | 8.8 KB |
ulpevent.c | -rw-r--r-- | 32.5 KB |
ulpqueue.c | -rw-r--r-- | 28.7 KB |
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...