Re: [Last-Call] Tsvart last call review of draft-ietf-6man-comp-rtg-hdr-05

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

 



Hi Gorry,

Thanks for the thoughtful review. Responses inline [RB]....

                Ron


Juniper Business Use Only


From: Gorry Fairhurst via Datatracker <noreply@xxxxxxxx>
Sent: Monday, April 22, 2024 3:16 PM
To: tsv-art@xxxxxxxx <tsv-art@xxxxxxxx>
Cc: draft-ietf-6man-comp-rtg-hdr.all@xxxxxxxx <draft-ietf-6man-comp-rtg-hdr.all@xxxxxxxx>; ipv6@xxxxxxxx <ipv6@xxxxxxxx>; last-call@xxxxxxxx <last-call@xxxxxxxx>
Subject: Tsvart last call review of draft-ietf-6man-comp-rtg-hdr-05
 
[External Email. Be cautious of content]


Reviewer: Gorry Fairhurst
Review result: Ready with Issues

This document has been reviewed as part of the transport area review team's
ongoing effort to review key IETF documents. These comments were written
primarily for the transport area directors, but are copied to the document's
authors and WG to allow them to address any issues raised and also to the IETF
discussion list for information.

When done at the time of IETF Last Call, the authors should consider this
review as part of the last-call comments they receive. Please always CC
tsv-art@xxxxxxxx if you reply to or forward this review.

* Summary

This is a simple, and well-written draft that is intended to be published with
EXP status. It adds a new header to IPv6 carried as a routing EH. Although this
is at the network layer, there are some subtle implications on transport that
deserve consideration.

[RB] Thanks!

Review Comments:

In each case of sending an ICMPv6 Parameter Problem, the resulting error
message might or might not reach the source node - as usual, it could be wise
to note this.

[RB] Does this need to be mentioned in every RFC that originates ICMP messages? Or can we assume that readers know what ICMP is and know that ICMP delivery is not reliable.

[RB] In the interest of maintaining this document's signal to noise ratio, I lean towards the second option.


Source Node Processing: What is expected to happen if this ICMPv6 Parameter
Problem is received? Is the source node expected to log it, to react to it?

I am not aware of any IPv6 stack that processes ICMP Parameter Problem messages differently, depending on which parameter was problematic.

[RB] Neither am I! And I think that there is a very good reason for this. The pointer field in the ICMP Parameter Problem Message is unreliable.

[RB] Assume that an IPv6 packet contains three extension headers. All three have a have a type and a length attribute. However, the length attribute in the first header is off by one.  While the packet cannot be parsed, it is difficult, if not impossible, to determine that the first extension header was the one that had a problem. The pointer will probably point further into the packet.

[RB] For that reason, most implementations process all incoming ICMP Parameter Problems identically. This probably should have been mentioned in RFC 4443. But it is beyond the scope of this document.

Transport Security Consideration:  To allow closing a DoS opportunity to create
work at an endpoint, how can the source node verify that ICMPv6 messages
originate from a router on the path - can it check the packets content somehow?

[RB] It can't. But isn't this a generic ICMP problem? While it is an interesting problem, it should be addressed in a generic analysis of ICMP, not in the CRH draft.


Transport Security Consideration:  A note in the ID says: "In the description
above, ICMPv6 messages are subject to rate limits.", which appears valuable
advise. It does not motivate why ICMPv6 messages SHOULD be rate limited, which
I think it ought to be, although such rate-limiting is likely re-using existing
procedures?

[RB] Again, this is a generic ICMP problem. While it is an interesting problem, it should be addressed in a generic analysis of ICMP, not in the CRH draft.

[RB] This might be a good topic for a graduate student thesis. If you have a student looking for a topic, I would be glad to work it with them.

Transport Middlebox: Because the dest address is not the final destination as
the packet is processed on-path, this prevents intermediate nodes from
verifying transport layer checksums. - This sounds like it could raise a
potential issues in some types of middle box. Since the actual destination is
carried in the EH, ought this to be used in a checksum computation by any
middlebox before it consults any of the transport data? What are the thoughts?
Ought this to be separately identified in a section?

[RB] Section 7 of the CRH draft addresses this topic. If this solution is unacceptable, it should also be raised with regard to draft-ietf-spring-srv6-srh-compression-15. It has the exact same problem and the exact same solution.

Transport Integrity Consideration:  It would seem the final destination needs
to verify the transport checksum, while this is a general requirement for IPv6,
this perhaps ought to be explicitly noted here, because label-swapping methods
that move addresses around could potentially introduce errors that would
otherwise go undetected.

[RB] The source node calculates the transport layer checksum using the packet's ultimate destination address. That address MUST be in the packets IPv6 Destination Address field when it arrives at the ultimate destination. If it is not, the packet should not pass checksum validation. Again, draft-ietf-spring-srv6-srh-compression-15 is in the exact same situation. If this is really a problem, it should be raised with regard to both drafts.


Transport Interface Consideration:  Any EH can take away from space available
from the configured MTU or discovered PMTU at the source. It seems that many
on-path routers in addition have limits on fast-path/hardware-based/etc routing
that could result in a constraint to the total size available for an EH. These
have implications on the maximum size of segment that a transport can send, but
they are the same as any other EH.

[RB] Again, this is a generic problem, and is not specific to the CRH. Does it need to be mentioned in ever draft that specifies an extension header. Or maybe in a separate document?

Status: Section 13 does provide some useful insight into what might be learned
from the experiments, this just seems to stop short of saying why the EXP
status is being used. This could perhaps be related to the dropping (and in
some cases black-holing of packets that have this header added). So, why is
this ID is EXP and what is the potential risk of this being used and what
experience is needed to allow it to be PS?

[RB] The decision to publish as EXP was made entirely in the political layer. It had to do with competition between this draft and draft-ietf-spring-srv6-srh-compression-15.

[RB] However, I do believe that every experimental draft should include something like Section 13.


Transport Consideration: It would be helpful to note that the probability of
successful transmission depends on support by specific routers in the path so
that transport protocols that need to race packets with and without the EH
could understand the likely outcomes.

[RB] Is this not true of all routing types? If so, does this detail belong in every document that specifies a routing type, or does it belong in its own document?

* Comments on external references:

The ID states TCPDUMP and Wireshark have been extended to support the CRH.
- There is no reference provided, it's hard to understand further. Is this in
mainstream?

[RB] I will look for a reference.

Section 12 describes "Implementation and Deployment Status", this is welcome
but provides no details or supporting links to material, so it so hard to
assess what this means.

[RB] The experimenters did not publish anything.

* Comments on Normative References:

- RFC8201 is a useful reference: It was not clear why RFC8201 was normative -
it does not appear to rely upon this, but would benefit from this.

[RB] True. This reference could have been informative.

- RFC8704 is a useful reference: It was not clear why RFC8704 was normative -
it does not appear to rely upon this.

[RB] True. This reference could have been informative.



-- 
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