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

Joe Touch <> Tue, 31 July 2018 00:43 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 0D3F61311BF; Mon, 30 Jul 2018 17:43:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.989
X-Spam-Status: No, score=-1.989 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] 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 C7XpkhDDZoDx; Mon, 30 Jul 2018 17:42:57 -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 A0BEE1311BD; Mon, 30 Jul 2018 17:42:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;; s=default; h=To:References:Message-Id:Cc:Date:In-Reply-To: From:Subject:Mime-Version:Content-Type: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=1FExG2Y7nRgPM5Q9DzyuXQwugTBlSjnp1rFPxqjZ/OE=; b=DduIa59nBOb+HK9Kly6wabUy0 TEJ2Cy8aGYZCiaifAWLBZ8k2K3TkJzBPUJRI5gqz6wnS7mlLRo8qbgZW+luPkBpbNyUoMChUObQLE TZhDok5rThNP0fzC6eSV8kLM91l+8py+K8Ytru3B9c5VCXl7vwYbcRwNZyXz3NxEYSr5QXpq2tfIJ c5qHsXPWW3jIi4w3Dq9yujYte/o7si32cwZMfflDDW0ONPP8cZtTv97uF6m87zZqrBouSGb8TZ8E7 2S4hSfc23EM4rAp2Diuu31tmtuEzsA+u8EAUr1pABLBFlFa13HwsduGKwre45iH800iYP0+yOMPd8 ehbtdrwGw==;
Received: from ([]:56052 helo=[]) by with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.91) (envelope-from <>) id 1fkIkY-003Ews-Pm; Mon, 30 Jul 2018 20:42:56 -0400
Content-Type: multipart/alternative; boundary="Apple-Mail=_E31BCD3F-C51B-447B-8B80-8F8C84E815F6"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Joe Touch <>
In-Reply-To: <>
Date: Mon, 30 Jul 2018 17:42:53 -0700
Cc: Ole Troan <>, "" <>,
Message-Id: <>
References: <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <>
To: Tom Herbert <>
X-Mailer: Apple Mail (2.3445.9.1)
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: Tue, 31 Jul 2018 00:43:13 -0000

> On Jul 30, 2018, at 12:13 PM, Tom Herbert <> wrote:
> On Mon, Jul 30, 2018 at 11:50 AM, Joe Touch < <>> wrote:
>> 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 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,
> I agree, except that a BCP like this is making practical (and current)
> recommendations that take into account the protocols have been
> commonly implemented regardless of whether they are conformant.

I don’t want to codify implementation and/or deployment errors in a way that has a long-term bad impact on the Internet as a whole.

> From
> that perspective, it does seem to be IETF's problem. I think this is
> reasonable assuming that it's clear why such recommendations are being
> made. If they're being made in order to workaround non-confomant
> implementations then that should be highlighted as such.

Yes, and the hazard is that we can’t make protocols (inherently “rules”) to deal with people or systems that don’t follow rules (i.e., laws for the lawless are not productive).

> In no way
> should such recommendations be interpreted as acceptance of
> non-conformance.

That indeed is the trick.

> The need for fragmentation cannot be completely
> eliminated and we do need it to work. Devices that do things to
> prevent correct operation still need to be fixed, and it would be
> productive for the draft to include statements on how some of the
> sub-problems problems can be fixed (like using flow label for ECMP
> instead of ports).

On that we agree. That’s my key concern - how to do this in a way that doesn’t effectively kill off IP fragmentation for the rest of us.


> Tom
>> Joe