On Thu,  5 Nov 2020 12:26:04 +0200 Motiejus Jakštys wrote:
> Clarify tproxy odcumentation, so it's easier to read/understand without
> a-priori in-kernel transparent proxying knowledge.
> 
> Remove a reference to linux 2.2 and cosmetic Sphinx changes and address
> comments from kuba@.
> 
> Sorry for re-posting, I realized I left a gap just after sending.
> 
> Signed-off-by: Motiejus Jakštys <desired....@gmail.com>

> diff --git a/Documentation/networking/tproxy.rst 
> b/Documentation/networking/tproxy.rst
> index 00dc3a1a66b4..d2673de0e408 100644
> --- a/Documentation/networking/tproxy.rst
> +++ b/Documentation/networking/tproxy.rst
> @@ -1,42 +1,45 @@
>  .. SPDX-License-Identifier: GPL-2.0
>  
> -=========================
> -Transparent proxy support
> -=========================
> +==========================
> +Transparent proxy (TPROXY)
> +==========================
>  
> -This feature adds Linux 2.2-like transparent proxy support to current 
> kernels.
> -To use it, enable the socket match and the TPROXY target in your kernel 
> config.
> -You will need policy routing too, so be sure to enable that as well.
> +TPROXY enables forwarding and intercepting packets that were destined for 
> other

I would not say forwarding

> +endpoints, without using NAT chain or REDIRECT targets.

"without using NAT or the REDIRECT target"

> -From Linux 4.18 transparent proxy support is also available in nf_tables.
> +Intercepting non-local packets
> +==============================
>  
> -1. Making non-local sockets work
> -================================
> +To identify packets with destination address matching a local socket on your

> -Because of certain restrictions in the IPv4 routing output code you'll have 
> to
> -modify your application to allow it to send datagrams _from_ non-local IP
> -addresses. All you have to do is enable the (SOL_IP, IP_TRANSPARENT) socket
> -option before calling bind::
> +.. code-block:: sh
> +
> +    ip rule add fwmark 1 lookup 100
> +    ip route add local 0.0.0.0/0 dev lo table 100
> +
> +Because of certain restrictions in the IPv4 routing application will need to 
> be
> +modified to allow it to send datagrams *from* non-local IP addresses. Enable

"modified to enable sending datagrams" ... "Set"

> +the ``SOL_IP``, ``IP_TRANSPARENT`` socket options before calling ``bind``:
> +
> +.. code-block:: c
>  
>      fd = socket(AF_INET, SOCK_STREAM, 0);
>      /* - 8< -*/
> @@ -51,9 +54,22 @@ option before calling bind::
>  A trivial patch for netcat is available here:
>  http://people.netfilter.org/hidden/tproxy/netcat-ip_transparent-support.patch
>  
> +Kernel configuration
> +====================
>  
> -2. Redirecting traffic
> -======================
> +To use tproxy you'll need to have the following modules compiled for 
> iptables:
> +
> +- ``NETFILTER_XT_MATCH_POLICY``

That's not the config option for policy routing.

> +- ``NETFILTER_XT_MATCH_SOCKET``
> +- ``NETFILTER_XT_TARGET_TPROXY``

Reply via email to