RE: End System PMTUD behavior question

Pekka Savola <> Fri, 23 January 2009 06:04 UTC

Return-Path: <>
Received: from [] (localhost []) by (Postfix) with ESMTP id B3DC53A68C4; Thu, 22 Jan 2009 22:04:33 -0800 (PST)
Received: from localhost (localhost []) by (Postfix) with ESMTP id 84C8F3A689C for <>; Thu, 22 Jan 2009 22:04:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -2.564
X-Spam-Status: No, score=-2.564 tagged_above=-999 required=5 tests=[AWL=0.035, BAYES_00=-2.599]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id RmxT-iyoN4rz for <>; Thu, 22 Jan 2009 22:04:30 -0800 (PST)
Received: from ( [IPv6:2001:670:86:3001::1]) by (Postfix) with ESMTP id 0AA753A6801 for <>; Thu, 22 Jan 2009 22:04:29 -0800 (PST)
Received: from (localhost []) by (8.13.8/8.13.8) with ESMTP id n0N63JwZ005027; Fri, 23 Jan 2009 08:03:19 +0200
Received: from localhost (pekkas@localhost) by (8.13.8/8.13.8/Submit) with ESMTP id n0N63Ir8005023; Fri, 23 Jan 2009 08:03:18 +0200
Date: Fri, 23 Jan 2009 08:03:18 +0200 (EET)
From: Pekka Savola <>
Subject: RE: End System PMTUD behavior question
In-Reply-To: <>
Message-ID: <>
References: <3C6F21684E7C954193E6C7C4573B762701D3DD67DA@IMCMBX1.MITRE.ORG><><3C6F21684E7C954193E6C7C4573B762701D3DD69E6@IMCMBX1.MITRE.ORG> <> <>
User-Agent: Alpine 2.00 (LRH 1167 2008-08-23)
MIME-Version: 1.0
Content-Type: MULTIPART/MIXED; BOUNDARY="1589707168-1135482102-1232690599=:4544"
X-Virus-Scanned: ClamAV 0.94.2/8893/Thu Jan 22 22:18:43 2009 on
X-Virus-Status: Clean
X-Mailman-Version: 2.1.9
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
Errors-To: This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools.

On Fri, 23 Jan 2009, wrote:
> For example, if a user does a "ping -s 1500" to a destination whose PMTU is 1280, the only way to avoid IP fragmentation is for the ping
> application to split the data into multiple messages, or for IPCMPv6 to do so. Either way, you have to introduce some way to identify them
> as "ping fragments" and reassemble them in order. That will require changes to the ICMPv6 protocol, I think. Furthermore, you're no longer
> really doing a "ping 1500", but two pings of 1280 and 220 bytes, respectively.

FWIW, what Remi said, different ping programs probably do this 
differently.  And good ones allow you to do exactly what you want 
(this is from Linux)

        -M hint
               Select Path MTU Discovery strategy.  hint may be either _do_ (prohibit fragmentation, even local one), _want_ (do PMTU
               discovery, fragment locally when packet size is large), or _dont_ (do not set DF flag).

When I use ping to figure out Path MTU issue, I usually have to run 
tcpdump on the side to be 100% sure how ping is actually behaving, 
because additionally, there's also PMTU caching on the local host. 
Some older versions also didn't support '-M do' properly for IPv6.

So there are quite a few things that could lead to non-deterministic 

Pekka Savola                 "You each name yourselves king, yet the
Netcore Oy                    kingdom bleeds."
Systems. Networks. Security. -- George R.R. Martin: A Clash of Kings
IETF IPv6 working group mailing list
Administrative Requests: