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
Raw File
Kconfig
# SPDX-License-Identifier: GPL-2.0-only
#
# 9P protocol configuration
#

menuconfig NET_9P
	tristate "Plan 9 Resource Sharing Support (9P2000)"
	help
	  If you say Y here, you will get experimental support for
	  Plan 9 resource sharing via the 9P2000 protocol.

	  See <http://v9fs.sf.net> for more information.

	  If unsure, say N.

if NET_9P

config NET_9P_FD
	default NET_9P
	tristate "9P FD Transport"
	help
	  This builds support for transports over TCP, Unix sockets and
	  filedescriptors.

config NET_9P_VIRTIO
	depends on VIRTIO
	tristate "9P Virtio Transport"
	help
	  This builds support for a transports between
	  guest partitions and a host partition.

config NET_9P_XEN
	depends on XEN
	select XEN_XENBUS_FRONTEND
	tristate "9P Xen Transport"
	help
	  This builds support for a transport for 9pfs between
	  two Xen domains.


config NET_9P_RDMA
	depends on INET && INFINIBAND && INFINIBAND_ADDR_TRANS
	tristate "9P RDMA Transport (Experimental)"
	help
	  This builds support for an RDMA transport.

config NET_9P_DEBUG
	bool "Debug information"
	help
	  Say Y if you want the 9P subsystem to log debug information.

endif
back to top