Re: [Bier] Feedback on draft-eckert-bier-rbs-00
IJsbrand Wijnands <ice@braindump.be> Mon, 06 March 2023 09:58 UTC
Return-Path: <ice@braindump.be>
X-Original-To: bier@ietfa.amsl.com
Delivered-To: bier@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 334AFC151AEB; Mon, 6 Mar 2023 01:58:31 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.886
X-Spam-Level:
X-Spam-Status: No, score=-1.886 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=mailprotect.be
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 7Gnaq-_NTDwA; Mon, 6 Mar 2023 01:58:26 -0800 (PST)
Received: from out002.mailprotect.be (out002.mailprotect.be [83.217.72.86]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id A1AD8C14F721; Mon, 6 Mar 2023 01:58:22 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mailprotect.be; s=mail; h=To:References:Message-Id: Content-Transfer-Encoding:Cc:Date:In-Reply-To:From:Subject:Mime-Version: Content-Type:reply-to:sender:bcc; bh=KHNqiUlTzB1Ik3X/DRbLFpji4r9pMYqMmI4tb6K3kyk=; b=TtmmMH10mTnWIhB5LCEYLj83n+ 7k4d/15vQ3wgkBKyu/vAVVYDee4VSpBz4SymendjApqDNF20DPsGjOgbHcwNGPpqg9LUX0vtmr+Xk KukK69CpIxVhfAW9LwR170PPMgmuL1HjY7YvYNLSmJWOxgJGL9q4zktppNNISoZhlD+ynU2lGMW+0 6MzCOx22eTsy/wczfy/WeAP6W60qWWgYlwwWIdxCLSpgkZQQ+VCyGOE2Ic2Pz0fwSxpt/99Wu2KqH ux/11p9ySMe+rNFqKfiaQV8nxx/1bo8t8//L+X/DQ+/0qtrkjIpytWOCxTwdEoemgKi2bJjHxnMkS Q5LRnImQ==;
Received: from smtp-auth.mailprotect.be ([178.208.39.159]) by com-mpt-out002.mailprotect.be with esmtp (Exim 4.92) (envelope-from <ice@braindump.be>) id 1pZ7bn-000GLu-9l; Mon, 06 Mar 2023 10:58:20 +0100
Received: from smtpclient.apple (29.225-241-81.adsl-static.isp.belgacom.be [81.241.225.29]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp-auth.mailprotect.be (Postfix) with ESMTPSA id F1692C0381; Mon, 6 Mar 2023 10:58:17 +0100 (CET)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 14.0 \(3654.120.0.1.13\))
From: IJsbrand Wijnands <ice@braindump.be>
In-Reply-To: <ZAFILEvZWDowZr4j@faui48e.informatik.uni-erlangen.de>
Date: Mon, 06 Mar 2023 10:58:17 +0100
Cc: draft-eckert-bier-rbs@ietf.org, BIER WG <bier@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <5A31AF91-19B8-458F-B6C9-90521CD62673@braindump.be>
References: <Y3NpPev+bIhWrtyS@faui48e.informatik.uni-erlangen.de> <0DD084D4-429B-4126-AC47-22471BCBA7A9@braindump.be> <F5ECC551-341C-4C5E-98BF-28E4D9F11C43@braindump.be> <ZAFILEvZWDowZr4j@faui48e.informatik.uni-erlangen.de>
To: Toerless Eckert <tte@cs.fau.de>
X-Mailer: Apple Mail (2.3654.120.0.1.13)
X-Originating-IP: 178.208.39.159
X-SpamExperts-Domain: mailprotect.be
X-SpamExperts-Username: 178.208.39.128/27
Authentication-Results: mailprotect.be; auth=pass smtp.auth=178.208.39.128/27@mailprotect.be
X-SpamExperts-Outgoing-Class: ham
X-SpamExperts-Outgoing-Evidence: Combined (0.25)
X-Recommended-Action: accept
X-Filter-ID: Pt3MvcO5N4iKaDQ5O6lkdGlMVN6RH8bjRMzItlySaT8j/tsoDBXHm7GoPILx2kCGPUtbdvnXkggZ 3YnVId/Y5jcf0yeVQAvfjHznO7+bT5wqL5ce0izo3MEwlThXh+L+Eq1uToV35zEggExruXqwDns7 zmR8SrJBKoHsJAkCbDqD2rMopwoVQz84tBAdBLvFyQLfXoabdmF7Z8uHfA5hh3uq8CKCiMZoXsv6 G5MKtwsEybI1sOftHmSKUCHCvcq0TzZjnkrrL1mACMw/UF0G0bQ7KakNnWEuMvWMJYJgW0Q6hZSw HCra4RCB9gqNeCQGJYN6Crh9DXUDEtWWsjsNUfobM/P6vznYRdd5hfgiYzLMODodi5MLJiAvrVIi QFNhc8S+HKYI1vbaqYoREZsvVKq8YZ9/SG1CqFB/T9oOuGkszjGcI+mbLJLuOAP016dVWgH88tf6 uZ3Odz3W94IkDNey7wEf3rBXwmzCivpMYSIRN1GWdLWiieE4sApt6oWVGSRxJYEqfHH6e3h3i3L5 b/siHDX/ZpgnR2L6ZSxUhuCgUnzQUUh7zrY+gccQHlvFRbojusghAHJVSwcPHv0z3JA5Fxib54ho r19Rav1EA3X0VjYiWyhWVAgRTI92lX0U8pjOFfnWL8N84Gl+TAvkmIQpRkKgWi6P+HuUVk3o3aTB eNDGo37FEc/C+HZkCypl2eHIgfodXOAsKprebW4raW2Mbyd+GRVvzbMOSc10c2STPi9JX6U9FqNq IgWJRA+y1C9SYHs1HVkNOVbBoq352rVtcQ+zTxxVZMQuWFZ1NemnYhV4s0WHRXGZZPQzDltIAHOu 27cKJle450MdBm594FVdc2K+waea2lUOnotr/fNQvy23SZXSfMZ7RzHGH1l2naPKc3yQvxQmzKsA iXiBbMvvcuVU1g4t91zqzmR5j4Ef4ngLmK0LObbZiXBeyQEpViU4oE+ncQYpfHQGnNPTwauNrRqm dKI/mhaL/v8+Pmh326zBXCRRkPNZOeZhl83ItgZkcRkCnoMzps1w8ZlyWp5OlwYUQ1ejeQ1GJqZG MW0WCHtA05KYHui9AUj7nFxAZyCgxZHINA6A5+7T9o6byzvDwAcft/nzfIptzPRrK2/ShgkK/IUj CNCeBQgjifLRQVNUvx4T911LgXOuhzWRBTEvuGslKTrRIXcXpFg5ivY=
X-Report-Abuse-To: spam@com-mpt-mgt001.mailprotect.be
Archived-At: <https://mailarchive.ietf.org/arch/msg/bier/NxRE5lBkNkVBJ988l_P2vHinb4U>
Subject: Re: [Bier] Feedback on draft-eckert-bier-rbs-00
X-BeenThere: bier@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "\"Bit Indexed Explicit Replication discussion list\"" <bier.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/bier>, <mailto:bier-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/bier/>
List-Post: <mailto:bier@ietf.org>
List-Help: <mailto:bier-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/bier>, <mailto:bier-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 06 Mar 2023 09:58:31 -0000
Hi Toerless, > Sorry for the long delay. I was hoping that i could answer the questions > in a draft update, but the productive work that has happened around RBS > primarily with Michael Menths team has somewhat put other issues than a > draft update in the front burner for the last quarter, so i will > ask for a slot at IETF116 to explain how we're progressing, but that also means its > best to discuss your questions on the list now. I understand. However, do make sure this is addressed in the draft sooner than later. It would be unfortunate if the encoding appears to be unstable/fragile and the work you’ve done is invalided. > > 1) mismatch of bitstring length between sender and receiver > > Thanks for bringing this up. A actually had to think about this issue already > some time ago when doing some researchy unicast forwarding scheme > draft-eckert-intarea-functional-addr-internets. And trying to figure out if, and then > what new quality or quantity of a problem this could be. > > First of all, i don't think the worst-case network-layer problem of a > mismatched packet is bad with RBS. It can result in some additional packet > copies in the network with a low likelyhood to even reach any destinations. > This is because every copy created will have a smaller remaining RBS address > to proceed. This is RBS's equivalent to BIER/BIER-TE clearing bits in the > bitstring and thus exhausting incorrect copies even before TTL exiry hits. My understanding is based on what I’m gleaning from draft-eckert-bier-rbs-00.html section 3.4. It says: "the length of the BitString is known from the length of the RBS-BIFT. In the case of R1 it is therefore known to be 6 bits long.” BitString (of RU0) 1 2 3 4 5 6 +-+-+-+-+-+-+-..-+...+...+ |0|1|1|1|0|1|AF1 |RU1|RU2| +-+-+-+-+-+-+-..-+...+…+ If there is a mismatch of the BIFT table in R1 (say its 7 bits and the packet has 6), the router will read an incorrect value of RU1 because its offset by 1 bit and everything fails onwards. > Secondly, the RBS forwarding plane must recognize incorrect RU-length fields An other failure case would be where the BIFT-Table length stays the same, but bits are re-assigned to different interfaces. > anyhow, because they can not result in pointing past the RBS header, and an attacker > could always create malicious RBS headers, same as creating malicious MPLS or IPv6 > extension headers. If one can parse all the address offsets before replicating one > can probably eliminate almost all wrong copies. But even if this only happens > copy-by-copy, it still seems to me that almost all those wrong copies would die > somewhere along the path. If each BFR parses the entire RBS, you might be able to detect inconsistency in the packet encoding. But this goes against the architecture principle that a BFR only needs to look at its own part of the BIFT. > Now, i had also though about a bitstring-length field in the header, rewrite > hop-by-hop, but IMHO that does not buy anything, because ultimately we need for > the sender that created the RBS header and every RBS router on the tree to agree. > So when we want to indicate length it would need to be for each bitstring in > the RBS address separately, which would be header-size-prohibitive, unless we > end up with variable bitstring length not in bits, but maybe larger quantity, like bytes. > Thats something we investigate anyhow for reasons of possible lowest-common > denominator data center forwarding plane restrictions. See update we want to give @IETF116. I understand its inconvenient to encode the size of the BIFTs, but it would make the encoding more solid and have each BFR just reject the packet immediately without incorrect parsing of the BIFT. Allowing packets to be forwarded randomly across the BIER network due to packet/control-plane inconsistency is pretty ugly, IMO. > > But: I think we can much better and cheaper solve this problem in the control plane > with an approach that is equally applicable for BIER-TE - but thats a somewhat longer writeup, > so give me a bit more time for that. > > 2) recursive flag > > Yes, agreed. We are experimenting with that encoding. If you remember my slides (and the drafts > reference to the github URHL), there is also the optimization for dense trees > to reduce their RBS tree size by indicating on the pre-ultimate hop to replicate to > all leaf neighbors. Typical case would be IPTV of course or similar "dense-trees". > This is what on the china simulation results brings down the total number of copies towards > those dense trees. There are a few options to encode, have not concluded on it. > The BIFT leaf bit might then simply be to distinguish leaf neighbors for the purpose > of such last-hop broadcast from non-leaf neighbors. This is also something to address sooner rather than later. Thx, Ice. > > Cheers > Toerless > > On Fri, Feb 17, 2023 at 02:09:10PM +0100, IJsbrand Wijnands wrote: >> Hey Toerless, >> >> Do you have a timeline in mind to address my questions? >> >> Thx, >> >> Ice. >> >>> On 23 Jan 2023, at 18:26, IJsbrand Wijnands <ice@braindump.be> wrote: >>> >>> Hey Toerless, >>> >>> Did you address the issues I raised below? >>> >>> Thx, >>> >>> Ice. >>> >>> Sent from my iPhone >>> >>>> On 15 Nov 2022, at 11:26, Toerless Eckert <tte@cs.fau.de> wrote: >>>> >>>> Thanks, Ice - also Tony/Greg feedback/mails.. >>>> >>>> want to incooporate feedback into draft updates, hence no quick reply here, >>>> as to other discus here. >>>> >>>> Cheers >>>> Toerless >>>> >>>> >>>>> On Thu, Nov 10, 2022 at 01:32:51AM +0000, IJsbrand Wijnands wrote: >>>>> Dear Authors, >>>>> >>>>> Here is some feedback on the RBS encoding. This is based on my understanding of the draft and discussion with Toerless today. >>>>> >>>>> 1. It seems that when a BIER router is parsing the RecursiveUnit, the length of the BitString is derived from the length of the BIFT Table on the router processing the packet. To me that seems very tricky as the length of the BIFT table might change when interfaces/adjacencies get added and removed. There might always be transient cases where the length of the BitString in the packet might be different from the router’s BIFT Table. If that happens, the complete parsing of the RBS packet goes to sh*t. It would be good to somehow add the length of the BitString inside the RBS header to prevent these cases from happening and be more defensive. >>>>> >>>>> 2. The BIFT table has a Recursive flag to indicate if a BIER node has downstream receivers. This is also required to correctly parse the RBS header. In my mind this should not be a property of the BIFT table. A bier node might have nodes connected to it, but that doesn’t mean they are part of the tree. The recursive flag should be part of the encoded tree inside the RBS header. >>>>> >>>>> Thx, >>>>> >>>>> Ice. >>>>> >>>> >>>> -- >>>> --- >>>> tte@cs.fau.de >>> >>> _______________________________________________ >>> BIER mailing list >>> BIER@ietf.org >>> https://www.ietf.org/mailman/listinfo/bier >>
- [Bier] Feedback on draft-eckert-bier-rbs-00 IJsbrand Wijnands
- Re: [Bier] Feedback on draft-eckert-bier-rbs-00 Toerless Eckert
- Re: [Bier] Feedback on draft-eckert-bier-rbs-00 IJsbrand Wijnands
- Re: [Bier] Feedback on draft-eckert-bier-rbs-00 IJsbrand Wijnands
- Re: [Bier] Feedback on draft-eckert-bier-rbs-00 Toerless Eckert
- Re: [Bier] Feedback on draft-eckert-bier-rbs-00 IJsbrand Wijnands
- Re: [Bier] Feedback on draft-eckert-bier-rbs-00 Toerless Eckert
- Re: [Bier] Feedback on draft-eckert-bier-rbs-00 IJsbrand Wijnands