Re: [babel] Alvaro Retana's Discuss on draft-ietf-babel-source-specific-07: (with DISCUSS and COMMENT)

Toke Høiland-Jørgensen <toke@toke.dk> Thu, 05 November 2020 12:29 UTC

Return-Path: <toke@toke.dk>
X-Original-To: babel@ietfa.amsl.com
Delivered-To: babel@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 150513A1858; Thu, 5 Nov 2020 04:29:15 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.099
X-Spam-Level:
X-Spam-Status: No, score=-2.099 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, 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=toke.dk
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 erQIw-Hf0WUC; Thu, 5 Nov 2020 04:29:13 -0800 (PST)
Received: from mail.toke.dk (mail.toke.dk [45.145.95.4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CFC9F3A1824; Thu, 5 Nov 2020 04:28:56 -0800 (PST)
From: Toke Høiland-Jørgensen <toke@toke.dk>
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=toke.dk; s=20161023; t=1604579333; bh=c2PVGo6dJZH1CJiZ/rek8czOsqANiXHn3zb8vYXl92k=; h=From:To:Cc:Subject:In-Reply-To:References:Date:From; b=Ya1hZI5GqyVYDDCdMI7btMozuzfv1ZySsgzqzfVUYE8LTEQeIfixmFUToQx43yk1N 1ovVSgkBkQN6cbAIucD0dBUzmPUvPVuoT4LvctZh6ddHFweBLGlVyioDiZku5wJG44 GOlD3Hl0gpMtAIdu87AfKpYoAcWvr8pSCMz9xqExcWadYE4zn/x4CcyuNZTIaFIZmx rygWpbWTxjR2k4A0tJIT6FmkUypmNnTO0QcEmwZS03xWWQY3JZJnHMzG9Q17aTCo1h xR3Dk3Czq1QmvIv5diDo57fkyidyCZRLIF/S/Z/tQzuB9gIkE8KMZZFDpYfZD6v5k2 4jafwNRxZihfA==
To: Alvaro Retana <aretana.ietf@gmail.com>, The IESG <iesg@ietf.org>
Cc: draft-ietf-babel-source-specific@ietf.org, Donald Eastlake <d3e3e3@gmail.com>, babel-chairs@ietf.org, babel@ietf.org
In-Reply-To: <CAMMESsyJ+d5oRaO3bBf1oOzFcNLPyXszkGa1-HwTgvU5DZo6Sg@mail.gmail.com>
References: <160441631177.15161.14360810315064872038@ietfa.amsl.com> <87d00ujerf.fsf@toke.dk> <CAMMESsyJ+d5oRaO3bBf1oOzFcNLPyXszkGa1-HwTgvU5DZo6Sg@mail.gmail.com>
Date: Thu, 05 Nov 2020 13:28:52 +0100
X-Clacks-Overhead: GNU Terry Pratchett
Message-ID: <87h7q4t2bf.fsf@toke.dk>
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Archived-At: <https://mailarchive.ietf.org/arch/msg/babel/JkN-_UZOTmdxA2bDgQ5tbQJjG40>
Subject: Re: [babel] Alvaro Retana's Discuss on draft-ietf-babel-source-specific-07: (with DISCUSS and COMMENT)
X-BeenThere: babel@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "A list for discussion of the Babel Routing Protocol." <babel.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/babel>, <mailto:babel-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/babel/>
List-Post: <mailto:babel@ietf.org>
List-Help: <mailto:babel-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/babel>, <mailto:babel-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 05 Nov 2020 12:29:15 -0000

Alvaro Retana <aretana.ietf@gmail.com> writes:

> On November 3, 2020 at 4:45:44 PM, Toke Høiland-Jørgensen wrote:
>
> Toke:
>
> Hi!
>
>
>> Alvaro Retana via Datatracker writes:
>>
> ...
>> > Still, it shows how easy it is to define a policy that may not result
>> > in the expected behavior because of the destination-first operation.
>> > Please add some guidance on the advertisements and how they may
>> > interact in the routing table.
>> >
>> > Note that what I'm asking for may just be a good example of what to do/
>> > not to do. rfc8678/§5 presents an example of how the forwarding table is
>> > constructed based on a set of routes -- something like that would be
>> > great!
>>
>> Since your concern seems to be related to a particular example of what
>> the source-specific extension can be used for, mentioned in the
>> introduction, I'm not sure I see how it would improve the document to
>> write a whole bunch of text addressing this particular operational
>> concern? I mean, the section you're quoting the example from (section 4)
>> literally says that the choice of dest first / source first is arbitrary
>> and all that is required is that it is consistent, before then going
>> ahead and spelling out the choice.
>
> The choice may have been arbitrary, but §4 explicitly requires
> destination-first: "A Babel implementation MUST choose routing table
> entries by using the so-called destination-first ordering..."

I read those two paragraphs in sequence as, basically, "(p1) the choice
is arbitrary, (p2) so for this protocol we have chosen
destination-first". As a reader and implementer this could have been
done by coin toss for all I care :)

> Note that I am not questioning the choice, I'm just asking for more
> details.

I do believe the choice was, in fact, not done by coin toss, but I'll
let Juliusz chime in here as I'm not sure I'm able to explain it myself...

>> One small change in the introduction that may make this clearer, was to
>> amend this sentence in the third paragraph of the introduction:
>>
>> "When using
>> this technique in a network connected to multiple providers, every
>> host is assigned multiple addresses, one per provider."
>>
>> to read something like:
>>
>> "When using
>> this technique in a network connected to multiple providers, every
>> host is assigned multiple addresses, one per provider, and each edge
>> router exports a default route with a source prefix corresponding to
>> the prefix delegated from its upstream."
>
> That is not a bad change.  However, my concern is not just about the
> multihomed case, but about the general handling of advertisements into
> the routing table.

Ah, so what you're saying is that you want the draft to spell out *how*
to achieve this (from s4):

"a routing table entry R1 is preferred to a routing table entry R2 when
 either R1's destination prefix is more specific than R2's, or the
 destination prefixes are equal and R1's source prefix is more specific
 than R2's."

IDK, that seems a bit like an implementation detail that should be left
up to the implementer (RFC8678 is *long*, and the kind of document that
really makes my eyes glaze over, so I guess this is a taste thing?).
I'll let the draft authors answer what they think is appropriate here...

>> > (b) How is the source address selected by the host?
>>
>> [...]
>>
>> > Even though this document is about Babel and not the host, I would
>> > like to see a (short) discussion about how the host is expected to
>> > behave (or what it needs to consider) in light of the
>> > destination-first operation.
>>
>> Juliusz can correct me if I'm wrong here, but I believe this is left out
>> because it really doesn't matter. The host can pick source addresses
>> however it likes, and packets will make their way to the right upstream
>> (in the multi-homing scenario).
>
> If it doesn't matter, I would like to understand why.
>
> The multihomed case with 2 default routes is straight forward -- but
> how would it work in a more complex case (§4.4/rfc8678, for example)
> where a specific source address is expected?  Or is this use case not
> supported?

I see nothing about the topology in RFC8678/§4.4 that could not be
implemented with Babel source-specific routing. SERb2 could just
advertise '2001:db8:0:6666::/64 from 2001:db8:0:b000::/52', and the
forwarding plane would do the right thing, in that only packets with the
matching source and destination prefix would make it to the H61 host. A
host on the local network would have to pick the right source prefix
according to the policy, but whether it does that by trial and error or
by some out of band discovery mechanism really doesn't matter as far as
Babel is concerned, and I would consider this out of scope for this
draft...

-Toke