From: "John A. Sullivan III" <jsullivan@opensourcedevel.com>
To: "Pedro Gonçalves" <pedro.pandre@gmail.com>
Cc: netfilter@lists.netfilter.org
Subject: Re: Fwd: IPTables and different types of NAT
Date: Thu, 08 Feb 2007 10:05:42 -0500 [thread overview]
Message-ID: <1170947142.7172.6.camel@localhost> (raw)
In-Reply-To: <45CB381C.3030301@gmail.com>
When we started automating the creation of NAT rules in the ISCS open
source network security management framework
(http://iscs.sourceforge.net), we were quickly amazed at how complicated
it is once one steps away from the most basic forms.
Ultimately, we did automate the creation of SNAT, DNAT and NETMAP rules
for one-to-one, many-to-one, one-to-many, some-to-many, many-to-some,
overlapping and nested NAT using something we called the "sliding
marble" algorithm.
We did separate access control from NAT so that we could preserve the
highly granular and modular access control rules created by ISCS and
simply integrate it with NAT. It was a daunting task that set us back
three months but it all works.
The algorithms and logic are all in the development docs in the ISCS CVS
or, if you just want the end result, that part of ISCS is fully
functional and ready for at least beta use.
So, yes, we have done some very complicated NAT setups but have also
separated access control from NAT - John
On Thu, 2007-02-08 at 14:47 +0000, Pedro Gonçalves wrote:
> I still don't have a clear answer whether it is possible or not to
> implement all types of NAT.
>
> So, has anyone implemented *any* kind of NAT?
> If so, how have you done?
>
> Best Regards
> Pedro
>
>
> ---------- Forwarded message ----------
> From: *Grant Taylor* <gtaylor@riverviewtech.net
> <mailto:gtaylor@riverviewtech.net>>
> Date: Feb 7, 2007 7:01 PM
> Subject: Re: IPTables and different types of NAT
> To: Mail List - Netfilter <netfilter@lists.netfilter.org
> <mailto:netfilter@lists.netfilter.org>>
>
> Pascal Hambourg wrote:
> > No. Please read more carefully the definitions of "restricted cone NAT"
> > and "port restricted cone NAT". Neither can be implemented with iptables
> > because they do not fit in the per-connection model.
>
> """With restricted cone NAT, all requests from the same internal IP
> address and port are mapped to the same external IP address and port.
> Unlike a full cone NAT, an external host can send a packet to the
> internal host only if the internal host had previously sent a packet to
> it."""
>
> """Port restricted cone NAT or symmetric NAT is like a restricted cone
> NAT, but the restriction includes port numbers. Specifically, an
> external host can send a packet to a particular port on the internal
> host only if the internal host had previously sent a packet from that
> port to the external host."""
>
> The only other thing that comes to mind is that IPTables by its self
> does not by default filter based on connection(s) and / or state.
> However, there are match extensions that can be used to augment a basic
> IPTables rule to do just that. I.e. CONNMARK in conjunction with MARK.
>
> > "Symmetric NAT" works on a per-connection basis and is the NAT form that
> > is the easiest to implement with iptables using SNAT or MASQUERADE.
>
> I understood Symetric NAT to be a form of "one to many" or "many to
> many" NATing. The key part being the "... to many" in where multiple
> external IPs would be used. I know that it is possible (though I have
> not done it) to specify a range to SNAT traffic with IPTables to a range
> of IP addresses. I was not aware that MASQUERADE would do the same
> thing. I was under the impression that MASQUERADE used the single IP on
> an interface as the IP to SNAT traffic to.
>
>
>
> Grant. . . .
>
--
John A. Sullivan III
Open Source Development Corporation
+1 207-985-7880
jsullivan@opensourcedevel.com
Financially sustainable open source development
http://www.opensourcedevel.com
next prev parent reply other threads:[~2007-02-08 15:05 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-02-07 15:49 IPTables and different types of NAT Pedro Gonçalves
2007-02-07 16:19 ` Grant Taylor
2007-02-07 18:10 ` Pascal Hambourg
2007-02-07 18:23 ` Pedro Gonçalves
2007-02-07 19:01 ` Grant Taylor
2007-02-08 14:47 ` Fwd: " Pedro Gonçalves
2007-02-08 15:05 ` John A. Sullivan III [this message]
[not found] ` <da3a2a260702081118h69944d01g329cf1ae2ac63298@mail.gmail.com>
[not found] ` <45CB83E0.7020305@gmail.com>
[not found] ` <da3a2a260702090827pab52a51kcf71452c85c81fb@mail.gmail.com>
2007-02-09 16:37 ` Pedro Gonçalves
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=1170947142.7172.6.camel@localhost \
--to=jsullivan@opensourcedevel.com \
--cc=netfilter@lists.netfilter.org \
--cc=pedro.pandre@gmail.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.