Re: [Int-area] IPv6 fragmentation for IPv4

Joe Touch <> Tue, 23 May 2017 20:21 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 75B3E12EB0E for <>; Tue, 23 May 2017 13:21:57 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -6.901
X-Spam-Status: No, score=-6.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_HI=-5, RP_MATCHES_RCVD=-0.001] autolearn=ham autolearn_force=no
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id QEYZm5TATV2E for <>; Tue, 23 May 2017 13:21:56 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 6A8D6126C0F for <>; Tue, 23 May 2017 13:21:56 -0700 (PDT)
Received: from [] ( []) (authenticated bits=0) by (8.13.8/8.13.8) with ESMTP id v4NKHLma006801 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NOT); Tue, 23 May 2017 13:17:31 -0700 (PDT)
To: "Templin, Fred L" <>, "" <>
References: <> <> <>
From: Joe Touch <>
Message-ID: <>
Date: Tue, 23 May 2017 13:17:21 -0700
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.1.1
MIME-Version: 1.0
In-Reply-To: <>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Content-Language: en-US
X-ISI-4-43-8-MailScanner: Found to be clean
Archived-At: <>
Subject: Re: [Int-area] IPv6 fragmentation for IPv4
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: IETF Internet Area Mailing List <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 23 May 2017 20:21:57 -0000

On 5/23/2017 11:49 AM, Templin, Fred L wrote:
> Hi Joe,
>> -----Original Message-----
>> From: Joe Touch []
>> Sent: Tuesday, May 23, 2017 11:01 AM
>> To: Templin, Fred L <>om>;
>> Subject: Re: IPv6 fragmentation for IPv4
>> Hi, Fred (et al.),
>> On 5/23/2017 9:17 AM, Templin, Fred L wrote:
>>> Joe, I wanted to run an idea by you. We all know that IPv4 fragmentation has
>>> problems because of the 16-bit ID field. So, why not insert an IPv6 Fragment
>>> Header between the IPv4 header and the upper layer protocol data, then
>>> use IPv6-style fragmentation instead of IPv4 fragmentation?
>> IPv4 fragmentation has several impediments:
>>     - small ID field
>>     - lack of a reassembly checksum
>>     - lack of a fixed-location flow ID
>> Using IPv6-Frag as the next header solves only the first of these. The
>> last is significant - putting a new header would defeat IPv4 flow ECMP
>> even for the first fragment.
> ECMP gateways could be updated to look at the ULP headers
> following the IPv6 Frag header in the first fragment.
They could, but...

>> IPv6 includes a flow field that serves this
>> purpose.
> How does it work for plain-old IPv4 fragmentation? 
It doesn't. That's part of the problem.

> I would think
> that ECMP gateways would look at the IP ID and try to associate
> the fragments so they all get equal ECMP treatment, i.e., the
> same as for vanilla IPv4.
AFAICT, they largely either drop fragments or send them based on the
base IPv4 header.

I wonder whether NATs deal with this issue correctly. I doubt either one
keeps per-ID state.

(FWIW, IMO, anything that needs to look past the IP header really ought
to reassemble - if you think that's not something an IP router should
do, neither do I - but then I don't think routers should be looking past
the IP header either).