Re: [Int-area] New Version Notification for draft-bonica-intarea-lossless-pmtud-00.txt

Joe Touch <touch@strayalpha.com> Fri, 29 November 2019 17:01 UTC

Return-Path: <touch@strayalpha.com>
X-Original-To: int-area@ietfa.amsl.com
Delivered-To: int-area@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CD987120896 for <int-area@ietfa.amsl.com>; Fri, 29 Nov 2019 09:01:47 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.219
X-Spam-Level:
X-Spam-Status: No, score=-1.219 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, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NEUTRAL=0.779] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=strayalpha.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id sNld8SmvmANm for <int-area@ietfa.amsl.com>; Fri, 29 Nov 2019 09:01:45 -0800 (PST)
Received: from server217-3.web-hosting.com (server217-3.web-hosting.com [198.54.115.226]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A752512086C for <int-area@ietf.org>; Fri, 29 Nov 2019 09:01:45 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=strayalpha.com; 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=EL76px9Mb0Ng9oYOjQjWIpJMUXxLzKDKjpT1Hj9yIew=; b=bzrTMvTIfCT2EKgRxxknSKK6e stJQD1VCEq0FoDeZ1lwZK1qyfPOK7mlZPc6MPQ6pWXvnM8BlYvLp0prXqYZsTqtan0oDyXC5e+gwx gi2H0r85ffhAP3ehjp3xPk/MLR7yFuS/aWYSK8WKCKWh0k5ZQvPzEsNNEJUR5f32iG+pp/ZsL1UjN kfsz00TbkfFZY+ssGEAPt/y7BGVPhvWcHVk9ZEk6ZMN1oUzHZ818GQ1Nq3h3AauVWhbbfrdJVIkQb JY7H0Yo3sAem2TT5XBVVXQ8YnnW6EhtNA901PYbPxFZD9bJqOss8zTB9qRJZIO8yQUbLiLBeTe87H Cvz9WKqTw==;
Received: from cpe-172-250-225-198.socal.res.rr.com ([172.250.225.198]:55736 helo=[192.168.1.10]) by server217.web-hosting.com with esmtpsa (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256) (Exim 4.92) (envelope-from <touch@strayalpha.com>) id 1iajeF-001K2f-Vc; Fri, 29 Nov 2019 12:01:45 -0500
Content-Type: multipart/alternative; boundary="Apple-Mail=_6DA105C9-BA97-4D12-8C48-3A98031605A4"
Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\))
From: Joe Touch <touch@strayalpha.com>
In-Reply-To: <3753DCBC-CFA7-4E02-B964-05A6C1F92629@juniper.net>
Date: Fri, 29 Nov 2019 09:01:35 -0800
Cc: "int-area@ietf.org" <int-area@ietf.org>
Message-Id: <618EA608-448A-44DC-9142-0A9E8AAB1451@strayalpha.com>
References: <81496B9A-2325-47FB-994D-C287CEFFE4D9@juniper.net> <C8B1D481-F7E8-4E49-903D-D9FD46001759@strayalpha.com> <6D2E4CE7-DB76-4739-BC1C-F3170011BA97@juniper.net> <345B3B4F-A5C7-4293-9B41-6481FBB43709@strayalpha.com> <D0B78761-5F04-485A-A676-64FE77D29314@juniper.net> <3753DCBC-CFA7-4E02-B964-05A6C1F92629@juniper.net>
To: Manoj Nayak <manojnayak@juniper.net>
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 - server217.web-hosting.com
X-AntiAbuse: Original Domain - ietf.org
X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12]
X-AntiAbuse: Sender Address Domain - strayalpha.com
X-Get-Message-Sender-Via: server217.web-hosting.com: authenticated_id: touch@strayalpha.com
X-Authenticated-Sender: server217.web-hosting.com: touch@strayalpha.com
X-Source:
X-Source-Args:
X-Source-Dir:
X-From-Rewrite: unmodified, already matched
Archived-At: <https://mailarchive.ietf.org/arch/msg/int-area/OPbDf7jz8WdaaysvFBrS1y35iVQ>
Subject: Re: [Int-area] New Version Notification for draft-bonica-intarea-lossless-pmtud-00.txt
X-BeenThere: int-area@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF Internet Area Mailing List <int-area.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/int-area>, <mailto:int-area-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/int-area/>
List-Post: <mailto:int-area@ietf.org>
List-Help: <mailto:int-area-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/int-area>, <mailto:int-area-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 29 Nov 2019 17:01:48 -0000


> On Nov 29, 2019, at 2:03 AM, Manoj Nayak <manojnayak@juniper.net> wrote:
> 
> Hello Joe,
>  
> Sorry for the delayed response.
>  
> >> - why does this doc assume the max ICMP is 576?
> >>     we?re still talking IPv4 here; it?s still 68 (that?s why only 64 bits of the orig payload are guaranteed)
> >>     (yes, your note in the end of sec 1 is relevant, but given v4-in-v4 tunneling, it?s possible that
> >> paths might be smaller than the 576 assumption)
>  
> >> We use an unused field in first 8 bytes of ICMP error/reply message.
>  
> >> Please explain. Most ICMP messages have 4 bytes of unused field, but not all (one has only 3).
>  
>  
>       As per RFC 1191,  Destination Unreachable Message has 8 bytes unused field.

DU has only 4 bytes unused, per RFC792.

Destination Unreachable Message

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Type      |     Code      |          Checksum             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                             unused                            |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |      Internet Header + 64 bits of Original Data Datagram      |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

RFC1191 uses half that space:

   ...To support the Path MTU Discovery
   technique specified in this memo, the router MUST include the MTU of
   that next-hop network in the low-order 16 bits of the ICMP header
   field that is labelled "unused" in the ICMP specification [7 <https://tools.ietf.org/html/rfc1191#ref-7>].  The
   high-order 16 bits remain unused, and MUST be set to zero.

>      
>        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
>       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>       |   Type = 3    |   Code = 4    |           Checksum                                 |
>       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>       |           unused = 0          |         Next-Hop MTU                                |
>       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>       |      Internet Header + 64 bits of Original Datagram Data            |
>       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The diagram above  is from 1191 - there are 2 bytes unused.

>   Most of ICMP reply/error message need type, code and checksum in first four bytes.
>   So our new ICMP message for this draft has the above three fields in first four bytes.
>   We have used 1 byte for length and two bytes for Largest fragment. Our ICMP
>   Package looks as follows:
>  
>         0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
>        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>        |     Type      |     Code      |          Checksum             |
>        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>        |     Unused    |    Length     |       Largest Fragment        |
>        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>        |                      Original Datagram                                                        |
>        |                                                                                                              |
>        |                           //                                                                                |
>        |                                                                                                               |
>        +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

You’re not using 8 unused bytes. You are following RFC792 for the first three fields (first 4 bytes) and defining a new template for the next 4. 

>   If the packet mentioned in RFC 1191 does not have any issue with tunnel
>   then

It does because it doesn’t include the entire original datagram….

> how tunnel can create problem for our packet.
>     
> >> Sending the largest response possible given an untunneled MTU size is an invitation
> >> to black-hole the response itself if (when) an IPv4-in-IPv4 tunnel is encountered.
> >> In most situations, ICMP responses are received from small initial messages that don’t
> >> stress that limit. The use in this doc is the opposite - it relies on ongoing use of ICMP
> >> for max-sized packets and returns max-sized payloads. This isn’t helpful. It would be more
> >> useful to try to limit the size to the minimum expected to be useful and account for
> >> these other encapsulations.
>  
> We have mentioned that Original Datagram will be there in the third row of our ICMP packet.
> However Internet Header + 64 bits of Original Datagram Data is good enough for us
> to link our ICMP packet to the original packet that has generated this ICMP packet
> at the sender.

IH is a min of 20 bytes (for IPv4). The next 8 bytes of the tunnel header might not be enough to determine what to do with the ICMP message.

>  >> The issue is further down in that section:
> >>      One other fragmentation technique discussed was splitting the IP
> >>      datagram into approximately equal sized IP fragments, with the
> >>      size less than or equal to the next hop network's MTU. ...
> >> In that case, none of the fragments gives you the path MTU.
>  
> The first fragment is the largest fragment when all fragments are equal sized.

It is the largest - but not the path MTU.

You claim that this technique will find the path MTU, but it will not in that case - and you can’t know when case occurs.

Joe