public inbox for netdev@vger.kernel.org
 help / color / mirror / Atom feed
From: Phil Sutter <phil@nwl.cc>
To: netdev@vger.kernel.org
Subject: [iproute PATCH 04/12] man: Add a man page for the nat action
Date: Fri,  4 Mar 2016 13:11:39 +0100	[thread overview]
Message-ID: <1457093507-25601-5-git-send-email-phil@nwl.cc> (raw)
In-Reply-To: <1457093507-25601-1-git-send-email-phil@nwl.cc>

Cc: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Phil Sutter <phil@nwl.cc>
---
 man/man8/tc-nat.8 | 78 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 78 insertions(+)
 create mode 100644 man/man8/tc-nat.8

diff --git a/man/man8/tc-nat.8 b/man/man8/tc-nat.8
new file mode 100644
index 0000000000000..fdcc052a4bca4
--- /dev/null
+++ b/man/man8/tc-nat.8
@@ -0,0 +1,78 @@
+.TH "NAT action in tc" 8 "12 Jan 2015" "iproute2" "Linux"
+
+.SH NAME
+nat - stateless native address translation action
+.SH SYNOPSIS
+.in +8
+.ti -8
+.BR tc " ... " "action nat"
+.I DIRECTION OLD NEW
+
+.ti -8
+.IR DIRECTION " := { "
+.BR ingress " | " egress " }"
+
+.ti -8
+.IR OLD " := " IPV4_ADDR_SPEC
+
+.ti -8
+.IR NEW " := " IPV4_ADDR_SPEC
+
+.ti -8
+.IR IPV4_ADDR_SPEC " := { "
+.BR default " | " any " | " all " | "
+\fIin_addr\fR[\fB/\fR{\fIprefix\fR|\fInetmask\fR}]
+.SH DESCRIPTION
+The
+.B nat
+action allows to perform NAT without the overhead of conntrack, which is
+desirable if the number of flows or addresses to perform NAT on is large. This
+action is best used in combination with the
+.B u32
+filter to allow for efficient lookups of a large number of stateless NAT rules
+in constant time.
+.SH OPTIONS
+.TP
+.B ingress
+Translate destination addresses, i.e. perform DNAT.
+.TP
+.B egress
+Translate source addresses, i.e. perform SNAT.
+.TP
+.I OLD
+Specifies addresses which should be translated.
+.TP
+.I NEW
+Specifies addresses which
+.I OLD
+should be translated into.
+.SH NOTES
+The accepted address format in
+.IR OLD " and " NEW
+is quite flexible. It may either consist of one of the keywords
+.BR default ", " any " or " all ,
+representing the all-zero IP address or a combination of IP address and netmask
+or prefix length separated by a slash
+.RB ( / )
+sign. In any case, the mask (or prefix length) value of
+.I OLD
+is used for
+.I NEW
+as well so that a one-to-one mapping of addresses is assured.
+
+Address translation is done using a combination of binary operations. First, the
+original (source or destination) address is matched against the value of
+.IR OLD .
+If the original address fits, the new address is created by taking the leading
+bits from
+.I NEW
+(defined by the netmask of
+.IR OLD )
+and taking the remaining bits from the original address.
+
+There is rudimental support for upper layer protocols, namely TCP, UDP and ICMP.
+While for the first two only checksum recalculation is performed, the action
+also takes care of embedded IP headers in ICMP packets by translating the
+respective address therein, too.
+.SH SEE ALSO
+.BR tc (8)
-- 
2.7.2

  parent reply	other threads:[~2016-03-04 12:12 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-04 12:11 [iproute PATCH 00/12] Add tc action man pages Phil Sutter
2016-03-04 12:11 ` [iproute PATCH 01/12] man: Add a man page for the connmark action Phil Sutter
2016-03-07 11:41   ` Jamal Hadi Salim
2016-03-04 12:11 ` [iproute PATCH 02/12] man: Add a man page for the csum action Phil Sutter
2016-03-07 11:45   ` Jamal Hadi Salim
2016-03-04 12:11 ` [iproute PATCH 03/12] man: Add a man page for the mirred action Phil Sutter
2016-03-07 12:06   ` Jamal Hadi Salim
2016-03-04 12:11 ` Phil Sutter [this message]
2016-03-04 12:11 ` [iproute PATCH 05/12] man: Add a man page for the pedit action Phil Sutter
2016-03-04 12:11 ` [iproute PATCH 06/12] man: Add a man page for the police action Phil Sutter
2016-03-07 12:23   ` Jamal Hadi Salim
2016-03-04 12:11 ` [iproute PATCH 07/12] man: Add a man page for the simple action Phil Sutter
2016-03-04 12:11 ` [iproute PATCH 08/12] man: Add a man page for the skbedit action Phil Sutter
2016-03-04 12:11 ` [iproute PATCH 09/12] man: Add a man page for the vlan action Phil Sutter
2016-03-04 12:11 ` [iproute PATCH 10/12] man: Add a man page for the xt action Phil Sutter
2016-03-04 12:11 ` [iproute PATCH 11/12] man: ship action man pages Phil Sutter
2016-03-04 12:11 ` [iproute PATCH 12/12] doc: Add my article about tc, filters and actions Phil Sutter
2016-03-05  1:40   ` Alexei Starovoitov
2016-03-05  2:21     ` Phil Sutter

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1457093507-25601-5-git-send-email-phil@nwl.cc \
    --to=phil@nwl.cc \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox