Subject: [Idr] John Scudder's No Objection on draft-ietf-idr-bgp-flowspec-oid-13: (with COMMENT)

From: John Scudder via Datatracker <[email-masked]>
Date: Fri, 07 May 2021 12:57:47 -0700

John Scudder has entered the following ballot position for
draft-ietf-idr-bgp-flowspec-oid-13: No Objection

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)

Please refer to https://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about DISCUSS and COMMENT positions.

The document, along with other ballot positions, can be found here:
https://datatracker.ietf.org/doc/draft-ietf-idr-bgp-flowspec-oid/

----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

Thanks for this document, I'm glad to see it finally close to publication. I
have a few comments I hope will help improve it, below.

1. Section 2

   [RFC8955] defines a BGP NLRI [RFC4271] that can be used to distribute

RFC 4271 is the right citation for “BGP” but for “BGP NLRI” other than IPv4
unicast you want RFC 4760.

   the Flow Specification.  The aim is making sure that only speakers on

making -> to make

   originated in any location within the same autonomous system than the

than -> as

   Flow Specification received from an iBGP peer, it could be possible
   to disseminate such Flow Specification NLRIs directly from the

“It could be possible”? Or “it would be necessary”?

   validated when received by RR and R1.  Sometimes the Flow
   Specification needs to be originated on AS1.  ASBR1 could originate

on -> within

2. Section 4.1

          1.  This condition SHOULD be enabled by default (it may be
              disabled by explicit configuration as described on the
              next list item (b.2.1))..  an empty AS_PATH.

Looks as though “an empty AS_PATH” is a cut-n-paste error that should be
deleted?

          3.  As an extension to this rule, a given non-empty AS_PATHs

AS_PATHs -> AS_PATH (agreement in number)

              AS_CONFED_SET segments), MAY be validated by policy.  A

I think “permitted” would be clearer than “validated”.

      Also, policy may be useful to validate a specific set of non-empty
      AS_PATHs (b.2.3).  For example, it could validate a Flow
      Specification whose AS_PATH contains only an AS_SEQUENCE with ASes
      that are all known to belong to the same administrative domain.

Same point, I suggest “permit”.

3. Section 4.2

   This rule prevents the exchange of BGP Flow Specification NLRIs at
   Internet exchanges with BGP route servers [RFC7947].

Since it may not be common knowledge that route servers don’t insert their own
AS number, I suggest a change something like this, for clarity:

   This rule prevents the exchange of BGP Flow Specification NLRIs at
   Internet exchanges with BGP route servers, which by design don’t insert
   their own AS number into the AS_PATH  ([RFC7947] Section 2.2.2.1).

4. Section 4.2

      For clarity, the AS in the left-most position of the AS_PATH means
      the AS that was last added to the AS_SEQUENCE.

I suggest changing “last” to “most recently”. This is just personal preference,
though. I also suggest changing “AS_SEQUENCE” somehow, probably to “AS_PATH”.
The reason for this is there could be more than one AS_SEQUENCE in the AS_PATH
so the definite article isn’t quite correct. There is however only one AS_PATH,
and you can make the change without loss of generality or correctness. So, the
full suggested rewrite is:

      For clarity, the AS in the left-most position of the AS_PATH means
      the AS that was most recently added to the AS_PATH.

5. Section 4.2

      Specifications.  This is a security BGP threat, but out of the

“Security BGP threat” -> “security threat” (or “BGP security threat” if you
prefer)

6. Section 4.2

      Using the new rule to validate a Flow Specification route received
      from an External Border Gateway Protocol (eBGP) peer belonging to
      the same local domain (in the case of a confederation) is out of
      the scope of this document.  Note that although it's possible, its
      utility is dubious.  Although it is conceivable that an router in
      the same local domain (both iBGP and eBGP within the same local
      domain) could send a rogue update, only eBGP (outside the local
      domain) risk is considered within this document (in the same
      spirit of the mentioned beforehand AS_PATH validation in
      [RFC4271]).

I’m having a hard time understanding this paragraph. This is at least partly
due to the use of “local domain“, which isn’t a well-defined term of art. You
could try something like “under the same administration“? But, even if I make
that change in my head as I read the paragraph, I still don’t get your point.
:-(

Is the whole paragraph strictly about confederations, and what you’re talking
about is a BGP session between a router in one member-AS and a router in
another member-AS of the confederation? If that’s it, I can probably propose
some new text.

Also, “an router” -> “a router”.

Also, you should cite RFC 5065 when you mention confederations.

7. Section 5

   its best-match unicast route) are learned from the same peer accross

accross-> across

8. Section 5

      Consider the validation procedure preceding this document.  The

I think what you mean here is “consider the validation procedure defined in RFC
8955“. If that’s correct, I suggest saying it that way. (If that’s not correct,
what did you mean?)

9. Section 7

   thus maintain security characteristics equivalent to the existing

Maintain -> maintains

10. Section 7

   The original AS_PATH validation rule ([RFC4271] section 6.3) becomes
   hereby optional (section 4.2).

I don’t think you’re actually updating RFC 4271, are you? The way you’ve
written this makes it sound as though you are. You’re relaxing the rule in RFC
8955, but as you point out in section 4.2, RFC 4271 makes AS_PATH neighbor AS
insertion enforcement optional to begin with:

   If the UPDATE message is received from an external peer, the local
   system MAY check whether the leftmost (with respect to the position
   of octets in the protocol message) AS in the AS_PATH attribute is
   equal to the autonomous system number of the peer that sent the
   message.  If the check determines this is not the case, the Error
   Subcode MUST be set to Malformed AS_PATH.

Maybe you could rewrite something like this: “As per section 4.2, it is becomes
optional to enforce that the AS_PATH attribute of a route received via the
External Border Gateway Protocol (eBGP) contains the neighboring AS in the
leftmost position of the AS_PATH attribute. Then we continue:

             If that original rule is actually not
   enforced it may introduce some security risks.  A peer (or a client
   of a route server peer) in AS X could advertise a rogue Flow
   Specification route whose first AS in AS_PATH was Y (assume Y is the
   first AS in the AS_PATH of the best-match unicast route).  This risk
   is impossible to prevent if the Flow Specification route is received
   from a route server peer.

I think you’ve missed out on the opportunity to point out that the risk can
also be mitigated if the route server itself enforces the optional rule of RFC
4271 section 6.3.. I think it’s fair to say that at an exchange point, the
administrator of the route server enjoys more trust then the administrators of
other routers at the exchange point.

               If that peer is known for a fact not to be
   a route server, that optional rule SHOULD be enforced for Flow
   Specification routes.

It may be necessary to say a little more about how you would get this knowledge
about the peer not being a route server. Possibly a rewrite could be something
like: "Unless configuration (or other means beyond the scope of this document)
indicates that the peer is a route server, that optional rule SHOULD be
enforced for Flow Specification routes from EBGP peers."

11. Section 7

   absolute and the new possibility than an iBGP speaker could send a

Than -> that

---

From: "Juan Alcaide (jalcaide)" <[email-masked]>
Date: Thu, 13 May 2021 23:07:57 +0000

Hi John,

Thanks a lot for your detailed comments. Sorry, also I missed them before publishing -14. Some of the changes on -14 already address your concerns.

I'll incorporate your comments. But some of them I'd like to discuss are:

#4

Your suggestion

I used AS_SEQUENCE on purpose. You are not receiving the route from the same confederation. And it would not apply to AS_SET.
But rfc4271 uses directly AS_PATH. So it's fine to use AS_PATH even if it's not that specific?

#6

You didn't like:

      utility is dubious.  Although it is conceivable that a router in

What about this rewrite:

"
Using that same original AS_PATH validation rule for a route learned from a confed-ebgp peer (i.e. a peer in another sub-AS within the same local domain)
is outside of the scope of this document. Note that although it's possible, its utility is dubious, since that confed-ebgp peer may be considered
trusted.  Although it is conceivable that a router in the same local domain (both iBGP and eBGP within the same local domain) could send a rogue update,
only eBGP (outside the local domain) risk is considered within this document. Note also that [RFC5065] does not mandate to enforce this AS_PATH validation
rule for a route learned from a confed-ebgp peer.
"

This paragraph was built as a part of trying to include and mix toguether several review comments. But honestly I don't think it adds that much value. So
I wouldn't mind to remove it.

I keep using 'local domain' just to specify that I am refering to either 1) a standalone AS  or 2 ) to a confederation of ASes. If you have a better way, I'll be happy to use it.

#10.   

Section 7 was rewritten in draft -14  using some of the points you also raised. Does it look Ok now?

Trying to make it clear the enforcement paragraph for both you, Lars, and Magnus, I would rewrite it like this, if nobody objects.

"
If configuration (or other means beyond the scope of this document) indicates that the peer is not a route server,
that optional rule SHOULD be enforced. If the indication is that the peer is not a route server or there is no conclusive
indication, that optional rule SHOULD NOT be enforced.
"

#OTHER

Nobody complained, so not sure if I'm over thinking it. But this doesn't seem 100% correct

"
   This document updates the route feasibility validation procedures for
   Flow Specifications learned from iBGP peers and through route
   servers.  This change is in line with the procedures described in
   [RFC8955] and, thus, the security characteristics equivalent to the
   existing security properties of BGP unicast routing are maintained.
"

Aren't we introducing a bit more of a risk than unicast routing, because of the AS_PATH validation rule? (as stated in " If that original rule is not enforced for Flow
   Specification it may introduce some new security risks")

When rfc8955 says "   As long as Flow Specifications are restricted to match the corresponding unicast routing paths for the relevant prefixes
   (Section 6)," it's not making reference to AS_PATH validation rule. Shouldn't it?

-J

-----Original Message-----
From: John Scudder via Datatracker <[email-masked]> 
Sent: Friday, May 7, 2021 9:58 PM
To: The IESG <[email-masked]>
Cc: [email-masked]; [email-masked]; [email-masked]; Susan Hares <[email-masked]>; [email-masked]; [email-masked]
Subject: John Scudder's No Objection on draft-ietf-idr-bgp-flowspec-oid-13: (with COMMENT)

When responding, please keep the subject line intact and reply to all email addresses included in the To and CC lines. (Feel free to cut this introductory paragraph, however.)

Thanks for this document, I'm glad to see it finally close to publication. I have a few comments I hope will help improve it, below.

1. Section 2

RFC 4271 is the right citation for “BGP” but for “BGP NLRI” other than IPv4 unicast you want RFC 4760.

making -> to make

than -> as

on -> within

2. Section 4.1

Looks as though “an empty AS_PATH” is a cut-n-paste error that should be deleted?

3. Section 4.2

Since it may not be common knowledge that route servers don’t insert their own AS number, I suggest a change something like this, for clarity:

4. Section 4.2

I suggest changing “last” to “most recently”. This is just personal preference, though. I also suggest changing “AS_SEQUENCE” somehow, probably to “AS_PATH”.
The reason for this is there could be more than one AS_SEQUENCE in the AS_PATH so the definite article isn’t quite correct. There is however only one AS_PATH, and you can make the change without loss of generality or correctness. So, the full suggested rewrite is:

5. Section 4.2

6. Section 4.2

I’m having a hard time understanding this paragraph. This is at least partly due to the use of “local domain“, which isn’t a well-defined term of art. You could try something like “under the same administration“? But, even if I make that change in my head as I read the paragraph, I still don’t get your point.
:-(

Is the whole paragraph strictly about confederations, and what you’re talking about is a BGP session between a router in one member-AS and a router in another member-AS of the confederation? If that’s it, I can probably propose some new text.

7. Section 5

accross-> across

8. Section 5

I think what you mean here is “consider the validation procedure defined in RFC 8955“. If that’s correct, I suggest saying it that way. (If that’s not correct, what did you mean?)

9. Section 7

Maintain -> maintains

10. Section 7

I don’t think you’re actually updating RFC 4271, are you? The way you’ve written this makes it sound as though you are. You’re relaxing the rule in RFC 8955, but as you point out in section 4.2, RFC 4271 makes AS_PATH neighbor AS insertion enforcement optional to begin with:

Maybe you could rewrite something like this: “As per section 4.2, it is becomes optional to enforce that the AS_PATH attribute of a route received via the External Border Gateway Protocol (eBGP) contains the neighboring AS in the leftmost position of the AS_PATH attribute. Then we continue:

I think you’ve missed out on the opportunity to point out that the risk can also be mitigated if the route server itself enforces the optional rule of RFC
4271 section 6.3.. I think it’s fair to say that at an exchange point, the administrator of the route server enjoys more trust then the administrators of other routers at the exchange point.

It may be necessary to say a little more about how you would get this knowledge about the peer not being a route server. Possibly a rewrite could be something
like: "Unless configuration (or other means beyond the scope of this document) indicates that the peer is a route server, that optional rule SHOULD be enforced for Flow Specification routes from EBGP peers."

11. Section 7

Than -> that

---

From: John Scudder <[email-masked]>
Date: Fri, 14 May 2021 19:09:54 +0000

Hi Juan,

Thanks for your reply.

> On May 13, 2021, at 7:07 PM, Juan Alcaide (jalcaide) <[email-masked]> wrote:
> 
> Hi John,
> 

Great, thanks.

> But rfc4271 uses directly AS_PATH. So it's fine to use AS_PATH even if it's not that specific?

It would be a protocol violation to receive an EBGP route with an AS_SET in the leftmost position, since the neighbor is required to add its own AS to an AS_SEQUENCE before sending you the update. However, it’s a good point regarding confederations. If we are being excruciatingly correct we have to account for at least two annoying details:

- In a confederation, the leftmost element could be an AS_CONFED_SEQUENCE
- An AS_PATH can, and occasionally does, contain more than a single AS_SEQUENCE

The second observation was what led to my earlier suggestion. Now that you’ve made your observation, I think maybe a simpler rewrite would cover both:

     For clarity, the AS in the left-most position of the AS_PATH means
     the AS that was last added to an AS_SEQUENCE.

(Changed “the AS_SEQUENCE” to “an AS_SEQUENCE”. You could also say “the left-most AS_SEQUENCE” but then it just moves the problem.) 

I’m not sure how helpful this is to an implementor standing alone, since it relies on the idea of recency which also isn’t defined, but it’s correct and I think there’s a wealth of other information that would help the implementor get it right. I don’t think lack of perfection here will, realistically, hurt implementability. IRL, as far as I know “leftmost” is well-understood by BGP implementors.

> I wouldn't mind to remove it.

That would be a simple fix! I wouldn’t object, although I don’t insist.

> I keep using 'local domain' just to specify that I am refering to either 1) a standalone AS  or 2 ) to a confederation of ASes. If you have a better way, I'll be happy to use it.

In looking back over the spec I do see you’ve supplied a definition of “local domain” in §4.1:

      In this context, a local domain includes the local AS or the local
      confederation [RFC5065]. 

That actually helps a lot, my bad for not noticing it the first time, sorry. But I think it should be made more obvious to the reader. How about adding a “terminology” or “definitions” section up front (some people place the RFC 2119 language in such a section as well, but I don’t have an opinion about that), and putting a few definitions there:

- "Local Domain” (so capitalized): defined as quoted above. Then whenever referring to local domain, use the capitalized form to make it clear you’re using your defined term.
- “EBGP” (or “eBGP” if you prefer): “BGP peering to a router not within the Local Domain” (or something like that) to make it clear that whenever you mention EBGP you mean real EBGP?
- “IBGP”: means both classic IBGP and any form of BGP peering with a router within the same confederation. 

With those definitions, I think I would be almost happy with the original paragraph. Here’s a suggested minor rewrite:

“Using the new rule to validate a Flow Specification route received from a peer belonging to the same Local Domain is out of the scope of this document. Note that although it’s possible, its utility is dubious. Although it is conceivable that a router in the same Local Domain could send a rogue update, only EBGP risk is considered within this document (in the same spirit as the aforementioned AS_PATH validation in [RFC4271]).”

If you decide you like this approach, I think you can also replace “local autonomous system” with “Local Domain” in §2.

Oh by the way, while I was writing this reply, I noticed this nit in §4.2:

      Comparing only the last ASes added is sufficient for eBGP learned

Shouldn’t that be “last AS added”, singular?
 
> Section 7 was rewritten in draft -14  using some of the points you also raised. Does it look Ok now?

Yes it does. Below I’ve included some editorial nits, but the content seems fine.

> indication, that optional rule SHOULD NOT be enforced.

I think that option is fine. (I am also OK with what’s in -14.)

Delete “the”, so “thus, security characteristics”.

   The security considerations discussed in [RFC8955] apply to this
   specification as well.

   This document makes the original AS_PATH validation rule ([RFC4271]
   section 6.3) again optional (section 4.2) for Flow Specification
   Address Family (the rule is no longer mandatory as it was specified

Suggest “as had been specified”.

   by [RFC8955]).  If that original rule is not enforced for Flow
   Specification it may introduce some new security risks.  A peer (or a
   client of a route server peer) in AS X could advertise a rogue Flow
   Specification route whose first AS in AS_PATH was Y (assume Y is the
   first AS in the AS_PATH of the best-match unicast route).  This risk
   is impossible to prevent if the Flow Specification route is received
   from a route server peer.  If that peer is known for a fact not to be
   a route server, that optional rule SHOULD be enforced for Flow
   Specification routes.  Note that identifying those peers that are
   route servers may suppose an operational challenge.  If the condition

“Suppose” -> “pose”

   of the peer is unknown, the rule SHOULD not be enforced.

   A route server itself may be in a good position to enforce the
   AS_PATH validation rule described in the previous paragraph.  If a
   route server knowns it's not peering with any other route server, it
   can enforce the AS_PATH validation rule across all its peers.  If, in
   addition to that, the route server is trusted, the security threat
   described above disappears.

   BGP updates learned from iBGP peers are considered trusted, so the
   Traffic Flow Specifications contained in BGP updates are also
   considered trusted.  Therefore, it is not required to validate that
   the originator of an intra-domain Traffic Flow Specification matches
   the originator of the best-match unicast route for the destination
   prefix embedded in that Flow Specification.  Note that this
   trustworthy consideration is not absolute and the new possibility

“Trustworthy” -> “trustworthiness”

   than an iBGP speaker could send a rogue Flow Specification is
   introduced.

   The changes in Section 4.1 don't affect the validation procedures for
   eBGP-learned routes.

>   Specification it may introduce some new security risks")

I guess you’re right. You could probably make the paragraph even more correct by adding “, except as detailed below” to the end of the sentence? I do think you cover that topic pretty well in the third paragraph, and in particular this:

>   (Section 6)," it's not making reference to AS_PATH validation rule. Shouldn't it?

Well RFC 8955 is already published :-) but since that text refers to Section 6, and since §6 says

   BGP implementations MUST also enforce that the AS_PATH attribute of a
   route received via the External Border Gateway Protocol (eBGP)
   contains the neighboring AS in the left-most position of the AS_PATH
   attribute.  While this rule is optional in the BGP specification, it
   becomes necessary to enforce it here for security reasons.

it seems to me as though it has, indeed, made reference to the AS_PATH validation rule. No?

Regards,

—John

> Please refer to https://urldefense.com/v3/__https://www.ietf.org/iesg/statement/discuss-criteria.html__;!!NEt6yMaO-gk!QLCeaGKX3jpp4rLrE_k8iSduOkCXEr6Pdyj6AXwU8zsm-hg6xFZnm-1skqoj2w$
> https://urldefense.com/v3/__https://datatracker.ietf.org/doc/draft-ietf-idr-bgp-flowspec-oid/__;!!NEt6yMaO-gk!QLCeaGKX3jpp4rLrE_k8iSduOkCXEr6Pdyj6AXwU8zsm-hg6xFZnm-1uegg6yg$
> 
> 
>

---

From: "Juan Alcaide (jalcaide)" <[email-masked]>
Date: Sat, 15 May 2021 18:34:33 +0000

Thanks John

I'll incorporate your comments.

In particular:

I'll add a Terminology section. We are kind of redefining eBGP and iBGP for the purposes of this draft. It's not the same way it's used on other RFCs, but it 
certainly makes it more clear.

Great for pointing out to use 'local domain' instead of 'local autonomous system' (or just autonomous system). We shouldn't be using both things to refer to the same concept
I'll replace autonomous system all around. I'll still keep AS because it only refers to examples.

I'll add ', except as detailed below.' in the Security Section. I thought the idea of the security section was to summarize all security considerations (*even* if they were discussed previously), and then any extra ones.
Even if it was a slight RFC8955  oversight, it shouldn't be here since we are overwriting that RFC8955 section ;-)

This paragraph you mention 'last AS*es*' as a nit. But I think there is more to it [major]

     Comparing only the last ASes added is sufficient for eBGP learned
      Flow Specification NLRIs.  Requiring a full AS_PATH match would
      limit origination of inter-domain Flow Specifications to the
      origin AS of the best-match unicast route for the destination
      prefix embedded in the Flow Specification only.  As such, a full
      AS_PATH validity check may prevent transit ASes from originating
      inter-domain Flow Specifications, which is not desirable.

Do we really want to match only the last-AS, or as many ASes as we want?  The paragraph above in the explanation would seem to favor as many AS_PATHS as we can. Transit ASes
could still originate FS rules.

Ex:

Validate         Unicast: 100 101 102 103, FS: 100 101
Do not validate  Unicast: 100 101 102 103, FS: 100 102

-J

-----Original Message-----
From: John Scudder <[email-masked]> 
Sent: Friday, May 14, 2021 9:10 PM
To: Juan Alcaide (jalcaide) <[email-masked]>
Cc: The IESG <[email-masked]>; [email-masked]; [email-masked]; [email-masked]; Hares Susan <[email-masked]>; [email-masked]; Lars Eggert <[email-masked]>; David Smith (djsmith) <[email-masked]>; Magnus Nyström <[email-masked]>
Subject: Re: John Scudder's No Objection on draft-ietf-idr-bgp-flowspec-oid-13: (with COMMENT)

Hi Juan,

Thanks for your reply.

Great, thanks.

> Using that same original AS_PATH validation rule for a route learned 
> from a confed-ebgp peer (i.e. a peer in another sub-AS within the same 
> local domain) is outside of the scope of this document. Note that 
> although it's possible, its utility is dubious, since that confed-ebgp 
> peer may be considered trusted.  Although it is conceivable that a router in the same local domain (both iBGP and eBGP within the same local domain) could send a rogue update, only eBGP (outside the local domain) risk is considered within this document. Note also that [RFC5065] does not mandate to enforce this AS_PATH validation rule for a route learned from a confed-ebgp peer.
> "
> 
> This paragraph was built as a part of trying to include and mix 
> toguether several review comments. But honestly I don't think it adds that much value. So I wouldn't mind to remove it.

 

> If configuration (or other means beyond the scope of this document) 
> indicates that the peer is not a route server, that optional rule 
> SHOULD be enforced. If the indication is that the peer is not a route server or there is no conclusive indication, that optional rule SHOULD NOT be enforced.
> "

“Suppose” -> “pose”

Regards,

—John

> Cc: [email-masked]; [email-masked]; 
> [email-masked]; Susan Hares <[email-masked]>; [email-masked]; 
> [email-masked]
> Subject: John Scudder's No Objection on 
> draft-ietf-idr-bgp-flowspec-oid-13: (with COMMENT)
> 
> email addresses included in the To and CC lines. (Feel free to cut 
> this introductory paragraph, however.)
> 
> 
> Please refer to 
> https://urldefense.com/v3/__https://www.ietf.org/iesg/statement/discus
> s-criteria.html__;!!NEt6yMaO-gk!QLCeaGKX3jpp4rLrE_k8iSduOkCXEr6Pdyj6AX
> wU8zsm-hg6xFZnm-1skqoj2w$ for more information about DISCUSS and 
> COMMENT positions.
> 
> 
> https://urldefense.com/v3/__https://datatracker.ietf.org/doc/draft-iet
> f-idr-bgp-flowspec-oid/__;!!NEt6yMaO-gk!QLCeaGKX3jpp4rLrE_k8iSduOkCXEr
> 6Pdyj6AXwU8zsm-hg6xFZnm-1uegg6yg$
> 
> 
> 
> I think what you mean here is “consider the validation procedure 
> defined in RFC 8955“. If that’s correct, I suggest saying it that way. 
> (If that’s not correct, what did you mean?)
> 
> 9. Section 7
> 
> I think you’ve missed out on the opportunity to point out that the 
> risk can also be mitigated if the route server itself enforces the 
> optional rule of RFC
> It may be necessary to say a little more about how you would get this 
> knowledge about the peer not being a route server. Possibly a rewrite 
> could be something

---

From: John Scudder <[email-masked]>
Date: Fri, 21 May 2021 16:49:03 +0000

Hi Juan,

> On May 15, 2021, at 2:34 PM, Juan Alcaide (jalcaide) <[email-masked]> wrote:
> 
> 
> Thanks John
> 

Confederations have always been kind of an afterthought in BGP, neither one thing nor another, without strong terminology for describing them. Thanks for your efforts to be precise!

> Do not validate  Unicast: 100 101 102 103, FS: 100 102

That's a fair point. If you want to update the doc accordingly though, it would be a significant enough technical change that I think you would need to go back to the WG for discussion of it. Your call (and Alvaro and the IDR chairs’).

—John

---

From: "Juan Alcaide (jalcaide)" <[email-masked]>
Date: Thu, 27 May 2021 11:59:48 +0000

Hi,

We talked internally and we don't think it's worth pursuing. It would enhance security as defined in [RFC8955] (what is not the purpose of this draft), and upset all
existing implementations. There is nothing forbidding any implementation to enhanced security in this way via a knob if they think it's suitable.

But we need to modify the explanation because it didn't fit the new rule. We also introduce the concept of instead of suggesting to enforce neighbor-AS match of FS, suggesting to just to enforce it on the unicast route.

Please take a look to make sure it's accurate and clear.

# Revision of AS_PATH Validation -> Explanation

Comparing only the left-most AS in the AS-PATH for eBGP learned
      Flow Specification NLRIs is roughly equivalent to checking the
      neighboring AS.  If the peer is a route server, security is
      necessarily weakened for the Flow Specification NLRI, as it is for
      any unicast route advertised from a route server.  An example is
      discussed in the Security Considerations section.

      Redefinition of this AS_PATH validation rule for a Flow
      Specification does not mean that the original rule in [RFC8955]
      cannot be enforced as well.  Its enforcement remains optional per
      [RFC4271] section 6.3.  That is, a BGP speaker can enforce the
      first AS in the AS_PATH to be the same as the neighbor AS for any
      address-family route (including a Flow Specification address-
      family route).  If the BGP speaker peer is not a route server,
      when enforcing this optional rule, the security characteristics
      are exactly equivalent to those specified in [RFC8955].

      Alternatively, enforcing this optional rule for unicast routes
      (even if not enforced on Flow Specification NLRIs) achieves
      exactly the same security characteristics.  The reason is that,
      after all validations, the neighboring AS will be the same as the
      left-most AS in the AS-PATH for the unicast route, and the left-
      most AS in the AS_PATH for the unicast route will be the same as
      the left-most AS in the AS_PATH for the Flow Specification NLRI.
      Therefore, the neighboring AS will be the same as the left-most AS
      in the AS_PATH for the Flow Specification NLRI (as the original
      AS_PATH validation rule in [RFC8955] states).

# Security Considerations

If configuration (or other means beyond
   the scope of this document) indicates that the peer is not a route
   server, that optional rule SHOULD be enforced, for unicast and/or for
   Flow Specification routes (as discussed in the AS_PATH Validation
   section, just enforcing it in one address-family is enough).

-J

> Do we really want to match only the last-AS, or as many ASes as we 
> want?  The paragraph above in the explanation would seem to favor as many AS_PATHS as we can. Transit ASes could still originate FS rules.
> 
> Ex:
>