Re: [Idr] draft-chen-bgp-redist - A Juniper Perspective

Robert Raszuk <robert@raszuk.net> Fri, 20 August 2021 20:49 UTC

Return-Path: <robert@raszuk.net>
X-Original-To: idr@ietfa.amsl.com
Delivered-To: idr@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 0A0EB3A1220 for <idr@ietfa.amsl.com>; Fri, 20 Aug 2021 13:49:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.098
X-Spam-Level:
X-Spam-Status: No, score=-2.098 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, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=raszuk.net
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 x4ePM7fIfAj3 for <idr@ietfa.amsl.com>; Fri, 20 Aug 2021 13:48:57 -0700 (PDT)
Received: from mail-lj1-x22e.google.com (mail-lj1-x22e.google.com [IPv6:2a00:1450:4864:20::22e]) (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 58C6D3A1214 for <idr@ietf.org>; Fri, 20 Aug 2021 13:48:57 -0700 (PDT)
Received: by mail-lj1-x22e.google.com with SMTP id n6so19153551ljp.9 for <idr@ietf.org>; Fri, 20 Aug 2021 13:48:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=raszuk.net; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=wmAqSMXVD5Kz3HGkZecbAwBwWJjQKOb5+YF3JoDHopM=; b=POdZztKjrDRWRvIIJ7YJr0QvElh5J1pQp12m7dq4do8fNRDTKYEUVNcREu5Irm4W9U dHGpjnPJN/d4rw4sIIvjVsfT03VKtKZEjYrjaK4svSzhKtgEpvw7JPCtzqcoEmS2JK0s z6mSHBRSBkQOUGDOFEDzpBmjzQyBPpYJvUpV0LTXscLp+Y6Dh/vOCANMvTBVoC/O1Mit RFJfOFMVfDRnrnx9Gva4xH9RexS0lDCp4v/dQVD6Pgr0OlrYhwY8SWYcKwo+binnuQil sLrtZCgetEztYq4z0X9SyMEkRHDfcODYIqDRuUqhQNXi0BVipafVfzO7viIsD7bCc7dF 03JA==
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; bh=wmAqSMXVD5Kz3HGkZecbAwBwWJjQKOb5+YF3JoDHopM=; b=qh7Og0xzgrdtPyY4PVKhMDre4XnZ8l6aRXeEanUkt5S0MM/g7NHSeDQhfB1AOdLvsh Lw554TV95EGDwkui8D3dEnia+hZBFfIS8BzBQI6Ku9OGENkGcgRgUJB9YrqfUQNi8NX7 1MlC5EiS9o7Xs5kLLY5QnKNE9gnm46XOUeDQmxySDUCtMsEa/FKvwdSu2AyDIhYHGXzX 9K0xAZ7aw2Y2LAkK4zjLna6UafxfsD9oNd2mdjSO7uYaJUj9mMTGflmMXWG0GjyxPBGW A+3kqPFAI4wEMymkiNLU6q+VwqW3uvN4/qZ/jcfowuJ2pivbuzaza5BPO/AsK1gpu/S3 51uw==
X-Gm-Message-State: AOAM531uWtcnt3SBjqw94yGhuAf7jp89c5+D3vXXqJ/ttQziyqmmURW5 sJ+gGdplLacmevaGK4tizmN/no2hhR6Aiv2sz0ghQg==
X-Google-Smtp-Source: ABdhPJwSLBMWiGRs2BakAeRN6tfQ1xFtBPoJgpgG91q6v2xoAkFAY2qEswhyzZIKgVYvHPSy7W0cgBkgZ6+3WnXQfAM=
X-Received: by 2002:a2e:b0e2:: with SMTP id h2mr17185822ljl.23.1629492530313; Fri, 20 Aug 2021 13:48:50 -0700 (PDT)
MIME-Version: 1.0
References: <20210820192201.GB19054@pfrc.org>
In-Reply-To: <20210820192201.GB19054@pfrc.org>
From: Robert Raszuk <robert@raszuk.net>
Date: Fri, 20 Aug 2021 22:48:43 +0200
Message-ID: <CAOj+MMGjv27BjX7tBeQCJVzRGGgJi_uFQeyjTaLS79CQUB9cnw@mail.gmail.com>
To: Jeffrey Haas <jhaas@pfrc.org>
Cc: draft-chen-bgp-redist@ietf.org, "idr@ietf. org" <idr@ietf.org>
Content-Type: multipart/alternative; boundary="0000000000006f0fbb05ca03cb81"
Archived-At: <https://mailarchive.ietf.org/arch/msg/idr/VRnTmBhIszZeS7CROhT0xV2tZrQ>
Subject: Re: [Idr] draft-chen-bgp-redist - A Juniper Perspective
X-BeenThere: idr@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Inter-Domain Routing <idr.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/idr>, <mailto:idr-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/idr/>
List-Post: <mailto:idr@ietf.org>
List-Help: <mailto:idr-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/idr>, <mailto:idr-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 20 Aug 2021 20:49:03 -0000

Hi Jeff,

I think you have very well described and summarized both 4271 loose
language as well as local behaviour of Junos/GateD based BGP
implementations.

But my reading and some off-list discussions with Enke about this draft
rather indicate that the crux of the issue is how to *signal* the
preference across BGP speakers to be consistent with intended network wide
behaviour.

I am not able to find your opinion on such signalling (say in the form of
LOCAL PREF) or alternative options which would allow to work network wide.

Many thx,
R.





On Fri, Aug 20, 2021 at 9:22 PM Jeffrey Haas <jhaas@pfrc.org> wrote:

> Enke & Jenny,
>
> While I'm inclined to say that the matters described in
> draft-chen-bgp-redist aren't a problem, it's probably more reasonable to
> say
> "this isn't a problem for everyone".
>
> I'm not going to debate what other implementations do.  Instead, I'll spend
> the much of my message discussing what the implementation I work on does.
> This does leave us in an interesting headache as a working group whether
> there's more general work to do here that merits discussion as an RFC.
>
> ----
>
> One thing I will contribute toward some possible need for discussion is the
> sloppy ground that RFC 4271 had with regards to interactions with non-BGP
> protocols.  We had quite a difficult time getting the text for this "right"
> and there was multiple pushes to try to NOT discuss non-BGP protocols at
> all.  Such discussions got very deep in the internal details of various
> implementations.  What we did end up with in RFC 4271 was the following:
>
> The BGP RIBs are a distinct entity from the "Routing Table".
>
> Section 9.1.2 places the best BGP route in the Loc-RIB.
> It also says, "Whether the new BGP route replaces an existing non-BGP route
> in the Routing Table depends on the policy configured on the BGP speaker."
>
> Section 9.1.3 for Route Dissemination then says the following:
>  :    The Phase 3 decision function is invoked on completion of Phase 2, or
>  :    when any of the following events occur:
>  : [...]
>  :       b) when locally generated routes learned by means outside of BGP
>  :          have changed
>  : [...]
>  :
>  :    All routes in the Loc-RIB are processed into Adj-RIBs-Out according
>  :    to configured policy.
>
> So... there's not a lot of normative text there.  The last sentence above,
> "configured policy", is the wiggle room the RFC has to say "I'm originating
> a route".
>
> The general call in the RFC to not advertise things you can't forward to
> also provides some level of wiggle room that the best route in the Routing
> Table is what should be redistributed:
>  :    A route SHALL NOT
>  :    be installed in the Adj-Rib-Out unless the destination, and NEXT_HOP
>  :    described by this route, may be forwarded appropriately by the
>  :    Routing Table.
>
> Anyway, the text is sloppy and discussions about how redistribution is done
> and whether that is shown in the Loc-Rib view or as an override to the
> rib-out manifests in discussions in things like BMP or the Yang modules.
> It's still not as cleanly settled as it should be.
>
> Offering my opinion on this abstract model, I've tended to think about a
> better route in the Routing Table (e.g. a static route with a better admin
> distance/preference) as being selected into the Loc-Rib by considering it a
> route injected via a virtual Adj-Rib-In.  But that's just my personal
> justification.
>
> ----
>
> Juniper's implementation roughly works like the following.  Since it's
> derived from GateD heritage, many similar implementations will behave in a
> similar fashion.
>
> In a single routing table, there is a total ordering on all contributors to
> a given destination.
>
> The highest level of ordering is "preference", which roughly corresponds to
> admin-distance.
>
> When routes are BGP routes, the BGP routes are ordered based largely on
> standard RFC rules.  The deviations from those rules are the usual vendor
> deviations from standards based on when the later standards were published,
> and the mix of features the operator wants.  Examples of deviations are
> whether RFC 5004 is used for temporal vs. router-id based deterministic
> tie-breaking.
>
> BGP routes vs. non-BGP routes are not directly comparable, even when they
> have the same preference, but we have criteria that permits them to be
> selected deterministically.
>
> For non-BGP routes vs. non-BGP routes of two different protocols, we
> similarly will select things deterministically, but may be willing to use
> particular properties of the routes that may be comparable; e.g. metric.
>
> Much of this process is documented here:
>
> https://www.juniper.net/documentation/en_US/junos/topics/reference/general/routing-protocols-address-representation.html
>
> For the described scenarios in draft-chen-bgp-redist, JUNOS doesn't have
> determinism issues.
>
> In our more recent multi-threaded BGP mode, we at one point in the design
> had an issue somewhat related to the one described in the draft.  In our
> implementation, we address the issue by always making the Routing Table and
> the BGP thread always exchange the best route in the local total-ordering.
>
> -- Jeff
>
> _______________________________________________
> Idr mailing list
> Idr@ietf.org
> https://www.ietf.org/mailman/listinfo/idr
>