Linux Netfilter discussions
 help / color / mirror / Atom feed
From: Jesse Molina <jesse@opendreams.net>
To: netfilter@vger.kernel.org
Subject: How do we arp for NAT?  Secondary IPs, proxy arp? something else?
Date: Sun, 24 May 2009 03:37:19 -0700	[thread overview]
Message-ID: <4A19235F.4070306@opendreams.net> (raw)


Hello

I've googled all over and I don't really see an obvious answer to the 
question that I have.

Here is my situation:  I have a GNU/Linux host performing very typical 
firewall duties;  two interfaces, one with an Internet public IP and 
another interface on an RFC1918 net.  Hosts on the RFC1918 net have 
iptables SNATs to public IPs and then I filter to allow some services in 
and others not, with stateful inspection in forwarding.

Normally, in order to get the multiple public IPs for these SNAT'ed 
hosts to respond to arp requests from the firewall, I simply add them as 
secondary IPs on the public interface of the firewall (eth0:1, eth0:2,...).

The problem with this is that the firewall itself runs some services and 
they have the potential to use these secondary IPs as their ephemeral 
source addresses when they reach out to something on the Internet! 
That's bad, as those IPs should be exclusively used by only the hosts 
for which they were designed for.  Assume I have no control over the 
applications which bind to a local interface to use for their outbound 
session traffic.

It seems like using these secondary addresses is not the right thing to do.

Is there a better way to make the firewall arp for these public IPs that 
are SNAT mapped to the internal RFC1918 IPs?  This is a little like 
proxy arp, but that involves the same layer 3 IP network physically 
split by interfaces (think dialup NAS), and since these are different 
networks, I don't imagine this is applicable.

What else is there?  Loop interfaces with proxy arping?  I've been 
reading about some functionality for NAT in the ip tool (ip route add 
nat ...) but it looks depreciated.  There also seems to be something 
like "ip rule add nat ..." but I've not figured that out yet.  I had 
read somewhere that "ip route add nat ..." specifically would arp for 
the translated address, but again, the man pages says that's depreciated 
in the 2.6 kernel.

How do others handle this?



-- 
# Jesse Molina
# Mail = jesse@opendreams.net
# Page = page-jesse@opendreams.net
# Cell = 1.602.323.7608
# Web  = http://www.opendreams.net/jesse/



             reply	other threads:[~2009-05-24 10:37 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-05-24 10:37 Jesse Molina [this message]
2009-05-24 11:19 ` How do we arp for NAT? Secondary IPs, proxy arp? something else? Tore Anderson
2009-05-24 21:02   ` Jesse Molina
2009-05-24 21:55     ` Tore Anderson
2009-05-24 23:27     ` Mike Wright
2009-05-25  9:14     ` Pascal Hambourg
2009-05-29  8:09       ` Jesse Molina
2009-06-12  7:12       ` Jesse Molina
     [not found] ` <20090524164956.6f3fa24e@catlap>
2009-05-24 21:15   ` Jesse Molina
2009-05-25  4:51 ` Robert Nichols
2009-05-25  7:21 ` Покотиленко Костик

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=4A19235F.4070306@opendreams.net \
    --to=jesse@opendreams.net \
    --cc=netfilter@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