Re: [Int-area] WG Adoption Call: IP Fragmentation Considered Fragile

Joe Touch <> Mon, 30 July 2018 18:50 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 48009130DF3; Mon, 30 Jul 2018 11:50:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.988
X-Spam-Status: No, score=-1.988 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id UjPfZn9j9-US; Mon, 30 Jul 2018 11:50:37 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 0F8B0130DE9; Mon, 30 Jul 2018 11:50:37 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;; s=default; h=Message-ID:References:In-Reply-To:Subject:Cc: To:From:Date:Content-Type:MIME-Version:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id: List-Help:List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=LsUMtyhkuHvSMzf1FJQoSb9nKQROtTgQUqzfYGxZffY=; b=q4Ux83YYqBUeSZkohSBWozd/m lW2GJ6czzEQ1bxU0Xcfid7wtaq85tNbJPCNLorJFAtoJoe0KFUye2RBvou0UE1evB872dQx3vlxTR WgHB/W3+ZkgJmoGlSqN/Cc1by05twdCDyCJeMaEpKFlqg73cQuyNY0XR+I5VDh99QxwS/XE7zcsgR BNo+AfPkv+ZDtouLAx2S5vZ59HECbN9UYEzVbyMgvbDk5bKm8HX19iHgbR1+xKQS/fNQXT5W5lkPp 9mFRZcSybB2ArGYRatPdzsXTccUnFWXeywgZcEnX/bfGkidU1aVEW1Jc2mNPbiwFDutsjwRTfc5b1 pO2EqGL7g==;
Received: from [::1] (port=55040 by with esmtpa (Exim 4.91) (envelope-from <>) id 1fkDFa-002nqC-MC; Mon, 30 Jul 2018 14:50:35 -0400
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="=_f796af4b5c7926ca535c389015f58f39"
Date: Mon, 30 Jul 2018 11:50:34 -0700
From: Joe Touch <>
To: Tom Herbert <>
Cc: Ole Troan <>, "" <>,
In-Reply-To: <>
References: <> <> <> <> <> <> <> <> <> <> <> <> <> <>
Message-ID: <>
User-Agent: Roundcube Webmail/1.3.3
X-OutGoing-Spam-Status: No, score=-1.0
X-AntiAbuse: This header was added to track abuse, please include it with any abuse report
X-AntiAbuse: Primary Hostname -
X-AntiAbuse: Original Domain -
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain -
X-Get-Message-Sender-Via: authenticated_id:
X-From-Rewrite: unmodified, already matched
Archived-At: <>
Subject: Re: [Int-area] WG Adoption Call: IP Fragmentation Considered Fragile
X-Mailman-Version: 2.1.27
Precedence: list
List-Id: IETF Internet Area Mailing List <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Mon, 30 Jul 2018 18:50:39 -0000

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

> On Mon, Jul 30, 2018 at 10:34 AM, Joe Touch <> wrote: 
>> On 2018-07-30 08:11, Tom Herbert wrote:
>> On Sun, Jul 29, 2018 at 9:22 AM, Joe Touch <> wrote:
>> On Jul 29, 2018, at 9:11 AM, Tom Herbert <> 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

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.