Re: [Rift] [RIFT][Non equal cost anycast]

Tony Przygienda <> Fri, 26 July 2019 19:34 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 952A9120090 for <>; Fri, 26 Jul 2019 12:34:17 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Status: No, score=-1.997 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (2048-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id 7uXhkOWSCjnm for <>; Fri, 26 Jul 2019 12:34:15 -0700 (PDT)
Received: from ( [IPv6:2a00:1450:4864:20::52d]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 144F5120071 for <>; Fri, 26 Jul 2019 12:34:15 -0700 (PDT)
Received: by with SMTP id w13so54212567eds.4 for <>; Fri, 26 Jul 2019 12:34:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=RZWj59wcvCfMVguJpEz/j6JYUhKzFGwOeHqozNDaloc=; b=Hj8Ap/PkmIGeUeiAK37KDT5Otnwys1jkXYnxKFKlQZEA7xY6RyNWykAiLEO87tjlQY yciWYzU0AtNGs1Pvey93aF34tuPp1BoTnQRykzHu9LENvqCU8dni9idofyna7ncVWxgr 5xYIw+MNlTAJDpMfs+dgL+2xtCm2pqZRvzQn1AkQ6FSdARnKmksb4DSphskVYOK3hgWw YdzuH03/aeE9siN/nkPh4Ut9NVYUb+pJYvdcNpOyi5oJv3BHpRdQ4dBZv+u6wBxHt6C4 n9AwO1szgbUxmgqGkz6ys7ozf9m4cB+9Kj7Iu8m/hQQuto/7UBBN1wI0BquHyj7EUkUe 4Fcg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=RZWj59wcvCfMVguJpEz/j6JYUhKzFGwOeHqozNDaloc=; b=RBvYxSe05jf0r2dzpO3H930q3MH2xPjI8BHyomihRGlYNInAgX7K+OKJsuC+eKaSy1 2A73+IGZngavQ4Gxm9MpKJWsegBuNYic/zgxxV1S2V1y1cfPvrQqRxQW11ZcxG1ZUgif fA5/TCI1gMVX/xAzWaAbkfmXvZtXioYjUvt/dgOoBUAsm/khuvnQOVvYTc5G2VW90Cts wn+SbFbUw8AdLEZFEWHyMFBPRUy20G4Y2mJPUOmI8iTln/mF4kshthEoQwmNLHP8uH1Z clpVOogEWmyIZiqFP/VD+3VY3VDukv0wlHHP6e6K0nhPtWKrkLvdDB3qQB+dz4WcHZ6r v3bQ==
X-Gm-Message-State: APjAAAWf9+MJKHw7kbJsR9CU2aU2CIX2AwCW8C74V3eq63VGmximfbtR lIqX7dn0nezsSRmyP+LJlpxwjH9PoM7MM++9QdtauamOuasueg==
X-Google-Smtp-Source: APXvYqw/5dtQx6b6i1FU4tpoFgpr8o5cDEceaoNvfju8rynBHAVLlHQNbtEcdAVEj+BmHZwbJ69FyWtjAY3NIs0m3uo=
X-Received: by 2002:a50:ad0c:: with SMTP id y12mr82717876edc.25.1564169653635; Fri, 26 Jul 2019 12:34:13 -0700 (PDT)
MIME-Version: 1.0
References: <>
In-Reply-To: <>
From: Tony Przygienda <>
Date: Fri, 26 Jul 2019 15:33:37 -0400
Message-ID: <>
Cc: Antoni Przygienda <>,
Content-Type: multipart/alternative; boundary="00000000000092d2da058e9aa0ef"
Archived-At: <>
Subject: Re: [Rift] [RIFT][Non equal cost anycast]
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Fri, 26 Jul 2019 19:34:18 -0000

Benchong, as always, when people start implement they start to ask the real
questions ;-) Yes, any cast in RIFT is much closer to what you would
consider “true any cast” than IP is which is really just ECMP on same
address. In RIFT anycast on different distance nodes is a normal thing.

First, it it important to understand the difference between mobility and
any cast on the fabric. if a prefix moves on the fabric without using the
mobility attributes it can appear in two locations @ once of course (if the
new TIE floods faster than the previous location manages to purge the
prefix). That's not a proper anycast of course, that's just an artefact. If
the prefix properly attaches timestamps by some means (such as 6lo) it will
be understood as having moved, otherwise it will be any cast for a bit.

And then, of course there is true any cast which is equal to two prefixes
advertised from two nodes being equal. RIFT is loop-free which means that
it doesn’t really care all that much about distance so if a packet enters
from ToF it can be forwarded to any leaf showing any cast. That allows true
“service on any cast” architecture. In case when you route from the leaf
the packet will use default (unless an implementation does their own things
the spec doesn’t mention but doesn’t suppress either) until it pops up far
enough it sees any cast @ which point in time it will turn the packet south
(assuming all anycast is on leafs). if balancing of any cast over whole
metric is desired then the packet needs to be pushed all the way to the ToF
using tunnels or some other solution.

So, basically, any cast is just a funky next-hop on a prefix that can point
to two different nodes & metric can be used to balance or ignored and the
spec does not need to say more I think.

This little diatribe should make it into RIFT applicability statement in
some form I think ...

-- tony

On Fri, Jul 26, 2019 at 5:57 AM <> wrote:

> Hi,Tony
> Can you talk about REQ6, How does RIFT support it? Is it benefiting from
> the default route?
> "  REQ6:    Non equal cost anycast must be supported to allow for easy
>             and robust multi-homing of services without regressing to
>             careful balancing of link costs."
> Thank you!
> Benchong
> _______________________________________________
> RIFT mailing list