Re: [MBONED] mboned: UDP port conflict mtrace/traceroute

Warren Kumari <warren@kumari.net> Fri, 13 September 2019 20:13 UTC

Return-Path: <warren@kumari.net>
X-Original-To: mboned@ietfa.amsl.com
Delivered-To: mboned@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3F14812012A for <mboned@ietfa.amsl.com>; Fri, 13 Sep 2019 13:13:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=kumari-net.20150623.gappssmtp.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 RwJ8UfT_tkou for <mboned@ietfa.amsl.com>; Fri, 13 Sep 2019 13:13:45 -0700 (PDT)
Received: from mail-qt1-x82d.google.com (mail-qt1-x82d.google.com [IPv6:2607:f8b0:4864:20::82d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 215AF120116 for <mboned@ietf.org>; Fri, 13 Sep 2019 13:13:45 -0700 (PDT)
Received: by mail-qt1-x82d.google.com with SMTP id j1so22681666qth.1 for <mboned@ietf.org>; Fri, 13 Sep 2019 13:13:45 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kumari-net.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=RjiaQ/KkgIqgKHYDZXlUj/oDXEPLggBHVdATATvvPSU=; b=jrCUcX5DjkDZzwRRg3WOkuTbo+czBJlcOAMaXTQZSSp07/jpJTVRDbU4aCZqlLfGlJ D1ZWp1Pa1QxYq2GOJAK64Psngb2v4LPl4a+cM9lFON1nnL2MZhjEPOJqOjGEvQxqJEXx ymRdlLG76sCL1lPn2k5cTxekYXaV1iBOhZ0JB50mNfJujS4jYiQ2f1YuLnAItoq3f2m4 B1sRn/2zhL3YmjhxJ001ZOcUU3IPU8Wblt/ZdtjZrVX0IkS+Qqkj+HwAv9lD7s2ki3cL 6WNUTogIxfX+Avcusz6RO2ZkhaD1b5uyQqCkMGucbmWtc37VG7De3gvIkoUlwUR1g2+l NKqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=RjiaQ/KkgIqgKHYDZXlUj/oDXEPLggBHVdATATvvPSU=; b=EGrizp7dxfB3UdMUTqOHSNVoAFMXrDbucrDlKOd35LxavWqxeV+LzDXW26Hsd+Dk11 qkjKHmbyjjPezgIvHGDEyWHPABCVzXDx69VxIB0BaO1waqa9b2zculu2UBFS2nX/tW/U 2fhFOt8iN4r/Ukd17zkJphkiAXHkTFH2z3ZfHyLg6S6b3kWve5Oron/RkBPWAsO/khan GgSF89KvCXofcZ671X7XTWlGxcNBh00oL/KzDQ1mu5B82Y6SWZrV+kGoNpUdOAHWNPAo MgBNER9/qmjVjpMoaO4A/1Fal38hW1C4+dlzSxpWWVx0XXvtd264zesSt/SYnPP2obYJ oMzQ==
X-Gm-Message-State: APjAAAXbGPBzAdOc28wfHVqFkcNgcN1r5m3TZOz+PO9nzQnhgEjFQ/eU 81CfsKROZ+Br0v147lOt6YWPBkUCIVX+1nA2YJ5Utg==
X-Google-Smtp-Source: APXvYqyEcGs8dGj8/c6WswdCk8ediUfDcb0UZOKsaFcvgM2oHvTRwsNli1Gwj9FfnHVYYF5uN93HVfQ2YJgGcJArc5s=
X-Received: by 2002:ac8:469a:: with SMTP id g26mr5122928qto.265.1568405623607; Fri, 13 Sep 2019 13:13:43 -0700 (PDT)
MIME-Version: 1.0
References: <CAH8Jh6DSMMyjtzTn5yKqWdsio40nMjkreUMyMkc8mJGAFdYK4Q@mail.gmail.com> <BA0AA020-AE9D-441A-9AF2-DF847F1D9597@strayalpha.com> <CAHw9_iJCk6ym_CoXca8zgSsN7qCx-iAzsTg2-hV+SWHRz2D17g@mail.gmail.com> <2ba7bbf42e6d007b83d024ef11c24070@strayalpha.com> <CAHw9_iJsHGyttCw6UCQYzc2gEy4Rf+v=dTa9OyKOTaoZxEFtPQ@mail.gmail.com> <aec642641abccd91e5bd39deba049e39@strayalpha.com> <CAHw9_iKf25RTQuESdyW9a1U1n3EnR54yOo42+0nbW922Yxj8-g@mail.gmail.com>
In-Reply-To: <CAHw9_iKf25RTQuESdyW9a1U1n3EnR54yOo42+0nbW922Yxj8-g@mail.gmail.com>
From: Warren Kumari <warren@kumari.net>
Date: Fri, 13 Sep 2019 16:13:07 -0400
Message-ID: <CAHw9_i+oy36uDoBLSn5uF4UKkTpcZ9Up_ziDW6pfwwmkEG41jg@mail.gmail.com>
To: Joe Touch <touch@strayalpha.com>, Hitoshi Asaeda <asaeda@ieee.org>
Cc: "James A. (Jim) Stevens" <james.a.stevens=40collins.com@dmarc.ietf.org>, MBONED WG <mboned@ietf.org>, Leonard Giuliano <lenny@juniper.net>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/mboned/uX_rxXTkcdw8QFjHlZf78VehNuw>
Subject: Re: [MBONED] mboned: UDP port conflict mtrace/traceroute
X-BeenThere: mboned@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Mail List for the Mboned Working Group <mboned.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mboned>, <mailto:mboned-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mboned/>
List-Post: <mailto:mboned@ietf.org>
List-Help: <mailto:mboned-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mboned>, <mailto:mboned-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 13 Sep 2019 20:13:48 -0000

[ TOP-POST]


Aaaaarggh! As Leonard pointed out (offlist, to save me the
embarrassment of being an idiot) I have a typo throughout this -- the
Dst is 10.0.4.1, not 10.0.5.1 (I'd initially had 2 and hosts, and 4
routers, but that was overly verbose, and so I removed the last
router, and forgot to renumber). Also, in Step 4, the TTL should
clearly be 4, not 43.
That'll larn me to try type long emails on a phone...

w

On Thu, Sep 12, 2019 at 4:04 PM Warren Kumari <warren@kumari.net> wrote:
>
> Hitoshi / MBONED,
>
> Can you please explain in baby words (small enough that even I can
> understand!) how the failures actually occur.
>
> I keep going through it step by step, and it all makes sense... and
> then suddenly I confuse myself and it all escapes... <insert confused
> baby meme here>
>
> Let's use this as the scenario (I'm using RFC1918 space because the
> documentation prefix isn't really big enough for this).
>
> I'm 10.0.0.1, and I'm running traceroute (from Linux / BSD box) to a
> destination machine of 10.0.4.1. There are routers numbered 10.0.1.1,
> 10.0.2.1 and 10.0.3.1
>
> Step 1: I send 3 packets with TTL=1, Dst 10.0.5.1, ports 33435,33436,33437.
> The first hop router, 10.0.1.1 decrements the TTL, realizes that the
> packet has now expired, and sends me back (Src 10.0.1.1, Dst 10.0.0.1)
> 3 ICMP TTL expired messages.
> Traceroute draws:
> traceroute to 10.0.4.1, 64 hops max, 52 byte packets
>  1  10.0.1.1 (10.0.1.1)  2 ms  1 ms  0.8 ms
>
> 2: I now send 3 packets, with TTL=2,  Dst 10.0.5.1, ports 33438,33439,33440.
> Router1 decrements the TTL and forwards it to Router2, which
> decrements the TTL and sends back  (Src 10.0.2.1, Dst 10.0.0.1) 3 ICMP
> TTL expired messages.
> I see:
> traceroute to 10.0.4.1, 64 hops max, 52 byte packets
>  1  10.0.1.1 (10.0.1.1)  2 ms  1 ms  0.8 ms
>  2  10.0.2.1 (10.0.2.1)  3ms  2 ms 5ms
>
> 3: I send 3 packets with TTL3, Dst 10.0.5.1, ports 33441,33442,33443
> Router1 and router2 forward the packet, router3 expires it, I get a
> TTL expired from 10.0.3.1, and now I see:
> traceroute to 10.0.4.1, 64 hops max, 52 byte packets
>  1  10.0.1.1 (10.0.1.1)  2 ms  1 ms  0.8 ms
>  2  10.0.2.1 (10.0.2.1)  3ms  2 ms 5ms
>  3  10.0.3.1 (10.0.3.1)  4 ms 5ms 3ms.
>
> 4: I send 3 packets with TTL=43, Dst 10.0.5.1, ports 33444,33445,33446.
> The TTL is now high enough that it makes it to the end host. There is
> nothing listening on the end host on ports 33444, 33445, 33446, and so
> I get back (from 10.0.4.1) ICMP port unreachables for 33444, 33445,
> 33446. I know I've reached my destination, and I'm happy.
> traceroute to 10.0.4.1, 64 hops max, 52 byte packets
>  1  10.0.1.1 (10.0.1.1)  2 ms  1 ms  0.8 ms
>  2  10.0.2.1 (10.0.2.1)  3ms  2 ms 5ms
>  3  10.0.3.1 (10.0.3.1)  4 ms 5ms 3ms
>  4  10.0.4.1 (10.0.4.1) 5ms 3ms 4ms
>
>
>
> In all of the above steps the destination address of the traceroute
> packet is the target of the traceroute.
> A transit router decrements the TTL, and if is cannot forward the
> packet it generates an ICMP unreachable -- but it doesn't care about
> the destination port or IP. When the TTL is high enough that it
> reaches the end host, the port number *is* important, because we don't
> want the end host to actually accept the packet, we want it to instead
> return an ICMP Port Unreachable (or admin prohibited, or something
> else useful).
>
> As far as I can see then, the only case where there might be an issue is:
> 1: the router running mtrace2 is the target of the traceroute (so it
> is actually listening on the port) and
> 2: the router is the very first hop (that's the only case where the
> port number will be 33435).
>
> In this case, we would get an output showing:
> traceroute to 10.0.1.1, 64 hops max, 52 byte packets
>  1  10.0.1.1 (10.0.1.1)  *  1 ms  0.8 ms
>
> (the first packet (port 33435) gets eaten by the mtrace2 process, but
> the 2nd and 3rd packets will have ports 33436, 33437).
>
> It was reported that enabling this protocol on routers where the
> traffic ransites (e.g router1) breaks traceroute, but I've
> sufficiently managed to confuse myself that I'm having a hard time
> understanding *why* -- the packet isn't destined to the router, it is
> destined for the target of the traceroute...
>
> I'm sure I'm missing something obvious here, so, again, slowly and in
> baby words please...
>
> W
>
>
> On Wed, Sep 11, 2019 at 12:29 PM Joe Touch <touch@strayalpha.com> wrote:
> >
> > Hi, Warren,
> >
> > On 2019-09-11 08:27, Warren Kumari wrote:
> >
> > On Mon, Jul 29, 2019 at 1:36 PM Joe Touch <touch@strayalpha.com> wrote:
> >
> >
> > On 2019-07-29 10:09, Warren Kumari wrote:
> >
> > ...
> >
> > Just FYI, I sent email to IANA letting them know that ports 33435 -
> > 33534 should probably be listed it as "Known Unauthorized Use".
> > From some archaeology, 33434 is apparently 2^15 + 666, and the
> > "standard" traceroutes use up to 100 ports.
> > I based this on the Van Jacobson (van@ee.lbl.gov) - 1988 which he
> > "stole" (credited) from Steve Deering -- easiest location of code is:
> > https://github.com/freebsd/freebsd/blob/master/contrib/traceroute/traceroute.c
> >
> > I don't much like referring to it as "Known Unauthorized Use" but
> > that's technically what it is -- the important bit to me seems to be
> > that we make in some way so they don't get handed out, exactly what
> > they should be called is a less pressing problem.
> >
> >
> > Although that's helpful to those seeing traffic on those ports, it does not prevent IANA from assigning those values when requested.
> >
> > The only way to do that would be to make them ASSIGNED. That happens by the process indicated in RFCs 6335 and 7605 and notably is not driven by this sort of "squatting".
> >
> > NOTE: at the time that code was originally developed (1988), that range was OK for such uses without registration, but times changed in 1992.
> >
> > That code ought to be fixed.
> >
> >
> > Yes, that is true -- that code ought to be fixed; however, it doesn't
> > change the fact that mtrace cannot realistically be deployed using
> > this port -- enabling it on a router breaks traceroutes through that
> > router, leading to asterisks (I'd thought that we'd agreed on that,
> > but while looking back through my mail on this topic, it's possible
> > I'd misunderstood, and you don't actually agree that this port isn't
> > fit *for this particular purpose*).
> >
> >
> >
> > No, I don't. I don't understand the issue. On machines where traceroute is deployed, I would assume it is already possible to acquire those ports (bind to them) as needed, at which point the only components that don't play nice are those where mtrace isn't deployed yet.
> >
> > Now if you are saying you don't WANT to do that because you WANT to support traceroute's use of squatted ports, that's not IANA's business IMO - and, more importantly, it's not justification for changing a port. IANA's policies on this are that squatter's use of ports are simply not a factor at all. They can't be, otherwise there's no point in having an assignment process.
> >
> >
> > Just wanting to make sure we are all on the same page, and they MBONED
> > will be publishing a -bis, deprecating this RFC and publishing a new
> > one with a different port...
> >
> >
> > At best, that would requires releasing the current assignment, which requires a statement as to the extent of the current deployment using that assignment since 2012 and a plan for changing that codebase - all this is described in RFC 6335.
> >
> > Joe
>
>
>
> --
> I don't think the execution is relevant when it was obviously a bad
> idea in the first place.
> This is like putting rabid weasels in your pants, and later expressing
> regret at having chosen those particular rabid weasels and that pair
> of pants.
>    ---maf



-- 
I don't think the execution is relevant when it was obviously a bad
idea in the first place.
This is like putting rabid weasels in your pants, and later expressing
regret at having chosen those particular rabid weasels and that pair
of pants.
   ---maf