Re: [Bier] Questions regarding <draft-zhang-bier-bierin6-03>

Senthil Dhanaraj <senthil.dhanaraj.ietf@gmail.com> Mon, 15 July 2019 06:15 UTC

Return-Path: <senthil.dhanaraj.ietf@gmail.com>
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 773F41200B6; Sun, 14 Jul 2019 23:15:07 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 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, HTTPS_HTTP_MISMATCH=0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=unavailable 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 0U00e1r7DRvF; Sun, 14 Jul 2019 23:15:03 -0700 (PDT)
Received: from mail-ed1-x52d.google.com (mail-ed1-x52d.google.com [IPv6:2a00:1450:4864:20::52d]) (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 C9948120059; Sun, 14 Jul 2019 23:15:02 -0700 (PDT)
Received: by mail-ed1-x52d.google.com with SMTP id k21so14197284edq.3; Sun, 14 Jul 2019 23:15:02 -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=6JxkGPglYTHE8L6lmF538vvuUUE0DOqnERoNp+HuDco=; b=cknHG+KK68IidBKES03U95wqN+1VKb2qXmJklq9SEpbwYLkY6Yf8pIsWrAdKdqeC/+ 4CBZGNMiQThnkE9LRHQVXCAhX/6ji2c24Ov/PjL9vRxHgNN4dWoY+wZDubblgrDswzZc ZRlUvcOD8ARt1HQ8tXoCO/4VOiUOyMmaY44w0UY9PZakfUx2LTTVEpS5/nIbhdQvOB51 3QoXIRoIvKrs9OqncoEiFqdlTVAyyf7/BO7AMUrdjzVI8A+fDtms/bUygidhayg/huNR qvKnNA/yFWonzkdQvD+Wq3O1bypGkbMpt4QRzLSu3vWlNP8tFDbaWYKlvSwJkR+aKOyz vJGA==
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=6JxkGPglYTHE8L6lmF538vvuUUE0DOqnERoNp+HuDco=; b=mY99Rh1GvbfZNtJUiAH/eY4F+kNkhsU+MSLEK2A3sVm++bGx0tI+OW6NmK2Sluhv9j 7RC7VPbWcKMf5Rg5DPqjuLSlKnShioLzy+qSpE3Hm1P3f1ygcN75IWwNdasHz0Uv7cS/ k/yasNdhG1gqrevpb3ANv6mxRhGRDHAp8sMjQufqCObTDTqNSWHQYsxV78O4R0p9W5l4 eA2atrsWvZKXTsrSSy7zN2uKrfrPLJoq5JzwKs1NPrWY2dxCT5fJ2MLMDhRu0oyiZ35i JM63ahi4D3zuqHvTUX/rZwsxZxiNFI+IfKm7iGezyUX8ra5qkvfXiqHwFu6TdhjDJOdR fhCA==
X-Gm-Message-State: APjAAAWsDzypTGhh7QBkga40fZI1bvg5/V9QOR5jc3MaKQAK88M1dPZa XAfC/ChaiuMzBarOagOLsUigpooSqWmmmRIEkw0dBIKL
X-Google-Smtp-Source: APXvYqxWtgKAt+iKmnn7a8/olVeR3UmY8Q/VxYL27IYS+Aq+sRYv9EMlnKQFafDTF3CbnWudQDYplyKnk91XfUHha6Q=
X-Received: by 2002:a05:6402:14c4:: with SMTP id f4mr21105292edx.170.1563171301197; Sun, 14 Jul 2019 23:15:01 -0700 (PDT)
MIME-Version: 1.0
References: <16253F7987E4F346823E305D08F9115AAB8DC468@nkgeml514-mbx.china.huawei.com> <DM5PR05MB3548E853C20E03CC58C7956BD4F10@DM5PR05MB3548.namprd05.prod.outlook.com> <MWHPR05MB32792FD6E09E4444B8DF45C3ACF30@MWHPR05MB3279.namprd05.prod.outlook.com> <16253F7987E4F346823E305D08F9115AAB8DD5B0@nkgeml514-mbx.china.huawei.com> <DM5PR05MB3548F4EFF3EFC0CCDA3FDE73D4F20@DM5PR05MB3548.namprd05.prod.outlook.com> <16253F7987E4F346823E305D08F9115AAB8DD87A@nkgeml514-mbx.china.huawei.com> <DM5PR05MB354819A911C930C1B8519CD4D4F20@DM5PR05MB3548.namprd05.prod.outlook.com> <DM5PR05MB3548637A9F8CBB1CB70BE3E6D4CD0@DM5PR05MB3548.namprd05.prod.outlook.com>
In-Reply-To: <DM5PR05MB3548637A9F8CBB1CB70BE3E6D4CD0@DM5PR05MB3548.namprd05.prod.outlook.com>
From: Senthil Dhanaraj <senthil.dhanaraj.ietf@gmail.com>
Date: Mon, 15 Jul 2019 11:46:38 +0530
Message-ID: <CAG9=0bJyYGhmLnm8CVk904EcouaW7VCP7KTvuciWc57NuiFDpQ@mail.gmail.com>
To: "Jeffrey (Zhaohui) Zhang" <zzhang=40juniper.net@dmarc.ietf.org>
Cc: Xiejingrong <xiejingrong@huawei.com>, Antoni Przygienda <prz@juniper.net>, "draft-zhang-bier-bierin6@ietf.org" <draft-zhang-bier-bierin6@ietf.org>, BIER WG <bier@ietf.org>
Content-Type: multipart/alternative; boundary="000000000000218b0e058db22e5c"
Archived-At: <https://mailarchive.ietf.org/arch/msg/bier/ahjfo0QQCjym_iNJcag2euv3nus>
Subject: Re: [Bier] Questions regarding <draft-zhang-bier-bierin6-03>
X-BeenThere: bier@ietf.org
X-Mailman-Version: 2.1.29
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, 15 Jul 2019 06:15:08 -0000

Hi Jeffrey, Jingrong, et.al

The way IPv6 header [RFC8200] is defined, i believe we *cannot avoid*
walking through & process the chain of EHs in IPv6.
At best, what we can do (which is what i believe today's CHIP's do is),

If NH=X -> process in fast path defined for hdr-type=x
else       -> process in slow path  (or drop - bad?)

Above technique can be applied to both draft-zhang-bier-bierin6 &
draft-xie-bier-ipv6-encapsulation.

Besides above, below are some of the broader points considered for
comparison, that are discussed with Tony/Ice/Sandy/.. during the course of
& after ietf104.
Sharing it in the list and we shall continue to discuss on the pros & cons.

*1. Change of source-address at each hop*

draft-zhang-bier-bierin6:
Considering BIER as an L4 header, we are required to modify the source
address at each hop.
Loss of original source address (BFIR's SA) might impact source address
based filtering policies applied if any, breaks ICMP6 based error reporting
back to source etc
Yes, BFIR(source) can be identified from the bfir-id in BIER header.
But we may need to consider the cases where in the ICMP6 error packet needs
to be initiated by an non-BIER router based on IPv6 header alone.

draft-xie-bier-ipv6-encapsulation:
RFC8200 allows us to change the content of a TLV (which is part of
extension header) without having to require changing the source-address.

*2. Presence of AH/ESP headers*

draft-zhang-bier-bierin6:
Requires re-hash(AH), re-encrypt(ESP) at each hop

draft-xie-bier-ipv6-encapsulation:
Does not require hop-by-hop processing. Possible to employ E2E IPsec
protection.

*3. Fragmentation*

draft-zhang-bier-bierin6:
Requires hop-by-hop re-assembly and fragmentation ?
But IPv6 requires that only source node MUST fragment the packet &
intermediate nodes cannot fragment.
For draft-zhang-bier-bierin6, we shall consider that each hop re-originates
the packet (with self as source) and fragment afresh.
Again, this reminds us that, we cannot avoid changing the source address of
packet at each hop (point 1).

draft-xie-bier-ipv6-encapsulation:
Does not require hop-by-hop fragmentation / re-assembly

*4. Network programming *
(ex: See draft-xie-bier-ipv6-mvpn, Use FUNC part to identify the
vpn-instance instead of using MPLS style service labels)

draft-zhang-bier-bierin6:
Because the source-address is required to change at each hop, we cannot use
this technique?

draft-xie-bier-ipv6-encapsulation:
Can support.

Thanks,
Senthil

On Sat, Jul 13, 2019 at 5:48 AM Jeffrey (Zhaohui) Zhang <zzhang=
40juniper.net@dmarc.ietf.org> wrote:

> Let me ask it this way:
>
>
>
> What’s the difference between the following situation:
>
>
>
>    1. <some hop-by-hop or destination option hdr, NH=BIER> (per
>    draft-zhang-bier-bierin6-03)
>    2. <same hop-by-hop or destination option hdr, NH=<undefined> (per
>    RFC8200)
>
>
>
> If you have concern with #1, wouldn’t you have the same concern with #2?
>
>
>
> Jeffrey
>
>
>
>
>
> Juniper Business Use Only
>
> *From:* Xiejingrong <xiejingrong@huawei.com>
> *Sent:* Friday, July 12, 2019 8:10 PM
> *To:* Jeffrey (Zhaohui) Zhang <zzhang@juniper.net>; Antoni Przygienda <
> prz@juniper.net>; draft-zhang-bier-bierin6@ietf.org; BIER WG <
> bier@ietf.org>
> *Subject:* RE: Questions regarding <draft-zhang-bier-bierin6-03>
>
>
>
> Pls See comments inline:
>
> *发件人:*Jeffrey (Zhaohui) Zhang <zzhang@juniper.net>
>
> *收件人:*Xiejingrong <xiejingrong@huawei.com>;Antoni Przygienda <
> prz@juniper.net>;draft-zhang-bier-bierin6@ietf.org <
> draft-zhang-bier-bierin6@ietf.org>;BIER WG <bier@ietf.org>
>
> *时间:*2019-07-13 07:43:22
>
> *主 **题:*RE: Questions regarding
>
>
>
> Please see zzh> below.
>
> Juniper Business Use Only
>
> *From:* Xiejingrong <xiejingrong@huawei.com>
> *Sent:* Friday, July 12, 2019 7:34 PM
> *To:* Jeffrey (Zhaohui) Zhang <zzhang@juniper.net>; Antoni Przygienda <
> prz@juniper.net>; draft-zhang-bier-bierin6@ietf.org; BIER WG <
> bier@ietf.org>
> *Subject:* RE: Questions regarding <draft-zhang-bier-bierin6-03>
>
> Hi Jeffrey,
>
> Please see my comments inline below
> ------------------------------
>
> *发件人**:* Jeffrey (Zhaohui) Zhang [zzhang@juniper.net]
> *发送时间**:* 2019年7月12日 22:27
> *收件人**:* Xiejingrong; Antoni Przygienda; draft-zhang-bier-bierin6@ietf.org;
> BIER WG
> *主**题**:* RE: Questions regarding <draft-zhang-bier-bierin6-03>
>
> I don’t have a good understanding about the writing in the latest email
> below, but for the following original comment that led to it:
>
> ·        [XJR Q6]: You have to walk the ext header chain and get the last
> NH to judge if this packet need to be discard, right? For example for an
> incoming packet(ipv6hdr+RoutingHeader+DestOptHdr<nh!=TBD>), you have to
> walk the whole extension header chain until you know the last NH, to
> execute the above “discard” action. Right?
>
> What is the problem with that? This document is saying that for BIER
> packets, the only header that is expected is the TBD (for BIER) and
> otherwise you drop it. Normally, you would not have the
> (ipv6hdr+RoutingHeader+DestOptHdr<nh!=TBD>) situation.
>
> [XJR] This document also said the following.
>
>  Any IPv6 packet arriving on BFRs and BFERs, with
>
>   multiple extension header where the last extension header has a Next
>
>   Header field set to TBD, SHOULD be discard and the node should
>
>   transmit an ICMP Parameter Problem message to the source of the
>
>   packet (BFIR) with an ICMP code value of TBD10 ('invalid options for
>
>   BIERin6').
>
> If the concern is that someone could maliciously inject that kind of
> packets for the purpose of slowing down a targeted BFR, then any of the
> following situation in RFC8200, independent of BIER, will have the same
> effect:
>
> [XJR] Right. There is also concern of injection of packets to slow down a
> targeted BFR. That may not the below case listed in RFC8200.
>
> Zzh> The RFC8200 text that I quoted would have the same concern – that’s
> my point and it’s not BIER specific. In other words, some one could
> maliciously construct some NON-BIER IPv6 packets with certain headers and
> slow down a router. Your concern with this draft would exist with RFC8200
> as well.
>
> [XJR] rfc8200 doesn't assume specific NH like BIER be processed in fast
> path. In real world, packets with any extension headers may be sent to CPU
> without "digging out some bier specific patterns and processing specially"
> and CPU can do that. They are always slow but doesn't walk the chain in
> chips.
>
> Jingrong
>
>
>
> Zzh> Jeffrey
>
> Also, there are concerns of flexibility as my comments before.
>
> For example:
>
> BIER may want to process a packet with IPv6 NH=BIER in fast-path, and drop
> IPv6 NH=xxx and Last_NH=BIER.
>
> BIER may want to process a packet with IPv6 NH=BIER or IPv6 NH=RH and
> RH_NH=BIER in fast-path, and drop IPv6 NH=xxx and Last_NH=BIER.
>
> a new feature, let's say REIB may have the similar requirements:
>
> REIB may want to process a packet with IPv6 NH=REIB in fast-path, and drop
> IPv6 NH=xxx and Last_NH=REIB.
>
> REIB may want to process a packet with IPv6 NH=REIB or IPv6 NH=RH and
> RH_NH=REIB in fast-path, and drop IPv6 NH=xxx and Last_NH=REIB.
>
> then I guess a lot of "walking through the EH chain" have to be executed
> like [XJR Q8].
>
> Thanks,
>
> Jingrong
>
>   If, as a result of processing a header, the destination node is
>
>   required to proceed to the next header but the Next Header value in
>
>   the current header is unrecognized by the node, it should discard the
>
>   packet and send an ICMP Parameter Problem message to the source of
>
>   the packet, with an ICMP Code value of 1 ("unrecognized Next Header
>
>   type encountered") and the ICMP Pointer field containing the offset
>
>   of the unrecognized value within the original packet. The same
>
>   action should be taken if a node encounters a Next Header value of
>
>   zero in any header other than an IPv6 header.
>
> Jeffrey
>
> *From:* Xiejingrong <xiejingrong@huawei.com>
> *Sent:* Friday, July 12, 2019 7:20 AM
> *To:* Antoni Przygienda <prz@juniper.net>; Jeffrey (Zhaohui) Zhang <
> zzhang@juniper.net>; draft-zhang-bier-bierin6@ietf.org; BIER WG <
> bier@ietf.org>
> *Subject:* RE: Questions regarding <draft-zhang-bier-bierin6-03>
>
> Hi Tony,
>
> Exactly, the whole v6 extension headers(EH) and the v6 options
> consideration is basically a first stab!
>
> Once a judgement is based on the “Upper-layer Protocol”, the last next
> header of a chain, then a walk through the chain is unavoidable, to “dig
> out” the right format that need to be processed in fast-path.
>
> The difficulty with a “regular” IPv6 DA is that, normal things like
> TCP/UDP/ICMPv6 packet must be handled without much impact on it.
>
> Use a “XXX specific IPv6 DA” is not only the SRv6-NetworkProgramming
> concept, but also the ISO NSAP address as I learned from a book and found
> in the WIKI https://en.wikipedia.org/wiki/NSAP_address
> <https://urldefense.proofpoint.com/v2/url?u=https-3A__en.wikipedia.org_wiki_NSAP-5Faddress&d=DwMFAg&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-ndb3voDTXcWzoCI&r=f7wsLGcfzAWDNS6XNTBZwj_OLAOsZZqdrR2IDAzeZqE&m=hKlg11Qzoo3dyO4pZGNb6wtU4M6Kb1RXIFHB6JnSl4A&s=Rh1tyYzDzhRq7ymA_JEJduNT94j_xiGhiQ-QgbwQ9L4&e=>
> :
>
> The *NSEL* (Network-Selector) is a field in the NSAP address that
> identifies the network layer
> <https://urldefense.proofpoint.com/v2/url?u=https-3A__en.wikipedia.org_wiki_Network-5Flayer&d=DwMFAg&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-ndb3voDTXcWzoCI&r=f7wsLGcfzAWDNS6XNTBZwj_OLAOsZZqdrR2IDAzeZqE&m=hKlg11Qzoo3dyO4pZGNb6wtU4M6Kb1RXIFHB6JnSl4A&s=CseHsrq8z_Cjx0ZsXzuYT3X9_3CMLv4SkB7Cs2nRPu0&e=>
> service to which a packet should be sent.
>
> BIER forwarding seems match very much a “network layer service” in my
> opinion, and the “AB37” in “2019::AB37” is very similar to a NSEL too.
>
> Thanks
>
> Jingrong
>
> *From:* Antoni Przygienda [mailto:prz@juniper.net <prz@juniper.net>]
> *Sent:* Friday, July 12, 2019 12:02 AM
> *To:* Jeffrey (Zhaohui) Zhang <zzhang@juniper.net>; Xiejingrong <
> xiejingrong@huawei.com>; draft-zhang-bier-bierin6@ietf.org; BIER WG <
> bier@ietf.org>
> *Subject:* Re: Questions regarding <draft-zhang-bier-bierin6-03>
>
> 2.1. IPv6 Options Considerations
>
>   RFC 8200 section 4, defines the IPv6 extension headers. Currently
>
>   there are two defined extension headers, Hop-by-Hop and Destination
>
>   options header, which can carry a variable number of options. These
>
>   extension headers are inserted by the source node.
>
>   For directly connected BIER routers, IPv6 Hop-by-Hop or Destination
>
>   options are irrelevant and SHOULD NOT be inserted by BFIR on the
>
>   BIERin6 packet. In this case IPv6 header, Next Header field should
>
>   be set to TBD. Any IPv6 packet arriving on BFRs and BFERs, with
>
>   multiple extension header where the last extension header has a Next
>
>   Header field set to TBD, SHOULD be discard and the node should
>
>   transmit an ICMP Parameter Problem message to the source of the
>
>   packet (BFIR) with an ICMP code value of TBD10 ('invalid options for
>
>   BIERin6').
>
> [XJR Q6]: You have to walk the ext header chain and get the last NH to
> judge if this packet need to be discard, right? For example for an incoming
> packet(ipv6hdr+RoutingHeader+DestOptHdr<nh!=TBD>), you have to walk the
> whole extension header chain until you know the last NH, to execute the
> above “discard” action. Right?
>
> *prz> topic for discussion. The whole v6 options consideration is
> basically a first stab. *
>
>   This also indicates that for disjoint BIER routers using IPv6
>
>   encapsulation, there SHOULD NOT be any IPv6 Hop-by-Hop or Destination
>
>   options be present in a BIERin6 packet.
>
> [XJR Q7]: What does “disjoint BIER router” mean?
>
> *prz> non-adjacent, good catch *
>
>
> Juniper Business Use Only
> _______________________________________________
> BIER mailing list
> BIER@ietf.org
> https://www.ietf.org/mailman/listinfo/bier
>