[135050] in North American Network Operators' Group

home help back first fref pref prev next nref lref last post

Re: Is NAT can provide some kind of protection?

daemon@ATHENA.MIT.EDU (Owen DeLong)
Sat Jan 15 17:07:00 2011

From: Owen DeLong <owen@delong.com>
In-Reply-To: <20EB8EFD-44A4-49D2-9B3A-C55D133BFF21@smtps.net>
Date: Sat, 15 Jan 2011 14:01:46 -0800
To: Brian Keefer <chort@smtps.net>
Cc: NANOG list <nanog@nanog.org>
Errors-To: nanog-bounces+nanog.discuss=bloom-picayune.mit.edu@nanog.org


On Jan 15, 2011, at 1:16 PM, Brian Keefer wrote:

> On Jan 12, 2011, at 9:21 AM, George Bonser wrote:
>=20
>>>=20
>>> I'd eat a hat if a vendor didn't implement a PAT equivalent. It's
>>> demanded too much. There is money for it, so it will be there.
>>>=20
>>>=20
>>> Jack
>>=20
>> Yeah, I think you are right.  But in really thinking about it, I =
wonder
>> why.  The whole point of PAT was address conservation.  You don't =
need
>> that with v6.  All you need to do with v6 is basically have what =
amounts
>> to a firewall in transparent mode in the line and doesn't let a =
packet
>> in (except where explicitly configure to) unless it is associated =
with a
>> packet that went out.
>>=20
>> PAT makes little sense to me for v6, but I suspect you are correct.  =
In
>> addition, we are putting the "fire suit" on each host in addition to =
the
>> firewall. Kernel firewall rules on each host for the *nix boxen. =20
>=20
> Actually there are a couple very compelling reasons why PAT will =
probably be implemented for IPv6:
> 1.)  Allows you to redirect a privileged port (on UNIX) to a =
non-privileged port.  For daemons that don't implement some form of =
privilege revoking after binding to a low port (and/or aren't allowed to =
run as root), this is very useful.  It's much easier to have a firewall =
redirect than to implement robust privilege revoking.  Example: PAT =
25/tcp -> 2525/tcp.
>=20
Actually, that's just port rewriting which is mostly harmless. PAT =
refers, instead, to a stateful
translation which is most definitely not harmless.

> 2.)  Allows you to redirect multiple ports to a single one, to support =
legacy implementations.  Suppose your application used to require =
separate ports for different types of requests, but now is able to =
multiplex them.  The new daemon only listens on one port, but other =
applications may not have updated their configuration.  Example:  PAT =
4443/tcp -> 443/tcp & PAT 8443/tcp -> 443/tcp.
>=20
That's a pretty ugly situation, but, it would require a stateful =
mechanism to address it. I think it is much cleaner to have the daemon =
listen on the multiple ports.

> Basically the idea is that implementing PAT for IPv6 allows smoother =
transition for apps that made use of it in IPv4, thus accelerating the =
adoption of IPv6.
>=20
I think the lack of IPv4 resources will soon serve as sufficient =
acceleration of IPv6 adoption.

Owen



home help back first fref pref prev next nref lref last post