Re: [trill] Benjamin Kaduk's No Objection on draft-ietf-trill-multilevel-single-nickname-15: (with COMMENT)

Donald Eastlake <d3e3e3@gmail.com> Sun, 10 October 2021 16:36 UTC

Return-Path: <d3e3e3@gmail.com>
X-Original-To: trill@ietfa.amsl.com
Delivered-To: trill@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 116153A074B; Sun, 10 Oct 2021 09:36:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.847
X-Spam-Level:
X-Spam-Status: No, score=-1.847 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, 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=gmail.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 nGED8XMmm5C4; Sun, 10 Oct 2021 09:36:27 -0700 (PDT)
Received: from mail-io1-xd2d.google.com (mail-io1-xd2d.google.com [IPv6:2607:f8b0:4864:20::d2d]) (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 821FD3A0744; Sun, 10 Oct 2021 09:36:27 -0700 (PDT)
Received: by mail-io1-xd2d.google.com with SMTP id y67so4987324iof.10; Sun, 10 Oct 2021 09:36:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=5rjBm4WSqyFvZG69XZhcaLfXQKkyHA3q0XLH4IGJjzM=; b=nlwMifLdg76UJToG2MxYENcJxN7KShIwhKoKxT1MIOiUGUjWGPq7f3OXuZknHikiK5 +sk9YRUOZ1ySKY9rHTg9IQ39YXeH4zCIsGcA1jbCJF0j2CfAvdCQ4Td/3VZ5QxLn8Xia w0uc5w6EwovWTdQmG78BpKQDRHkHc3sDQgT3ZOAurZnhkkSgz8mz2AqOuLYTxGgPuj6L ImBuncvYFuL9dcyazclG70jikKd131rQ1sx2MpsVKQ1SjwkWdgGo7XWaKxtC0nvpiZ5y N0Fz6tD/EBNLe7LKzGeMOdVzGHKYJmKxDCXMirC5Xfr1IEFCMItcK/oK0uGkbK1+P/56 +JrQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=5rjBm4WSqyFvZG69XZhcaLfXQKkyHA3q0XLH4IGJjzM=; b=BVtNgjocl8YGOix5lf4RcNNnRJRIBZvJ1XJ81Mmpys5vDhMblPM0HUBCOXD4u4IEYU /DOg+DNAZxMMpINOczcRnOQrmXi5EaKUhhATS5KECKKKcFNn0IAlZHTlXoTvAU/Uc9nR dILt41Staf7+SGZLjpy6Y+AVwVeyhp48usm39K+B0RbFshJXsb0FLD6ajG54dlz8fwlq A0E3gzY36y7b0Bfn8rVx+jpe0ehar93kzn07HqW6+pLdYssYAo+jNMt0QtVethMo0rY/ ZFWKEBlFe5OZwYi+XYycrByZO2/iGKzDKr2br8pszM789EzWUvP2j6tdebbRUYYIzxUY zKJw==
X-Gm-Message-State: AOAM533/kGDgUd8YbTq33dpPo0U/MUu9hH4FcXG+eA96MEPFlq7sTkAk aRtXu6Fj1antcPYjFAEdhTKLHzvYSF1JSW/CfgA=
X-Google-Smtp-Source: ABdhPJyawJbRksRSfkLdKhW2p9pI5NKpxlP+6UKG9t6ecQSifoKRqx0vmC7bqmJotU7xagYpE3jK4lHUwM/sJpKNzVY=
X-Received: by 2002:a02:c65a:: with SMTP id k26mr5991805jan.29.1633883786484; Sun, 10 Oct 2021 09:36:26 -0700 (PDT)
MIME-Version: 1.0
References: <163235358800.9389.10388636062686877154@ietfa.amsl.com>
In-Reply-To: <163235358800.9389.10388636062686877154@ietfa.amsl.com>
From: Donald Eastlake <d3e3e3@gmail.com>
Date: Sun, 10 Oct 2021 12:36:15 -0400
Message-ID: <CAF4+nEEyZmXttnsorHnod7+JvHVq_f__szThXEdYqv0B2NocYA@mail.gmail.com>
To: Benjamin Kaduk <kaduk@mit.edu>
Cc: The IESG <iesg@ietf.org>, draft-ietf-trill-multilevel-single-nickname@ietf.org, Susan Hares <shares@ndzh.com>, trill IETF mailing list <trill@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000b29fa805ce0236fa"
Archived-At: <https://mailarchive.ietf.org/arch/msg/trill/Mmk1GLVO20f9NhZiclTCbGcLk-E>
Subject: Re: [trill] Benjamin Kaduk's No Objection on draft-ietf-trill-multilevel-single-nickname-15: (with COMMENT)
X-BeenThere: trill@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Developing a hybrid router/bridge." <trill.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/trill>, <mailto:trill-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/trill/>
List-Post: <mailto:trill@ietf.org>
List-Help: <mailto:trill-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/trill>, <mailto:trill-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sun, 10 Oct 2021 16:36:32 -0000

Hi,

Thanks for the detailed review. Sorry for the slow response. See below.

On Wed, Sep 22, 2021 at 7:33 PM Benjamin Kaduk via Datatracker <
noreply@ietf.org> wrote:
> Benjamin Kaduk has entered the following ballot position for
> draft-ietf-trill-multilevel-single-nickname-15: No Objection
>
> ----------------------------------------------------------------------
> COMMENT:
> ----------------------------------------------------------------------
>
> ...
>
> Section 3.1
>
>    -  RB3, when forwarding into area {3,30}, replaces the egress
>       nickname in the TRILL header with RB44's nickname (44). (The
>
> I strongly suggest spending a few words to reiterate how RB3 knows to
> replace 3 with 44 in this scenario.  (I.e., looking up based on D from
> the packet contents.)

OK. (It looks it up based on the destination MAC and data label (VLAN or
FGL).)

> Section 3.2
>
>            All border RBridges of an area MUST agree on a pseudorandom
>    algorithm as the tie-breaker to locally determine the DBRB. The same
>    pseudorandom algorithm will be reused in Section 4 for the purpose of
>    load balancing. It's also possible to implement a certain election
>    protocol to elect the DBRB. However, such kind of implementations are
>    out the scope of this document. By default, the border RBridge with
>    the smallest nickname, considered as an unsigned integer, is
>    elected
>    DBRB.
>
> (Editorial) It seems a little weird to me to write this as "MUST agree
> on a pseudorandom algorithm ... oh but you could use leader election
> instead as well, we just don't say how to" -- the "MUST" requirement
> doesn't seem to match up with the actual requirement for correct
> operation.  I tried to shuffle things around to make the actual "MUST"
> requirement match up, as follows, though I'm not fully confident that my
> proposal is actually correct...
>
> NEW:
>
> All border RBridges of an area MUST agree on a procedure for
> determining the DBRB for the area.  This document assumes that the
> border RBridge with smallest nickname (considered as an unsigned
> integer) is elected DBRB, and that there is an agreed pseudo-random
> algorithm as a tie-breaker (and reuses that algorithm in Section 4
> for the purpose of load balancing), but that does not preclude the
> use of leader-election or similar procedures.

How about:
   For proper operation, all border RBridges of an area MUST agree on
   the DBRB for the area.  This document assumes that the
   border RBridge with smallest nickname (considered as an unsigned
   integer) is elected DBRB, and that there is an agreed pseudo-random
   algorithm as a tie-breaker (and reuses that algorithm in Section 4
   for the purpose of load balancing), but that does not preclude the
   use of leader-election or other procedures.

>    -  RB3, when forwarding into area {3,30}, replaces the egress
>       nickname in the TRILL header with the root RBridge nickname of a
>       distribution tree of L1 area {3,30} say 30. (Here, the ingress
>       nickname MAY be replaced with a different area nickname selected
>       from {2,20}, the set of border RBridges to the ingress area, as
>       specified in Section 4.) Now suppose that RB27 has learned the
>       location of D (attached to nickname 3), but RB3 does not know
>       where D is. In that case, RB3 must turn the packet into a multi-
>       destination packet and floods it on the distribution tree of L1
>       area {3,30}.
>
> I think either there's a missing paragraph break here, or we need to
> s/RB27/RB3/ -- RB27 is attached to S, but this part of the procedure is
> discussing how RB3 is performing level transition to inject the packet
> into area {3,30}.

The wording can be improved. The two things it is talking about are (1)
multidestination frames, in which case they would always have been sent on
an L2 tree and are transitioned to an L1 tree, and (2) unicast frames that
might have been sent to the border by unicast inside the source L1 and sent
by unicast across L2 but have to be transitioned to a tree inside the
destination L1 because the L2-to-L1 border RBridge has forgotten (or never
knew if it just came up or it fell out of cache or whatever) the
MAC&DataLabel of the destination end station. These should be more clearly
distinguished but I think it makes sense to leave it as one paragraph since
it is all talking about transitioning from L2 to an L1 distribution tree.

>    -  RB30, will receive the packet flooded on the L1 tree by RB3. It is
>       important that RB30 does not transition this packet back to L2.
>       RB30 should also examine the ingress nickname of this packet. If
>       this nickname is found to be an L2 border RBridge nickname, RB30
>       must not transition the packet back to L2.
>
> The way this condition is written ("to be an L2 border RBridge
> nickname", with no restriction to the area in which it's received) seems
> to imply an assumption that any given border RBridge is in exactly one
> level 1 area.  Since §6 of this document says that a given border
> RBridge can connect multiple L1 areas, I think we should examine more
> carefully the situation here when a given border RBridge uses multiple
> nicknames for different L1 areas.  As written, this procedure might
> result in failing to flood some packets to L2 at all.

I don't actually see the problem here. It is talking about traffic being
sent on an L1 distribution list after being transitioned from L2 to L1.
Looking back at the original source L1 area, multidestination traffic is
flooded on an L1 distribution tree there also but the ingress nickname is
the actual source RBridge.
Anyway, at the destination L1 area, R3 will have changed the destination
nickname to the root of a distribution tree for the destination L1 area.
The source nickname will be a border RBridge of the source L1 area. R3
sends the TRILL encapsulated frame with these changes on the L1
distribution tree. Say it arrives at R30. It does not actually make any
difference if R30 is the root of that L1 distribution tree or not. R30 will
continue to propagate the frame on the L1 distribution tree (although it
might be a leaf and so not actually do anything for that L1 tree
propagation). It needs to decide if it should also transition the frame to
an L2 distribution tree. But it seems to me that the check to see if the
ingress nickname is any L2/L1 border RBridge is a fine check. If it is,
then the frame has already been distributed in L2 and MUST NOT be
transitioned to L2. (If the ingress nickname is still the true L1 source
(i.e., not a border RBridge), then R30 would transition it to L2 if it is
the DBRB or, if it is not the DBRB, not transition it because some other
border RBridge this is DBRB will have done that.)
There is no problem with Rx being a border RBridge for multiple L1 areas.
Each such L1 area will have a border RBridge that is its DBRB. Rx could be
the DBRB for all, some, or none of the L1 areas for which it is a border
RBridge. When a BUM frame arrives from L2, Rx transitions it to zero or
more L1 distribution trees, one for each area it is DBRB for. Rx won't get
any frames that it transitions to an L1 distribution tree but it might get
a frame that had been transitioned to an L1 distribution tree for some L1
area that Rx is a border RBridge for but not the DBRB. If so, it indeed
MUST NOT transition it back to L2 but will continue to propagate it on that
L1 distribution tree.

> Section 6
>
>    RBridge's nickname.  For a multicast packet: either RB1 is not the
>    DBRB and RB1 will not transition the packet or RB1 is the DBRB. If
>    RB1 is the DBRB, RB1 follows the following rules:
>
> We write "the DBRB" as if there is a single distinguished one.  But when
> there are multiple L1 areas in play, IIUC each area can have a distinct
> DBRB.  Should we specify which area RB1 needs to be the DBRB in in order
> to trigger these procedures (or whether it must do so if it is a DBRB in
> *any* area)?

Sure, the wording can be clarified. I'll take a crack at doing so. But it
just does the described behavior in parallel for each L1 area it is a
border RBridge for.

>       dropped by RB1. It recognizes such packets by their ingress
>       nickname being the nickname of one of the border RBridges of an L1
>       area to which the receiving border RBridge is attached.
>
> Similarly, if RB1 is not the DBRB for an area, the earlier requirement
> to drop traffic from L2 and not pass it to that area, regardless of the
> ingress nickname in use, seems to take priority.  So perhaps this should
> be "of an L1 area for which the receiving border RBridge is the DBRB"?

I agree with your comment and will see if I can clarify the wording.

> Section 8
>
> Is there anything useful to say about the transient behavior as
> information about a partition/repair propagates to the border RBridges
> of the area?

If an L1 area with multiple border RBridges partitions such that two or
more fragments have border RBridges (it's always possible that part of the
L1 area will become isolated), then each of the border RBridges involved
will withdraw the Border RBridge Group (see Section 5.2) announcement for
the old unified L1 and issue new such announcements for the new fragment
for which it is a border RBridge.

>    If an L1 Border RBridge Nickname is configured at an RBridge and that
>    [...]
>    nickname multilevel do not support the configuration of an L2 Border
>    RBridge Nickname.  [...]
>
> Just to confirm, the distinction between "L1 Border RBridge Nickname"
> and "L2 Border RBridge Nickname" is correct and as intended?  I think I
> see one or two other instances of the "L2" form in the document, but
> this one leaves me most uncertain of the group.

Section 1, Introduction, says that border RBridges use the same nickname in
L1 and L2 so I think this reference to different nicknames needs to be
fixed.

>    If there are multiple border RBridges between an L1 area and L2 and
>    one or more of them only support or are only configured for unique
>    nickname multilevel ([RFC8397]), any of these border RBridges that
>    are configured to used single nickname multilevel as specified in
>    this document MUST support [RFC8397] and fall back to behaving as a
>    unique nickname border RBridge for that L1 area.  [...]
>
> Since this condition is predicated on the deployment environment, not
> the local implementation, it seems to be a de facto requirement on all
> implementations of this document to also support RFC 8397 and the
> fallback.  Perhaps it's better to frame it that way.

OK

> I think we should also say something about how an implementation will
> detect that there are other border RBridges in a given area that are
> using unique nickname multilevel.

OK. You can tell there are unique nickname border RBridge because
they announce in the L1 area the block(s) of nicknames that are available
for local use within the L1 area.

> Section 9
>
>    The newly defined TRILL APPsub-TLVs in Section 5 are transported in
>    IS-IS PDUs whose authenticity can be enforced using regular IS-IS
>    security mechanism [IS-IS] [RFC5310]. This document raises no new
>    security issues for IS-IS.
>
> Thanks for mentioning that IS-IS has a mechanism for authenticating PDUs
> (and the corresponding implication that it's not the default behavior).
> That said, I'm not sure that "raises no new security issues" is quite
> correct, and would propose to adopt a formulation similar to what RFC
> 8397 uses.  E.g., "malicious devices may fake the [sub-TLVs] to [attract
> traffic, partition areas, induce excessive state on L2 RBridges, etc.].
> For this reason, RBridges SHOULD be configured to use the IS-IS
> Authenticaiton TLV (10) in the IS-IS PDUs, particularly those containing
> [sub-TLVs], so that IS-IS security [RFC5310] can be used to authenticate
> those PDUs and discard them if they are forged."

OK.

>    Using a variation of aggregated nicknames, and the resulting possible
>    duplication of nicknames between areas, increases the possibility of
>    a TRILL Data packet being delivered to the wrong egress RBridge if
>
> Increases compared to what baseline?

The baseline of all RBridges in a TRILL campus being unique, which is the
case for non-multi-level TRILL and for multi-level TRILL with unique
nicknames.

>    areas are unexpectedly merged. However, in many cases the data would
>    be discarded at that egress RBridge because it would not match a
>    known end station data label/MAC address.
>
> Is that true for broadcast/multicast or just unicast?

It is true for broadcast/multicast with regard to data labels but not MAC
addresses but it doesn't matter. broadcast/multicast is going to be flooded
to all RBridges interested in the data label anyway.

> Section 11.2
>
> It seems that [IS-IS] ought to be a normative reference.

My question about this is, would changing the reference to normative
require a new IETF Last Call?

> NITS
>
> Section 4.1, 4.2
>
>    nickname. The selection is simply based on a pseudorandom algorithm
>    as defined in Section 5.3 of [RFC7357]. With the random ingress
>
> Pedantically, the referenced document gives an example of a PRF, but
> does not definitively define "a pseudorandom algorithm".  So "described"
> or "discussed" might be more appropriate than "defined".

Sure, can change it to "discussed".

> Section 8
>
>    Other than the manageability considerations specified above, the
>    manageability specifications in [RFC6325] still apply.
>
> Is this an "other than" or an "in addition to"?

"in addition to" is clearer.

Thanks,
Donald
===============================
 Donald E. Eastlake 3rd   +1-508-333-2270 (cell)
 2386 Panoramic Circle, Apopka, FL 32703 USA
 d3e3e3@gmail.com