Re: [bess] Alvaro Retana's Discuss on draft-ietf-bess-srv6-services-10: (with DISCUSS and COMMENT)

Ketan Talaulikar <ketant.ietf@gmail.com> Sat, 05 March 2022 09:50 UTC

Return-Path: <ketant.ietf@gmail.com>
X-Original-To: bess@ietfa.amsl.com
Delivered-To: bess@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 197D63A1654; Sat, 5 Mar 2022 01:50:49 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.107
X-Spam-Level:
X-Spam-Status: No, score=-2.107 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_FROM=0.001, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, 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 pOG1B51P6A94; Sat, 5 Mar 2022 01:50:44 -0800 (PST)
Received: from mail-vk1-xa30.google.com (mail-vk1-xa30.google.com [IPv6:2607:f8b0:4864:20::a30]) (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 1FF453A1655; Sat, 5 Mar 2022 01:50:44 -0800 (PST)
Received: by mail-vk1-xa30.google.com with SMTP id m41so4806784vkf.7; Sat, 05 Mar 2022 01:50:44 -0800 (PST)
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=94HWAYmd1tmyqJ4tLeIjfvK5aPhQwwbHNj/WD2RDyIw=; b=OqKZUPoO+HEpQE9wRW35DoQGF5MF97qXtbuqkBbQSgM1us7CUmM5pnyl58kUROiVJ0 BZ8ja2R3UdLSRLBC+mH1A2n0J9Xe+RAjUQydVulg/iNcPaaIWaHo5oPV2W6FXtlwT0aU Y26WT9f/XZKuCMp5crIyDi/PzEwYVYyNvqB/meFlYuNrFWOhUygiauYEc8vsLjOrwJI1 Cc1Hxc9kU0gmQcxPXr+qjV+jhHtbEJTrpJZiKmLw4Tg7SIzw7DHfE+Z9lH7IoReOz+Wz YTFiGDASx4EqfHxB+vRXljKiSJJTO1UqIktcm/BusGuhk9e4ka3GgtkZHyBJvMR5d8yd uZGQ==
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=94HWAYmd1tmyqJ4tLeIjfvK5aPhQwwbHNj/WD2RDyIw=; b=2tkdsN6kA2euYIs7TuZIquCZ5k0VsmVrkEmeYWXx3+hKfj71Y2nw4y3ClSx/qMQpAu nQbnAx9Gx7xyo3ig2JjoznkmGS0MXVrRrxu9u2cpNGMqT1YB0vHSYx4E/B8wIttGNPe7 51ezqqGMszlILf97/FUV+ErcKZxVqsLOi9rWcnhHvbcWemtdMQhzXbsrk1GhD70noVRK 2/c2cboWCc29kAuZWtmZE7p4+432aN1+IBwwe/WaOef0fAVRqB5dZQX+COlprFsv+/2h l9aec6dXpUUvPM3v2jNYMf0Ci1FMCsw3BMlSQ5ZzruW0QlK6uloKwd8oFKDSmvnyicHt my9w==
X-Gm-Message-State: AOAM532+E9GCc1BPas3r8qOO1ojIuhBl1bZGVf7wkkHDN8rTS01yhXed jzILMNqC2Qm0mWcjXQZK1VkJb/FIvmQDbny1Q6s=
X-Google-Smtp-Source: ABdhPJyV/emHnj/ysUuCxkFT+o6/3tybOiFwxQrvffswesYB9Wg8YkbubW/5Srx7fJr3SkFemkP5fI4opD5a2P6Oh+0=
X-Received: by 2002:ac5:c2c8:0:b0:320:3b50:58db with SMTP id i8-20020ac5c2c8000000b003203b5058dbmr879538vkk.7.1646473842831; Sat, 05 Mar 2022 01:50:42 -0800 (PST)
MIME-Version: 1.0
References: <164494796487.31930.7636138656008278664@ietfa.amsl.com> <CAH6gdPzvdae5sGOS982OLdQbYv-qGBnC9BwF_LePhTjaUW+Ghg@mail.gmail.com> <CAMMESsw+28voyO-4prcNVh+d4y6r7wANQV8Qw0RVCrdcRHqOyQ@mail.gmail.com> <CAH6gdPzEm_xw8D0Dcs4wk15o38FSXgGBxj5DXTmfj0V7BUoX_Q@mail.gmail.com> <CAMMESsxi9mgnsNDd_bd1bEzQDpEDH913H5djRCFWzWx4A2gW4g@mail.gmail.com> <CAH6gdPxe41GfJWiX8FgVY7HyXKR27Jh205N_ntx+kBy3dq6==A@mail.gmail.com> <CAMMESsw3PpkPhH4XCg-GrN3oNZXSfpq9N=f5ac0BKKPMYfV3sw@mail.gmail.com>
In-Reply-To: <CAMMESsw3PpkPhH4XCg-GrN3oNZXSfpq9N=f5ac0BKKPMYfV3sw@mail.gmail.com>
From: Ketan Talaulikar <ketant.ietf@gmail.com>
Date: Sat, 05 Mar 2022 15:20:30 +0530
Message-ID: <CAH6gdPxf3BkBBihTGBH1q_1M2dAoD_-FSj9emPii13kAvvLxQA@mail.gmail.com>
To: Alvaro Retana <aretana.ietf@gmail.com>
Cc: bess-chairs@ietf.org, draft-ietf-bess-srv6-services@ietf.org, The IESG <iesg@ietf.org>, BESS <bess@ietf.org>, "Bocci, Matthew (Nokia - GB)" <matthew.bocci@nokia.com>
Content-Type: multipart/alternative; boundary="00000000000088b64105d9759060"
Archived-At: <https://mailarchive.ietf.org/arch/msg/bess/ft_6-VZfyCUglvjA8iEIP6cQiSY>
Subject: Re: [bess] Alvaro Retana's Discuss on draft-ietf-bess-srv6-services-10: (with DISCUSS and COMMENT)
X-BeenThere: bess@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: BGP-Enabled ServiceS working group discussion list <bess.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/bess>, <mailto:bess-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/bess/>
List-Post: <mailto:bess@ietf.org>
List-Help: <mailto:bess-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/bess>, <mailto:bess-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 05 Mar 2022 09:50:49 -0000

Hi Alvaro,

We've posted an update to address some of your comments below. Please see
inline below for responses and would appreciate your suggestions to address
any outstanding issues.

https://datatracker.ietf.org/doc/html/draft-ietf-bess-srv6-services-12


On Sat, Feb 19, 2022 at 3:58 AM Alvaro Retana <aretana.ietf@gmail.com>
wrote:

> On February 18, 2022 at 10:53:20 AM, Ketan Talaulikar wrote:
>
> Hi!
>
> We're still not on the same page.
>
>
> [Cut the indentation to make it more readable.]
>
> > > > >
> ----------------------------------------------------------------------
> > > > > DISCUSS:
> > > > >
> ----------------------------------------------------------------------
> > > > >
> > > > > Clearly (from looking at rfc8986), not all endpoint behaviors
> apply to
> > > > > the services defined in this document. Should a receiver accept any
> > > > > endpoint behavior? What should a receiver do if a known but
> unrelated
> > > > > behavior (End, for example) is received?
> > > ...
> > > > > For any specific service (IPv4 VPN Over SRv6 Core, for example, to
> pick
> > > > > one), should the behaviors used "in practice" be enforced? What if
> > > > > different behavior is advertised? Can it safely be ignored?
> > >
> > > These two are related: Should only specific behaviors (per service) be
> > > accepted?
> > >
> > > If yes, I need you to specify which are those behaviors and what
> > > happens if a different (known) one is received.
> > >
> > > If no, what does it mean for the service if an unrelated behavior is
> > > advertised?
> >
> > KT> So, this would be a result of a bug (?) on the egress PE that
> signals a
> > wrong behavior. Since the receiver is not validating, the service traffic
> > would still arrive at the egress PE but the handling might be erroneous
> due
> > to wrong behavior. The issue still manifests on the egress PE due to its
> bug.
> > Somewhat similar to what might happen if the egress PE were to signal a
> label
> > associated with a wrong context/service as a VPN label in MPLS VPNs.
>
> Verifying that a label is correct is not the same as confirming that
> the Behavior is plausible for the service.
>
> I understand how the ingress PE cannot validate an unknown Behavior,
> but not validating a known Behavior is not right.  If the Behavior is
> unknown, the ingress doesn't have any idea of what the egress may do,
> but if the Behavior is known, it does!
>

KT> My concern is with us getting into very loosely and not well-defined
validation at the ingress - that too when the ingress doesn't need to
bother about the local behavior  (except for those with arguments) applied
at the egress. It is better for extensibility and interoperability to not
do validation instead. This will enable the smooth and easier introduction
of new behaviors on the egress as long as there is no hard dependency on
the ingress. Please see further below.


>
> §2 lists Behaviors that may correspond to L2/L3 Services.   The
> subsections in §5 and §6 list the Endpoint Behaviors used "in
> practice" for each of the services.
>
> This is what I would like to see:  For example, §5.1 (IPv4 VPN Over
> SRv6 Core) says that "In practice, the SRv6 Endpoint behavior is
> End.DX4 or End.DT4."  The ingress PE should then be able to validate
> that the Endpoint Behavior is one of these...and take appropriate
> actions if it isn't.  Why is that not the case?  Not taking this
> simple step opens up (as you mention) the possibility of a bug
> creeping in, but also the ability of the egress to signal any behavior
> which could result in an unexpected or incorrect action.
>

KT> Since the SRv6 SID belongs to and is instantiated on the egress, it can
signal any behavior. E.g. tomorrow someone may define behavior that
subjects the packet received at the egress router to be submitted to
Firewall/DPI before being forwarded to the CE. Except for behaviors with
arguments where the ingress needs to know in order to supply the argument
values, there is nothing behavior-specific that the ingress needs to do. We
have clarified the latter in the updated text.


>
> This type of checking is the minimum that should be done.
>

KT> We can add text for some checking for the purpose of raising
warnings/alerts for the operator if that helps.


>
>
>
> ...
> > > > >
> ----------------------------------------------------------------------
> > > > > COMMENT:
> > > > >
> --------------------------------------------------------------------
> ...
> > KT> I believe we were discussing the part of the "SID being routable" as
> in
> > via routing protocol (i.e. IGP/BGP transport). The next paragraph is one
> that
> > covers the base BGP "resolvability" part and does elaborate on the
> various
> > mechanisms like "alternate steering mechanisms" (e.g. any tunnel, SR
> Policy,
> > etc.).
>
> Yes (let me reset a little) -- this is the current text (from §5):
>
>    The SRv6 Service SID SHOULD be routable within the AS of the egress
>    PE and serves the dual purpose of providing reachability between
>    ingress PE and egress PE while also encoding the SRv6 Endpoint
>    behavior.
>

KT> The above sentence says "routable within the AS of the egress" - as in
the SRv6 SID is covered by some SRv6 Locator/Prefix that is advertised via
say an IGP. The SHOULD is there because not all SRv6 SIDs need to be
"routable". Please check
https://datatracker.ietf.org/doc/html/rfc8986#section-3.3 where there is a
discussion on non-routable SRv6 SID. We have added this reference in the
text to clarify.


>
>    When steering for SRv6 services is based on shortest path forwarding
>    (e.g., best-effort or IGP Flexible Algorithm
>    [I-D.ietf-lsr-flex-algo]) to the egress PE, the ingress PE
>    encapsulates the IPv4 or IPv6 customer packet in an outer IPv6 header
>    (using H.Encaps or H.Encaps.Red flavors specified in [RFC8986]) where
>    the destination address is the SRv6 Service SID associated with the
>    related BGP route update.  Therefore, the ingress PE SHOULD perform
>    resolvability check for the SRv6 Service SID before considering the
>    received prefix for the BGP best path computation.  The resolvability
>    is evaluated as per [RFC4271].  If the SRv6 SID is reachable via more
>    than one forwarding table, local policy is used to determine which
>    table to use.  The result of an SRv6 Service SID resolvability (e.g.,
>    when provided via IGP Flexible Algorithm) can be ignored if the
>    ingress PE has a local policy that allows an alternate steering
>    mechanism to reach the egress PE.  The details of such steering
>    mechanisms are outside the scope of this document.
>
>
> My point is that it is a requirement for the SID to be reachable --
> independent of how it is resolved: IGP, BGP, "alternate steering
> mechanisms", etc.  Otherwise it can't be used.
>
> If we agree with that then the requirement should be reflected in the
> text: s/SHOULD/MUST/g
>

KT> Thanks for clarifying. I think we are on the same page on this one. The
"SHOULD" was intended to cover the "normal" resolution mechanism (i.e. via
IGP/BGP) while the "alternate mechanisms" were the other scenarios. At the
end of the day - resolution is a MUST anyways. We have changed the SHOULD
to MUST in the above paragraph to convey this intent. There were a lot of
discussions and back/forth on this text within the WG and hence we were
being extra careful.

Thanks,
Ketan



>
>
> Thanks!
>
> Alvaro.
>