Re: [Idr] draft-litkowski-idr-flowspec-interfaceset => NLRI vs EXTCT (part 2)

Robert Raszuk <robert@raszuk.net> Fri, 28 July 2017 11:52 UTC

Return-Path: <rraszuk@gmail.com>
X-Original-To: idr@ietfa.amsl.com
Delivered-To: idr@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 77731131F3C for <idr@ietfa.amsl.com>; Fri, 28 Jul 2017 04:52:36 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.399
X-Spam-Level:
X-Spam-Status: No, score=-2.399 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, FREEMAIL_FORGED_FROMDOMAIN=0.199, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-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 7u80WZTSrD5m for <idr@ietfa.amsl.com>; Fri, 28 Jul 2017 04:52:33 -0700 (PDT)
Received: from mail-it0-x234.google.com (mail-it0-x234.google.com [IPv6:2607:f8b0:4001:c0b::234]) (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 100AF131EC1 for <idr@ietf.org>; Fri, 28 Jul 2017 04:52:33 -0700 (PDT)
Received: by mail-it0-x234.google.com with SMTP id v205so79535292itf.1 for <idr@ietf.org>; Fri, 28 Jul 2017 04:52:33 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=/Y1tnWeXFUvp8ZU09CvUTz4CQ0WJ0vwhiDiDS7e0Kf0=; b=I6BTtH9x8cwMKUUBOvhWry3pT5qGlt1bNKjcYUwa9/xf4rmhuXI8LHcakAoj+qHrpu Xql74jW5C0te4PqBLonjSTtP7QggPZFb4B8R1o57QMOSnqoncFEJPS9CigCMBVT48+x4 pOngqJsPl8DptUkBCYUIiHkdpBcagpAODQL9P9nanR8r8LK69vyjJjsHf/JsFPdGMoV5 B0fFSUhfAv3MEuzFEpy5VNC6n57ByZK/Tyn6eT4q5P32wkwGaBR8y2tJn58fFL+X+7Hp SAEWVRvtuQ3nA6i7NGgVoFG6J3BSwt67AMbkF+sYXV3UGd7wnERVm3tfJQAN+vSixah+ VQIw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc; bh=/Y1tnWeXFUvp8ZU09CvUTz4CQ0WJ0vwhiDiDS7e0Kf0=; b=ujuCcOtMXy8c58dm0GqCqa+fZRSe3QYPVTNSp/ezhEZxB9fwNZuuwfu2HF/ttnPT6m /ambg+GK9KXUV0Rwwz2xLyePeAZBgEjxPG7geuw4GDsXUkdS+9lFth3xmZlrK1PAPFRX QT+H5e6ivybPIFs6lMFY9c0nL3WK9DMr37Lah8OzMNnklswP0F/geFivsjf88rggoHA/ XUnWofQ6sLaeXroHqSiZ7WRp9FrpIQ25X8q6uJrgT6O1xdw1O9y7wPNfgQnScgx2QMdt fSZGkEp9TkE94+Tn2tMWz4rbeLxpgFDn6DXBl48MXU7FN+l8njWuJMR/JbwdGiijMtxv +Vcw==
X-Gm-Message-State: AIVw110X67C3fsnMOs5PZ8KA2uEBtWjyU41vkTwPvwb78WFRTVgpNAmZ JMeLv1d6r7XNKml7MVu1zuu3ot960q+3
X-Received: by 10.36.200.5 with SMTP id w5mr9039860itf.118.1501242752141; Fri, 28 Jul 2017 04:52:32 -0700 (PDT)
MIME-Version: 1.0
Sender: rraszuk@gmail.com
Received: by 10.79.153.21 with HTTP; Fri, 28 Jul 2017 04:52:31 -0700 (PDT)
In-Reply-To: <e8e834ec-5074-7d35-a06c-5837f2f39e12@cisco.com>
References: <9fa67eb0-8f99-a46f-aff1-d42a279ab833@cisco.com> <CA+b+ERmaARaPLQv-g58WGNJCDcKN3gdf-F9wnCwusw+jwX7paw@mail.gmail.com> <8dd3e766b58944a3b176fc743e478137@XCH-ALN-014.cisco.com> <CA+b+ERnDHgk6gVi3K1+yAbRaXoft2+xqNig=pTbgRsWRC98-zA@mail.gmail.com> <dd8e0cb4-56d3-524c-9f68-296e8457fcc9@cisco.com> <CA+b+ERmG=EQxJBuMaTD+oDdwcwZ0hCCjEsjNqD_A_jXYLgnw2Q@mail.gmail.com> <e8e834ec-5074-7d35-a06c-5837f2f39e12@cisco.com>
From: Robert Raszuk <robert@raszuk.net>
Date: Fri, 28 Jul 2017 13:52:31 +0200
X-Google-Sender-Auth: 2GC6SIuu5SUVuQHSNOxVNOG3nKg
Message-ID: <CA+b+ERkCfiEa=RfDaxkOz3Si-qp9axKcgDycW1+GqfKvTcsePw@mail.gmail.com>
To: "Juan Alcaide (jalcaide)" <jalcaide@cisco.com>
Cc: "Jakob Heitz (jheitz)" <jheitz@cisco.com>, idr wg <idr@ietf.org>
Content-Type: multipart/alternative; boundary="94eb2c05f77af6911305555f50f1"
Archived-At: <https://mailarchive.ietf.org/arch/msg/idr/NmSiFl-ROdD3TqabyeCRIbOfQRY>
Subject: Re: [Idr] draft-litkowski-idr-flowspec-interfaceset => NLRI vs EXTCT (part 2)
X-BeenThere: idr@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: Inter-Domain Routing <idr.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/idr>, <mailto:idr-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/idr/>
List-Post: <mailto:idr@ietf.org>
List-Help: <mailto:idr-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/idr>, <mailto:idr-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 28 Jul 2017 11:52:37 -0000

Hi Juan,

(group-id: what to you specify in ext-community; interface-group: what you
> specify under interface configuration)
>

​Obvious. ​

If you use ADD-PATHS, you can send identical NLRIs and you consider them as
> valid (no implicit withdraw)
>

​If your controller or management station does not support ADD-PATHS this
is not the case. Only when you have ADD-PATHS everywhere you may play that
game.

Remember flow-spec was designed to be a DDoS mitigation tool across ASes.
Across ASes last time I checked deployment of ADD-PATHS is zero. Now since
some folks turned it into config push ​is not something original 5575 can
be blamed for.


> There is a requirement that the same flowspec rule, could be used for 2
> different interface-groups (let's say interfaces customer-facing and
> interfaces provider-facing). But also you may want to use different actions
> based on the group-id (section 8 of the draft)
>

​That is just operational mess. To do that you can use SAFI 134 where 8
octet RD is part of the NLRI what makes NLRI unique.

I think we basically need to expand/clarify the ADD-PATHS part. Regarding
> your points:
> 1. For a given NLRI, we change group-ids or actions based on what we want
> to achieve. So it's based on how customer sets the rule in the controller.
> There may be a need to send same NLRI with 2 different sets of
> action+group-id
>

​I think doing this in such way is very messy. Pushing FS routes with RD as
indicated above is much cleaner if there such need to apply different
actions or group IDs for the same NLRIs. ​


> 2. If receiver receives more than one group-id, it should apply all the
> actions specified to *all* the interface-group associated to all the
> group-ids it received. Draft does explicitly say what to do when you
> receive a NLRI with multiple group-ids, but I think it should be applied to
> all interface-groups (probably it should be clarified)
>

​ok.

Thx,
R.​




>
>
> -J
>
>
>
>
> On 7/27/2017 11:43 PM, Robert Raszuk wrote:
>
> Juan,
>
> Sending from single controller (single BGP peer) two updates with
> identical NLRIs is an implicit withdraw. ADD-PATHs has nothing to here.
>
> Likewise RR should treat is as implicit withdraw of the previous one too.
>
> If you go by your line of thinking what would make controller to change
> for given NLRI1 group-id 1 to group-id 2 if there is need to do so ?
>
> In any case if you decide to add additional text to the current draft or
> decide to write new draft to address this please do make sure to clearly
> define two things:
>
> 1. How for a given NLRI we change either actions or group-ids
>
> 2. What should receiver do when for a given NLRI he received more then one
> group-id or more then one set of actions ?
>
> Thanks,
> R.
>
>
>
>
>
> On Thu, Jul 27, 2017 at 11:37 PM, Juan Alcaide (jalcaide) <
> jalcaide@cisco.com> wrote:
>
>> Robert,
>>
>> We may support or not support unsynchronized controllers
>> But let's assume for a second we are just using one controller
>> but can a single controller sending
>>
>> NLRI1 + group-id 1
>> NLRI1 + group-id 2
>>
>> The RR receives both this routes (must be ADD-PATHS, as mentioned in the
>> draft). The RR needs to use ADD-PATHS itself to send it to the PE (final
>> receiver)
>>
>> -J
>>
>>
>>
>>
>> On 7/27/2017 9:44 PM, Robert Raszuk wrote:
>>
>> Hi Jakob,
>>
>> Two flowspec routes with the same NLRI may be originated by different
>>> speakers.
>>>
>>
>> Group-id (scoped application of specific flow-spec rules) is addressing a
>> special case where it is generated carefully by either controller or
>> provisioning tools. I do not see therefor a practical case where the same
>> such rule would be coming from two or more independent sources and would be
>> applicable ​to different interface groups.
>>
>> It sounds more like a protocol conflict or provisioning bug and not
>> something we should worry about how to carry it across RRs. Standard
>> protocol behavior would be fine here.
>>
>> Now also notice what would receiver do ... treat the subsequent update
>> with the exactly same NLRI as implicit withdraw or run best path if they
>> come from different peers and still apply single one to local data plane.
>> So really there is no point to give it both such paths with ADD-PATHs. As
>> it is on final receivers the same should be done on RRs ...
>>
>> ​Cheers,
>> //RR.​
>>
>>
>>
>>> The first route will have one group-id. The second route will have
>>> another group-id.
>>>
>>>
>>>
>>> Thanks,
>>>
>>> Jakob.
>>>
>>>
>>>
>>> *From:* Idr [mailto:idr-bounces@ietf.org] *On Behalf Of *Robert Raszuk
>>> *Sent:* Wednesday, July 26, 2017 4:38 PM
>>> *To:* Juan Alcaide (jalcaide) <jalcaide@cisco.com>
>>> *Cc:* idr wg <idr@ietf.org>
>>> *Subject:* Re: [Idr] draft-litkowski-idr-flowspec-interfaceset => NLRI
>>> vs EXTCT (part 2)
>>>
>>>
>>>
>>> Hi Juan,
>>>
>>>
>>>
>>> >  (we assume controller(s) may not want to send multiple
>>> ext-communities with same NLRI).
>>>
>>>
>>>
>>> If I recall group-ids are carried in new RT format:
>>>
>>>
>>>
>>> "This new BGP Route Target extended community is encoded as follows :
>>>
>>>
>>>
>>>        0                   1                   2                   3
>>>
>>>        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
>>>
>>>       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>>>
>>>       |  Type (TBD)   |      0x02     |    Autonomous System Number   :
>>>
>>>       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>>>
>>>       :     AS Number (cont.)         |O|I|      Group Identifier     |
>>>
>>>       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
>>>
>>> "
>>>
>>>
>>>
>>> So just like an UPDATE message of SAFI 128 may contain many RTs why
>>> would you see any
>>>
>>> issue to carry multiple ext communities of the above format here ?
>>>
>>>
>>>
>>> Best,
>>>
>>> R.
>>>
>>>
>>>
>>> On Thu, Jul 27, 2017 at 1:01 AM, Juan Alcaide (jalcaide) <
>>> jalcaide@cisco.com> wrote:
>>>
>>> Hi,
>>>
>>> From a previous thread, I see from the that using EXTCOMM to carry
>>> group-id information the choice. Reason was that every AS could use their
>>> own the group-id (perhaps different than another AS). With this choice,
>>> ADD-PATHS must be mandatory in order to support multiple group-ids for the
>>> same flowspec rule  (we assume controller(s) may not want to send multiple
>>> ext-communities with same NLRI).
>>>
>>> But the draft really does not describe how to use ADD-PATHS, and it does
>>> not discuss its problems:
>>>
>>> - Usually, ADD-PATHS is used for path diversity, and implementations
>>> typically don't advertise 2 paths with the same next-hop (otherwise, we
>>> could have path explosion across multiple levels of RRs)
>>>
>>> - If ADD-PATHS has to advertise the same NLRI with different
>>> ext-communities, one solution would be for ADD-PAHTS not advertise the same
>>> set of ext-communities. Unless, I guess, next-hops are different.
>>> Otherwise, we would have path explosion.
>>>
>>> - Assuming the above, we should define a particular set of ADD-PATHS
>>> rules for flowspec AF. And, of course, leave the door open for future
>>> specific ADD-PATHs rules for other AFs (it would not be about path
>>> diversity anymore, but about propagating different information for
>>> forwarding purposes -imagine what we could have done with an IPv4 prefix:
>>> send the same net part as a NLRI and multiple ext-communities representing
>>> different prefix-lengths -).
>>>
>>> - Since paths in a net are typically implemented as a list, there could
>>> be scalability problems if we ever want to support many group-ids.
>>>
>>> My solution to simplify all these problems would be to add a
>>> discriminator on the NLRI (by defining a new dummy type for flowspec). We
>>> could still use ext-communities to actually match the NLRIs to interfaces.
>>> Similar to RD and RT usage.
>>>
>>> Thoughts?
>>>
>>> -J
>>>
>>>
>>> _______________________________________________
>>> Idr mailing list
>>> Idr@ietf.org
>>> https://www.ietf.org/mailman/listinfo/idr
>>>
>>>
>>>
>>
>>
>>
>
>