IPv6 Options for In Situ Operations, Administration, and Maintenance (IOAM)
Note: This ballot was opened for revision 09 and is now closed.
(was Discuss) No Objection
Comment (2023-03-20 for -10) Sent
Hi, Firstly thanks for the modifications to the text. While I still support the discuss points raised by John, I'm going to clear my discuss based on the fact that I think that the new next in C2 seems to address my destination option query, since I'm going to presume that if the destination address is a SID - it stands to reason that where a SID is not bound to a specific interface, it cannot be IOAM enabled and therefore the packets should be ignored.
(was Discuss) No Objection
(was Discuss) No Objection
Comment (2023-05-05 for -11) Sent
# John Scudder, RTG AD, comments for draft-ietf-ippm-ioam-ipv6-options-11 CC @jgscudder ## COMMENT Thanks for taking care of my previous DISCUSSes and many of my earlier comments. There remain a few comments that weren't addressed in versions 10 or 11 nor responded to in email, please forgive me if I've missed a response. I repeat the comments below, with section numbers updated to match the numbering in versions 10 and 11. ### Section 3, reference for IOAM Type, nomenclature ``` IOAM Type: 8-bit field as defined in section 7.1 in [RFC9197]. ``` Section 7.1 of RFC 9197 is the IOAM Option-Type Registry in the IANA Considerations section. I wouldn't say an IANA registry "defines" anything, it lists code points. I think a better reference would be Section 4 of 9197, which does indeed define IOAM-Option-Types (in Section 4.1). Also, it would be better to be consistent with your naming, in RFC 9197 you don't call this the "IOAM Type" but rather the "IOAM-Option-Type" (34 occurrences in 9197) or "IOAM Option-Type" without the first hyphen (4 occurrences in 9197). I see why you don't want to use the full string from RFC 9197 in your packet diagram (too many characters) but "IOAM-Opt-Type" would fit in the character budget. ### Section 4.2, encapsulation? ``` For deployments where the IOAM domain is bounded by hosts, hosts will perform the operation of IOAM data field encapsulation and decapsulation. ``` Do you intend to imply that the hosts at the edge of the domain are sending IP-in-IPv6 encapsulated data? It wouldn't seem to be required; since the hosts are the source/sink of the packets, the problem described in C6 doesn't apply, and the host can directly place the IOAM data in the header. (What would be the "inner header" in an overlay solution.) I suppose it's technically accurate to describe this as an "encapsulation and decapsulation" operation, insofar as any data placed in any header might be said to be encapsulated in that header -- but it's misleading. I think this section needs to be rewritten to make the meaning plain. For example, something like "... hosts will place the IOAM data field directly in the IPv6 header." (You could say "outer IPv6 header" since there's nothing precluding a host from sending tunneled packets for some purpose.) (I notice Éric Vyncke raises a similar concern about the nontraditional use of the term "encapsulation" in his comments.) ### Section 4.3, encapsulation again This one is less misleading, but by analogy to 4.2 I suspect more clarity is required here too. ``` For deployments where the IOAM domain is bounded by network devices, network devices such as routers form the edge of an IOAM domain. Network devices will perform the operation of IOAM data field encapsulation and decapsulation. ``` For example, a more straightforwardly understandable version of the last sentence might be "Network devices will encapsulate in-flight packets in an outer IPv6 header which carries the IOAM data field." ## Notes This review is in the ["IETF Comments" Markdown format][ICMF], You can use the [`ietf-comments` tool][ICT] to automatically convert this review into individual GitHub issues. [ICMF]: https://github.com/mnot/ietf-comments/blob/main/format.md [ICT]: https://github.com/mnot/ietf-comments
Comment (2022-12-07 for -09) Sent
# GEN AD review of draft-ietf-ippm-ioam-ipv6-options-09 CC @larseggert Thanks to Joel Halpern for the General Area Review Team (Gen-ART) review (https://mailarchive.ietf.org/arch/msg/gen-art/N0aMpTOtDieVf0vT6Tu2reLFewI). ## Comments I find myself agreeing with the numerous DISCUSS positions, but I trust the ADs that raised them to resolve them with the authors. ### Section 4, paragraph 28 ``` All the in-situ OAM IPv6 options defined here have alignment requirements. Specifically, they all require 4n alignment. This ``` I haven't come across the term "4n alignment" before. Suggest to rephrase (by using the text in the following sentence.) ## Nits All comments below are about very minor potential issues that you may choose to address in some way - or ignore - as you see fit. Some were flagged by automated tools (via https://github.com/larseggert/ietf-reviewtool), so there will likely be some false positives. There is no need to let me know what you did with these suggestions. ### Typos #### Section 5.1, paragraph 4 ``` - C3 Packets with IOAM data or associated ICMP errors, should not - - ``` ### Outdated references Document references `draft-ietf-ippm-ioam-direct-export`, but that has been published as `RFC9326`. ### URLs These URLs point to tools.ietf.org, which has been taken out of service: * https://tools.ietf.org/id/draft-kitamura-ipv6-record-route-00.txt These URLs in the document can probably be converted to HTTPS: * http://www.iana.org/assignments/ipv6-parameters/ipv6-parameters.xhtml#ipv6-parameters-2 ### Grammar/style #### Section 5.1, paragraph 3 ``` IOAM. For example, if IOAM is used in in transit devices, misleading ICMP er ^^^^^ ``` Possible typo: you repeated a word. #### Section 5.1, paragraph 3 ``` ommunicate the errors to devices outside of the IOAM domain MUST remove any ^^^^^^^^^^ ``` This phrase is redundant. Consider using "outside". #### Section 5.1, paragraph 5 ``` options that follow IOAM options. Hence when the IOAM Incremental Trace Opt ^^^^^ ``` A comma may be missing after the conjunctive/linking adverb "Hence". #### Section 5.4.1, paragraph 1 ``` LA destination address is invalid outside of the IOAM domain. There is no ext ^^^^^^^^^^ ``` This phrase is redundant. Consider using "outside". ## Notes This review is in the ["IETF Comments" Markdown format][ICMF], You can use the [`ietf-comments` tool][ICT] to automatically convert this review into individual GitHub issues. Review generated by the [`ietf-reviewtool`][IRT]. [ICMF]: https://github.com/mnot/ietf-comments/blob/main/format.md [ICT]: https://github.com/mnot/ietf-comments [IRT]: https://github.com/larseggert/ietf-reviewtool
Comment (2022-11-24 for -09) Sent
I support Roman's DISCUSS points. NITS: It is non-standard to list contributors at the start of the document. Usually this is done in an acknowledgement section at the end of the document. Any reason why not to move the Contributors section just before or within the Acknowledgement section ? are encapsulated in the IPv6 -> are encapsulated in IPv6
Comment (2022-12-01 for -09) Sent
Hi, Thanks for this doc. Minor level comments: (1) p 5, sec 4. In-situ OAM Metadata Transport in IPv6 IPv6 options can have a maximum length of 255 octets. Consequently, the total length of IOAM Option-Types including all data fields is also limited to 255 octets when encapsulated into IPv6. Given the alignment requirements, wouldn't the max length be slightly smaller, e.g. 252 bytes? (2) p 6, sec 5.2. IOAM domains bounded by hosts For deployments where the IOAM domain is bounded by hosts, hosts will perform the operation of IOAM data field encapsulation and decapsulation. IOAM data is carried in IPv6 packets as Hop-by-Hop or Destination options as specified in this document. For clarity, does this mean that in this case that there is presumably no need to encapsulate the host packet within a separate IPv6 packet, and the OAM extension header could be embedded directly when the v6 header of the host packet is being constructed? (3) p 7, sec 5.4.1. IP-in-IPv6 encapsulation with ULA An IPv6 header including IOAM data fields in an extension header is added in front of it, to forward traffic within and across the IOAM domain. Rather than saying add an IPv6 in front of it, wouldn't be more accurate to say that it is being encapsulated with an IPv6 header including the IOAM data fields? (4) p 7, sec 5.4.1. IP-in-IPv6 encapsulation with ULA IPv6 addresses for the IOAM Overlay Network, i.e. the outer IPv6 addresses are assigned from the ULA space. Addressing and routing in the IOAM Overlay Network are to be configured so that the IP-in-IPv6 encapsulated packets follow the same path as the original, non-encapsulated packet would have taken. This would create an internal IPv6 forwarding topology using the IOAM domain's interior ULA address space which is parallel with the forwarding topology that exists with the non-IOAM address space (the topology and address space that would be followed by packets that do not have supplemental IOAM information). Establishment and maintenance of the parallel IOAM ULA forwarding topology could be automated, e.g., similar to how LDP [RFC5036] is used in MPLS to establish and maintain an LSP forwarding topology that is parallel to the network's IGP forwarding topology. Maintaining a separate ULA forwarding topology seems to introduce a certain level of additional complexity. Is there any risk of the parallel forwarding plane programming lagging behind the non-IOAM topology such that different paths through the network would be taken? (5) p 8, sec 6. Security Considerations As this document describes new options for IPv6, these are similar to the security considerations of [RFC8200] and the weakness documented in [RFC8250]. Are there any security considerations relative to using ULA addressing for encapsulating the traffic that should be documented here? Regards, Rob
(was Discuss) No Objection
Comment (2023-03-01 for -10) Sent for earlier
Thank you for addressing my DISCUSS and COMMENT feedback.
(was Discuss) No Objection
Comment (2023-03-06 for -10) Sent
Thanks for addressing my previous blocking DISCUSS issue. For archive: https://mailarchive.ietf.org/arch/msg/ippm/iFh9vrAOZ-79nVqR3QF5kOEKUcM/ -éric
Comment (2022-11-29 for -09) Sent
I spent a while oscillating between DISCUSS and NoObjection when balloting on this document, before finally settling on Abstain (a non-blocking position). Like others, I have concerns about what happens when IOAM EH packets invariably leak outside the IOAM domain. My views align very strongly with John Scudder's, but seeing as he is already carrying the DISCUSS, I'm going to cowardly abstain and hide behind him. The document feels like it is creating something very similar to a "limited domain"; the reason that I'm not balloting DISCUSS is that the document "feels" like it is trying to minimize the damage when IOAM packets do leak. This includes "failing closed" ('IOAM MUST be explicitly enabled per interface on every node within the IOAM domain'). I am, however, quite troubled by the "As additional security, IOAM domains MUST provide a mechanism to prevent unauthorized injections at ingress or leaks at egress." without actually stating how this would be performed. The fact that the IOAM data is information (it doesn't obfuscate the source of the traffic, nor (hopefully!) change routing / forwarding) also helps push this from DISCUSS to Abstain for me - when a domain *does* leak packets with IOAM info, they will either exceed the MTU and so be dropped, or will "just" be leaking traffic stats from that domain, and should otherwise be forwarded OK. There are some Considerations in Sec 5 which I think are unrealistic, but not harmful - for example: * I suspect that in some cases adding IOAM will change ECMP hashing (C1); * they *will* leak (C3), but this shouldn't break things; * they *will* leak (C4), but I suspect that external devices will simply ignore the EH header; I have a horrible feeling that I'm being inconsistent with my balloting: normally I would ballot DISCUSS on documents which either add information to an in-flight packet, or which create any sort of closed domain, but in this case I feel that the document has sufficiently attempted to mitigate the (external) consequences of leaks that I'm choosing Abstain instead.