Re: Several questions about the draft-ietf-bfd-unaffiliated-echo

Jeffrey Haas <jhaas@pfrc.org> Tue, 23 November 2021 19:43 UTC

Return-Path: <jhaas@slice.pfrc.org>
X-Original-To: rtg-bfd@ietfa.amsl.com
Delivered-To: rtg-bfd@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 37C4A3A0121; Tue, 23 Nov 2021 11:43:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 YJCjY56GDrt1; Tue, 23 Nov 2021 11:43:26 -0800 (PST)
Received: from slice.pfrc.org (slice.pfrc.org [67.207.130.108]) by ietfa.amsl.com (Postfix) with ESMTP id 5B7D43A0124; Tue, 23 Nov 2021 11:43:26 -0800 (PST)
Received: by slice.pfrc.org (Postfix, from userid 1001) id 1E7311E2F4; Tue, 23 Nov 2021 14:43:25 -0500 (EST)
Date: Tue, 23 Nov 2021 14:43:24 -0500
From: Jeffrey Haas <jhaas@pfrc.org>
To: Greg Mirsky <gregimirsky@gmail.com>
Cc: Xiao Min <xiao.min2@zte.com.cn>, rtg-bfd WG <rtg-bfd@ietf.org>, draft-ietf-bfd-unaffiliated-echo@ietf.org
Subject: Re: Several questions about the draft-ietf-bfd-unaffiliated-echo
Message-ID: <20211123194324.GA23355@pfrc.org>
References: <CA+RyBmUmPVB5dHfbYHHS1=_sMGd9yXcxPs7ByuqC__iPWqpnTg@mail.gmail.com> <202111171700094780970@zte.com.cn> <CA+RyBmWOPmdMqEcGAeUJypGhfFhptryGg7gPSH5_2SKgHUKYxA@mail.gmail.com> <20211122221031.GB15104@pfrc.org> <CA+RyBmWsqsMbu+S6A5ff3EfgRZW5pKg0m+qv83NU8n8o1pus6A@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="us-ascii"
Content-Disposition: inline
In-Reply-To: <CA+RyBmWsqsMbu+S6A5ff3EfgRZW5pKg0m+qv83NU8n8o1pus6A@mail.gmail.com>
User-Agent: Mutt/1.5.21 (2010-09-15)
Archived-At: <https://mailarchive.ietf.org/arch/msg/rtg-bfd/tQtUSONsRtHyf0GC8R3Q1uGAnw8>
X-BeenThere: rtg-bfd@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "RTG Area: Bidirectional Forwarding Detection DT" <rtg-bfd.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rtg-bfd>, <mailto:rtg-bfd-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rtg-bfd/>
List-Post: <mailto:rtg-bfd@ietf.org>
List-Help: <mailto:rtg-bfd-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rtg-bfd>, <mailto:rtg-bfd-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 23 Nov 2021 19:43:31 -0000

Greg,

On Tue, Nov 23, 2021 at 09:21:42AM -0800, Greg Mirsky wrote:
> On Mon, Nov 22, 2021 at 2:10 PM Jeffrey Haas <jhaas@pfrc.org> wrote:
> > The desired behavior is "obvious".  If you support BFD Echo, you'd like to
> > turn on that code to the remote system and do so without letting Echo be
> > initiated using the Async procedures.  However, since Echo is intentionally
> > under-documented in the BFD RFCs and is expected to have a paired async
> > session, this leaves the proposal missing quite a bit.
> >
> GIM>> I've proposed to consider using RFCs 8562/8563 as a starting point. A
> MultipointHead operates in the Demand mode, does not use the three-way
> handshake, and the BFD state machine is Up with the first transmitted BFD
> Control packet. True, the use of the BFD Echo function is not described in
> RFCs 8562/8563 but I don't expect it would present a serious problem to the
> group. The advantage of making the unaffiliated BFD Echo an extension of
> RFCs 8562/8563, in my opinion, is that the transmitted by MultipointHead
> BFD Control packets, though go unprocessed, would nolt affect anything. The
> rate of transmission can be one in an hour, one a day. And the BFD Echo
> function is not required to bring the BFD session state Up but can be used
> to detect the failure.

A place where I consider the multipoint functionality to be an awkward fit
is that there's expected to be two participant roles: the head and the tail.
For an echo solution, the local system is BOTH head and tail.

This is contrasted vs. S-BFD where the Initiator expects to hear its own
stuff back from the reflector.

Valid points of comparison include that with multipoint the packets are not
expected to be changed, but S-BFD procedure requires that the Reflector flip
the discriminators.

It can be observed that the state machines for S-BFD and multipoint are
largely the same, with a slight simplification for S-BFD not having to deal
with the Down state.  IMO, the S-BFD state machine is closer to what we're
looking for.

Observations flipping through RFC 7880 with regard to what would likely need
to change to be the basis for bfd-unaffiliated pdus:

The roles of Initiator and Reflector are still clear - although reflector is
more literal.

You'd still want to have network-wide discriminator pools to help reduce
diagnostic headache if an Initiator get someone else's packet
inappropriately.  

We'd want a new SessionType

We'd still want to set demand mode.

The demultiplexing critieria would need to map to a session based on the
transmitted discriminators.  HOWEVER, some normative text would be required
on something we don't standardize - BFD Echo format in 5880, etc.  In
particular, the Initiator has to make sure you can distinguish received
Echo packets as being associated with a BFD unaffiliated session perhaps
distinctly from other Echo packets.  

The responder/reflector procedure is largely eliminated - this is BFD Echo
as per RFC 5880.

Many of the initiator procedures need mild tweaks because we are talking to
ourselves rather than an active reflector.

The S-bfd echo function section provides some wisdom on the security issues
with bfd unaffiliated.

-- Jeff