On 2018-07-30 11:16, Tom Herbert wrote:

> On Mon, Jul 30, 2018 at 10:34 AM, Joe Touch <to...@strayalpha.com> wrote: 
> 
>> On 2018-07-30 08:11, Tom Herbert wrote:
>> 
>> On Sun, Jul 29, 2018 at 9:22 AM, Joe Touch <to...@strayalpha.com> wrote:
>> 
>> On Jul 29, 2018, at 9:11 AM, Tom Herbert <t...@herbertland.com> wrote:
>> 
>> ...
>> 
>> That said, there's no real problem with a NAT *IF* it acts as a host on the
>> Internet
>> (see ouch, J: Middlebox Models Compatible with the Internet. USC/ISI
>> (ISI-TR-711), 2016.)
>> 
>> Joe,
>> 
>> It's still a problem though. A NAT (or any stateful device in the
>> network) forces the requirement in network architecture that all
>> packets of a flow are routed through the same device.
>> 
>> I didn't make that requirement. The Internet does - it's what it *means* to
>> have an IP address.
>> 
>> It's not a requirement of the Internet and certainly not a core IETF
>> requirement that packets always follow the same path. It's an ad hoc
>> requirement imposed by _some_ solutions that have been deployed.
>> 
>> 1122 requires that devices shouldn't be sourcing IP addresses they don't
>> own.
>> 
>> And any device behind a NAT would have a similar requirement - that the
>> private side is setup such that any translation appears as a single device
>> -- which means either that each host on the private side forwards all its
>> traffic to one egress (as a stub net) or that the multiple egresses
>> coordinate state to look like one egress on the private side and one host on
>> the public side.
>> 
>> I.e., the Internet architecture imposes exactly the restrictions you note -
>> these aren't ad-hoc, they're derived from the Internet requirements.
> IP is packet switched not circuit switched. Other than the source and
> destination nodes, no two packets sent on a flow are required to
> traverse the same nodes, nor does there need to be any symmetry in the
> path between two directions of communication. If this is an incorrect
> interpretation of the requirements then please reference the RFC that
> states otherwise.

RFC1122 says that an address belongs to one interface. 

So if you have a system that treats internet addresses as belonging to
more than one device, that's on you to make sure they ACT like one
device. 

You can have a host on the private side use multiple egress NATs for
different connections, but the reverse traffic has to treat the two as
if they were one device. If putting those devices in the middle of the
network means you can't see the traffic to make that happen, then you've
deployed the devices incorrectly or insufficiently configured them to
act as a single unit. 

> ... 
> The mechanism (specifically the requirement that packets traverse
> intermediate nodes that are not addressed) breaks multi-homing. All
> the hacks and hoops we've had to jump through over the years to make
> NAT, stateful firewalls, and L4 load balancers work attest to this
> being a real problem.

*traversing* intermediate nodes is not an issue. It's changing addresses
and ports that is. 

Once you do either thing, you're a host - ONE logical host for every IP
address you do this with. If you deploy a device that intends to act
this way that can't see all the traffic it should be receiving - or
deploy a device behind it that isn't represented by exactly one such
device - then it is your device and/or its deployment that is broken. 

Oh, and I have no debate that people deploying badly designed devices
and/or doing so in incorrect ways is a real problem. It's just not MY
problem, nor do I think it should be the IETF's. 

Joe
_______________________________________________
Int-area mailing list
Int-area@ietf.org
https://www.ietf.org/mailman/listinfo/int-area

Reply via email to