Re: [Last-Call] [mpls] Rtgdir last call review of draft-ietf-mpls-bfd-directed-26

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Andrew,
thank you for further clarifying your concern. After discussing this scenario, I propose the following update in Section 3.1:
OLD TEXT:
   None, one or more sub-TLVs
   MAY be included in the BFD Reverse Path TLV.
NEW TEXT:
   None, one or more sub-TLVs
   MAY be included in the BFD Reverse Path TLV.  However, the number of
   sub-TLVs in the Reverse Path field MUST be limited.  The default
   limit is 128, but an implementation MAY be able to control that
   limit.

Do you find this update reasonably addressing your concern?

Regards,
Greg

On Thu, Apr 4, 2024 at 12:26 PM Andrew Alston <Andrew.Alston@xxxxxxxxxxxxxxxxx> wrote:
Hi Greg,

I’m more concerned about the potential load of that search for path in the path sent is ridiculously long basically the current text works - but I’m concerned it opens a potential denial of service vector by forcing the receiving router to do a search against a path that could contain a thousand sub-tlvs without exceeding the mtu length.

For example - a generic ipv4 tlv in the registry as defined by 8029 - which is in the type 1/16/29 registry - is 8 bytes long - a 9000 byte packet could pack these a thousand deep and the receiver would then be trying to match that to a local LSP - which could potentially create a huge resource issue.

It may be that the working group doesn't view this as a viable problem - but since I spotted it - it's necessary to raise it and see what people think

Thanks

Andrew 

Internal All Employees


From: mpls <mpls-bounces@xxxxxxxx> on behalf of Greg Mirsky <gregimirsky@xxxxxxxxx>
Sent: Thursday, April 4, 2024 8:04:56 PM
To: Andrew Alston - IETF <andrew-ietf@xxxxxxxxxxx>
Cc: rtg-dir@xxxxxxxx <rtg-dir@xxxxxxxx>; draft-ietf-mpls-bfd-directed.all@xxxxxxxx <draft-ietf-mpls-bfd-directed.all@xxxxxxxx>; last-call@xxxxxxxx <last-call@xxxxxxxx>; mpls@xxxxxxxx <mpls@xxxxxxxx>; rtg-ads@xxxxxxxx <rtg-ads@xxxxxxxx>
Subject: Re: [mpls] Rtgdir last call review of draft-ietf-mpls-bfd-directed-26
 

Hi Andrew,
thank you for your thorough review and constructive comments. As we discussed, the new working version includes the update addressing your first question. Please find my notes in response to the second scenario below under the GIM>> tag.

Regards,
Greg

On Wed, Apr 3, 2024 at 9:57 PM Andrew Alston via Datatracker <noreply@xxxxxxxx> wrote:
Reviewer: Andrew Alston
Review result: Has Issues

RtgDir Last Call review: draft-ietf-mpls-bfd-directed

Hello,

I have been selected as the Routing Directorate reviewer for this draft. The
Routing Directorate seeks to review all routing or routing-related drafts as
they pass through IETF last call and IESG review, and sometimes on special
request. The purpose of the review is to provide assistance to the Routing ADs.
For more information about the Routing Directorate, please see
https://wiki.ietf.org/en/group/rtg/RtgDir

Although these comments are primarily for the use of the Routing ADs, it would
be helpful if you could consider them along with any other IETF Last Call
comments that you receive, and strive to resolve them through discussion or by
updating the draft.

Document: draft-ietf-mpls-bfd-directed-26
Reviewer: Andrew Alston
Review Date: 04-04-2024
IETF LC End Date: 16-04-2024
Intended Status: Experimental

Summary:

I have some minor concerns about this document that I think should be resolved
before publication.

Comments:

The draft itself was well written and clear.  I found no major issues in either
the text of the draft or it's content, beyond the two issues noted below

Major Issues:

In Section 3.1 the BFD Reverse Path field TLV Type and Length fields are both 2
octets (16bits) in length.  The document goes on to state that the Reverse path
field contains none, one, or more sub-TLV's. It further states that these
sub-TLV types may be any sub-TLV type defined for TLV Type 1, 16 or 21 in the
MPLS LSP Ping Parameters registry.

There is no limitation on the length that can be specified in the length field.

This raises the possibility that a length could be used - with stacked
sub-TLV's in the reverse path, to create a very large packet, which could
potentially create a denial of service issue / MTU issue on the path. I've
discussed this with the authors prior to sending this review (and my thanks to
them for their timely responses to my queries) and it is proposed that an
update to the first paragraph of the Operational Considerations section of the
documented be updated from:

OLD TEXT:
When an explicit path is set either as Static or RSVP-TE LSP,
corresponding sub-TLVs, defined in [RFC7110], MAY be used to identify
the explicit reverse path for the BFD session.

To NEW TEXT:
When an explicit path is set etierhet as Static or RSVP-TE LSP,
corresponding sub-TLVs, defined in [RFC7110], MAY be used to identify
the explicit reverse path for the BFD session.  If a particular set of
sub-TLVs composes the Return Path TLV [RFC7110] and does not increase
the length of the Maximum Transmission Unit for the given LSP,
that set can be safely used in the BFD Reverse Path TLV.

The second issue - which is related - concerns a potential denial of service
vector in the supplied path lengths.

Should a path defined by these sub-TLV's be of extreme length, irrespective of
it being valid or not, there is a concern that the receiving router, on
attempting to do path matching to the reverse path, could be vulnerable to
resource saturation.  By way of illustration, the document states that any
sub-TLV in the LSP ping parameters registry for types 1, 16 and 21 may be used.
 By specifying a length of 8192 and utilsing sub-TLV 14 (Generic IPv4 Prefix as
specified in RFC8029), a path of 2048 elements could be constructed.  It's
unclear how a receiving router would handle the processing of this. Similar
scenarios can occur when paths are specified in terms of IPv4 IGP-Prefix
Segment ID's which can be stacked.

Effectively, there is a concern that through the use of long paths - valid or
not valid - it may be possible to create resource starvation on the receiving
router by spamming these packets.  This is slightly mitigated by the fact that
these packets will be inside a limited domain, however, that does not mitigate
the concern should said limited domain be compromised to allow for such
transmission.
GIM>> Thank you for bringing this scenario to our attention. Should note that the use of the BFD Reverse Path TLV in LSP Ping in SR-MPLS is considered in more details in draft-ietf-spring-bfd. There, the use of Non-FEC TLV is recommended for the SR-MPLS environment. For the scenario that you describe, it seems like the receiver of the MPLS Echo Request message will evaluate the reverse path constructed based on sub-TLVs and determine whether it can support it. If the path is deemed invalid, then the MPLS Echo Reply message will include the Return Code defined in Section 3.2:
   *  "Failed to establish the BFD session.  The specified reverse path
      was not found" (TBD4).  When a specified reverse path is
      unavailable, the egress BFD peer sends an Echo Reply with the
      return code set to "Failed to establish the BFD session.  The
      specified reverse path was not found" to the ingress BFD peer
      Section 3.1.

What are your thoughts? 

Minor Issues:

No minor issues found.



-- 
last-call mailing list
last-call@xxxxxxxx
https://www.ietf.org/mailman/listinfo/last-call

[Index of Archives]     [IETF Annoucements]     [IETF]     [IP Storage]     [Yosemite News]     [Linux SCTP]     [Linux Newbies]     [Mhonarc]     [Fedora Users]

  Powered by Linux