Re: [Rift] cc: from private thread, flooding rules ...

Tony Przygienda <tonysietf@gmail.com> Tue, 30 April 2019 14:06 UTC

Return-Path: <tonysietf@gmail.com>
X-Original-To: rift@ietfa.amsl.com
Delivered-To: rift@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 29CCC1200D6 for <rift@ietfa.amsl.com>; Tue, 30 Apr 2019 07:06:50 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 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_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=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 oU0kGwhm6NxV for <rift@ietfa.amsl.com>; Tue, 30 Apr 2019 07:06:44 -0700 (PDT)
Received: from mail-ed1-x52e.google.com (mail-ed1-x52e.google.com [IPv6:2a00:1450:4864:20::52e]) (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 192DF1200B6 for <rift@ietf.org>; Tue, 30 Apr 2019 07:06:44 -0700 (PDT)
Received: by mail-ed1-x52e.google.com with SMTP id e56so6127037ede.7 for <rift@ietf.org>; Tue, 30 Apr 2019 07:06:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=k5CVZjv6wx/C7B7qQucqTUe30Eljw65mn2OHDraonSY=; b=gQiq77uCCooWYE5pwO1O7Wka/Mk6RCz40IKcjP96LGRFEUNYCJ1pLkeJt3vIvF15cx SkyWYmqCklfAbSfTbQoLlFCCFvD5qPzZQ2GyqG1zqNt1JmbXJ+Uhfk6CNH6iqoE6TIU9 o5FtPM0564WHILjjXF7e7+nnUUgScnQKxfkSgG5+xknGeBXSX7eTd2XB1l3DlABuJMyr v/GnTrXRbYXCEH9m/lj7nfTy8+yr726FuUJxQaCVpsNKlCePe/TSR53re0CZdc1oI7f+ FEknx5Iym7BwvaqvZUsNvYUmA12A/xMuQtCpks8tIhmk8DbjMgTn0exKpptPa5YdY8+P D8jg==
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=k5CVZjv6wx/C7B7qQucqTUe30Eljw65mn2OHDraonSY=; b=kUybbp/ZcgBsVAmQFr2PigGKfacb/vwu2ngX8cXcq76mrpBYRWM6TCSRFBsSER7BTQ SutPcQM6dez4lsG0NcLua+zx30bJ72ynoXnEShL+anz5HDIcujSe24VLS3B/W0kMS9JG MAMHELUwGLC+pjCX3U6kbab5oR89lm9sIJUDb1Co3RsZYTPoge0pZJsUhKMMmVrLaimX cP03o5atYtLZNw167V3b51Cti13KEgEl+LFedb0MtD/qd+0aTwbFkMkHdccrZeJR+djh XV0qwB1u7ci9clmrDiFUnnidRhUU2gCdd3F44RQ+oqCkJvj7BXsuj4zIamX3m3VKrhV/ KzYQ==
X-Gm-Message-State: APjAAAWicUzlV5rDsqSx3teMtlypQ8XtjRIrUPm1U6rpy9s2vhwoPiSd AaJQwkwnJxbFYhr2hVtaKckEmm5LewqA7+QQbmU=
X-Google-Smtp-Source: APXvYqza0EE0dilyY2lNDngbkLlrw9AeXWZhRUjOQCK9Dd7njFvXFXeWneWtXITsBzghn6lhLke5LjAe9kRkQnkDJtI=
X-Received: by 2002:a50:ac02:: with SMTP id v2mr43245477edc.86.1556633202614; Tue, 30 Apr 2019 07:06:42 -0700 (PDT)
MIME-Version: 1.0
References: <CA+wi2hNGa26WCAwFKxNFB42vaPpFL_YdtEpcnFkBte1v_0HSuA@mail.gmail.com> <201904301702426933703@zte.com.cn>
In-Reply-To: <201904301702426933703@zte.com.cn>
From: Tony Przygienda <tonysietf@gmail.com>
Date: Tue, 30 Apr 2019 07:06:06 -0700
Message-ID: <CA+wi2hM3yTELZRFhg+i0jMKksp96NaHE8WerAF0vov-sn0vK7Q@mail.gmail.com>
To: xu.benchong@zte.com.cn
Cc: rift@ietf.org, "zhang.zheng" <zhang.zheng@zte.com.cn>
Content-Type: multipart/alternative; boundary="0000000000001667aa0587bfe94d"
Archived-At: <https://mailarchive.ietf.org/arch/msg/rift/1HKizE0kljMyWc8nKUiDrEBooEs>
Subject: Re: [Rift] cc: from private thread, flooding rules ...
X-BeenThere: rift@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Discussion of Routing in Fat Trees <rift.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/rift>, <mailto:rift-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/rift/>
List-Post: <mailto:rift@ietf.org>
List-Help: <mailto:rift-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/rift>, <mailto:rift-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 30 Apr 2019 14:06:50 -0000

On Tue, Apr 30, 2019 at 2:02 AM <xu.benchong@zte.com.cn> wrote:

>
> Tony,
>
> Thanks for your reply.
>

Xu, my pleasure ;-)


>
> 1. It's not a standard Fat Tree,  NODE3 has only one north neighbor NODE1,
> and NODE4 has a north neighbor NODE2. So when link between NODE1 and NODE3
> be down, HAL of NODE3 changes from 10 to 9.
>

ok, what's the link nod3-node4 and node1-node2? horizontal links? if node3
is down, it cannot have a HAL so I try to still interpret it. Basically, if
you are thinking about Node1 _OR_ Node2 going away then the other node will
always seed. let's assume node1 died, then you'll see

Node2
|
Node4
|
Node3

hierarchy being built which is intended. if e.g. node3 goes down, your
network is partitioned. there will be two networks

node1-node2
 |
node4

rest will not be able to obtain a seed (basically without a ToF node you
can't build up a fabric using ZTP since you simply don't know what is up
and what is down)


>
> NODE1-----NODE2
>
> |                 |
>
> |                 |
>
> NODE3-----NODE4
>
> |
>
> |
>
> NODE5 ......
>
> |
>
> |
>
> NODE6 ......
>
>
> ZTP is very good for network initialization. If ZTP is working all the
> way, it may be used limited for security reason. Any new higher level node
> connect in network or last hightest level neighbor get down may cause
> network rebuild. It will easy to be attacked, so I think it's better to
> work in a node start stage.
>

I think the security section explains very well the trade-off between
security needs and ZTP possible ... This is nothing special for RIFT, it's
universal.


>
> 2. Aboute mobility attributes, the leaf is dispatch address route with 32
> mask and connect route with shorter mask, wether is it support mobility
> prefix can be controlled.
>

I can't parse that really. Does RIFT support overlapping prefixes? Yes,
sure. if the /32 moves then it will be a more specific match. The problem
is obviously here if traffic forwarded out a PoD hits a match southbound on
aggregate while the more specific moved into another PoD. Then it will
greedily blackhole. Again, nothing specific for RIFT really, aggregates
blackhnole if they attract traffic they cannot route. Multiple solutions
exist. Such prefixes could be leaked south e.g. but question is really, WHY
would you need aggregates since RIFT automatically aggregates/de-aggregates
for you in sufficient fashion. An example would be good.


>
> 3. >  Yes, it would be possible to configure PoDs by KV but I don't see
> that  as being much different from configuring it on the device itself. The
> KV  would need to be directed so the node knows it is being targeted. Level
>  you cannot get from KV ;-) since you can't form 3-way until you have
>  level (observe that LIEs carry the level offers and with that levels are
>  negotiated to form 3-way). And you can't flood KV until you have an
>  established topology.
>
>
> If we support get configuration by KV tie, the network can be easy control
> by ToF node manual or automatic. ToF(s) can learn network topology by N-TIE
> and send node level and pods by KV tie to them after ZTP stage to confirm
> the network stable. Or the network can be centrol controlled by TOF, The
> controler don't need rember the ip addr of every node.
>

Well, you CAN'T send level from ToF since you won't have 3-way adjacencies
and with that flooding ;-) You need ZTP working first which will establish
level and then you _could_ send PoD to specific nodes via KV, that's true
but it's really _per_ node while KV is pruned flooding so it's bit tricky
since you need to flood to the "level of the PoD" and then prune. But
again, picutre/example would be good.


>
> 4. About the KV struct,  I am not fit the thrift very well, and I'll learn
> about it:-)
>
sure, thrift is widely deployed, stable, elegant, powerfull and easy so
it's worth learning ;-)  It vacuums the floors as well but that's a hidden
feature :-P


>
>
> 5. I have checked Bruno's python code, there is no this problem
>
> process_rx_tie_packet_info
>
>             elif comparison > 0:
>
>                 # We have a newer version of the TIE, send it
>
>                 start_sending_tie_header = db_tie_packet.header
>
>
thanks for that. Like I said, good amount of people were in the weekly
meetings & we chewed the flooding rules over and over again ;-) while they
have been implemented to make sure we don't miss stuff. So we probably
talked through that in detail, agreed and then it was me who miswrote then
in the throes of editorship'ing ;-) on one of the iterations since both
implementations did the correct thing while the spec was wrong as you
pointed out. Again, great catch ;-)

--- tony