Skip to main content

IETF Last Call Review of draft-ietf-rtgwg-multisegment-sdwan-13
review-ietf-rtgwg-multisegment-sdwan-13-secdir-lc-eastlake-2026-07-02-00

Request Review of draft-ietf-rtgwg-multisegment-sdwan
Requested revision No specific revision (document currently at 14)
Type IETF Last Call Review
Team Security Area Directorate (secdir)
Deadline 2026-07-14
Requested 2026-06-23
Requested by Jim Guichard
Authors Kausik Majumdar , Linda Dunbar , Venkit Kasiviswanathan , Ashok Ramchandra , Aseem Choudhary
I-D last updated 2026-07-08 (Latest revision 2026-07-06)
Completed reviews Secdir Early review of -05 by Jon Geater (diff)
Rtgdir Early review of -04 by Joel M. Halpern (diff)
Opsdir Early review of -07 by Gabriele Galimberti (diff)
Genart IETF Last Call review of -13 by Russ Housley (diff)
Secdir IETF Last Call review of -13 by Donald E. Eastlake 3rd (diff)
Assignment Reviewer Donald E. Eastlake 3rd
State Completed
Request IETF Last Call review on draft-ietf-rtgwg-multisegment-sdwan by Security Area Directorate Assigned
Posted at https://mailarchive.ietf.org/arch/msg/secdir/IxunL7uad2VWDTntjKROkdr4QaU/
Reviewed revision 13 (document currently at 14)
Result Has issues
Completed 2026-07-02
review-ietf-rtgwg-multisegment-sdwan-13-secdir-lc-eastlake-2026-07-02-00
I have reviewed this document as part of the security directorate's
ongoing effort to review all IETF documents being processed by the
IESG. These comments were written primarily for the benefit of the
security area directors. Document editors and WG chairs should treat
these comments just like any other last call comments.

The summary of the review is Ready with Issues.

This document describes a method for seamlessly interconnecting
geographically separated SD-WAN segments via a Cloud Backbone without
requiring Cloud Gateways (GWs) to decrypt and re-encrypt traffic.

Security Issues
---------------

Section 9: It seems to me that there is too much actual core specification
in this Security Considerations Section and that some of the mechanism
specification it provides should be moved elsewhere in the draft.

Section 9.2:

- To be interoperable, I think there MUST be at least one mandatory to
implement hash function, such as SHA-256, for the HMAC.

- 1st paragraph:
 - - 2nd sentence: Says the HMAC "is appended to the packet", but in this
case it is included in a header field. If you want to be general you could
say "accompanies the data to be authenticated".
 - - Why does the HMAC only cover the GENEVE Header? This enables cut and
paste attacks where a good GENEVE Header with HMAC can be applied to a
different payload. Say there are two flows from CPE1 to CPE2. By swapping
authenticated GENEVE headers, you could cause a payload from one flow to
appear to validly be in another flow. HMAC is relatively efficient but if
it is considered too much computation to include the entire payload, you
could just include the ICV in the HMAC.

- 2nd paragraph:
 - - I do not understand how the salt would be configured or why it might
need to be different. Suggest deleting "unless otherwise configured,"
 - - Recommend included a reference to [RFC0020] for "ASCII".
 - - This paragraph talks about not needing an IKEv2 exchange to set up
IPSEC between each pair of CPEs but the method of computing keying material
based on the two CPE<->GW IPSEC associations is only talked about as
providing the HMAC secret key. This seems inconsistent. I guess "the key
distribution" is talking about the distribution of algorithm identifiers
and keys for the CPE<->CPE IPSec?

- 3rd paragraph: this is somewhat of a judgement call but I would be
suspicious of HMACs less than 12 bytes; however, given that use of
AH/ESP-NULL is provided as an alternative, this is probably not much of a
problem.

Page 23, 24: It says:
       "Computed over the entire GENEVE header, including the
        Multi-Segment SD-WAN Option Class and all included Sub-
        TLVs, excluding only the HMAC-Auth-Val Sub-TLV (that is,
        neither the Type, Length, Reserved, nor HMAC Value
        fields of the HMAC-Auth-Val Sub-TLV are included in the
        calculation)"
For interoperability, it is essential that the exact bits being hashed be
specified with complete precision. Does this mean that it is calculated
over the GENEVE Header Before the HMAC-Auth-Val Sub-TLV has been added and
before the GENEVE Header length has been adjusted for it? Does this mean
that it is calculated over the GENEVE Header after that Sub-TLV is added
and the length adjusted but that in calculating the HMAC the bytes in the
listed fields are just ignored and not input to the hash function? Someone
used to other protocols which are calculated with some fields zeroed might
even implement this as computing the HMAC over the header after this
Sub-TLV is added but with the not "included" fields set to zero although I
think this is less likely than the first two interpretations.

Question
---------

Appendix A.1:
- This talks of CPE1 and CPE2 establishing a bidirectional IPsec tunnel. Is
this via IKEv2 messages sent through the GW? Are the algorithms and keys
all pushed down by a controller?

Minor Issues
------------

Section 4.5: The name of these regions is confusing. It should be "Allowed
Regions" or "Permitted Regions" or the like. "Restricted Regions" sounds
like regions that the traffic is restricted from. That is, until I read the
more detailed text, I first thought "Restricted Regions" meant "Prohibited
Regions". (The name "Exclude Transit" in Section 4.6 is OK.) Thinking about
this, to minimize wording changed, you might label the Section 4.5 things
as "Restricted To Regions" or "Transit Restricted To Regions" which would
be clear enough,

Can both the Section 4.5 and 4.6 sub-TLVs appear in the same message? If
not, I assume the message should be discarded if they do but Section 5 does
not say that. If they can both appear, what does that mean? I assume a
Section 4.5 sub-TLV implies that all other regions are prohibited and a
Section 4.6 implies that all other regions are allowed. What would it mean
for regions listed in neither sub-TLV if both were present? What would it
mean for one or more regions to be listed in both if both were present?

The very first listed step in packet processing in Section 5 talks of
"preconfigured authentication method". Can you give an example or a
reference to an RFC talking about some of these? Or are you just talking
about the HMAC, in which case I think the draft should say so?

Section 6 talks about checking that the packet complies with policy by
ensuring "mandatory transit nodes are included and excluded nodes are
avoided". This talks about "nodes" while Sections 4.5 and 4.6 talk about
"regions". This seems inconsistent.

There are several occurrences of "Must set to 0." which I think should be
"MUST set to 0." In general, capitalization of RFC 2119 key words should be
checked.

Nits
----

Introduction, Page 4: suggest
"Cloud Backbone stitching SD-WAN segments" ->
"Cloud Backbone stitching together SD-WAN segments"
There are additional cases where I think the draft would read better by
adding "together" after "stitching".

Perhaps in Section 4.1 in the list of fields below Figure 3, to be
absolutely clear, it should specify the value of C rather than just saying
"set". So it would be something like

- C-bit: value 0b1 to ensure that a receiving node drops
   the packet if it does not recognize the option, as per
   [RFC8926]

Section 4.2: refers to the "Address Family Numbers" registry. For absolute
clarity, suggest adding "IANA" and adding the URL for the registry in the
references and adding a reference here. So it would become "IANA Address
Family Numbers [IANA-AFN]" or the like.

Section 9.1, last sentence: "Mitigation above risks" -> "Mitigation of the
above risks"

Appendix A.1:
- The packet diagram in Figure 10 is just described as "A packet from
192.0.2.1 to 192.0.2.65". But I think some of the initial fields listed for
this packet change along the way. At least the outer IP Header would
change. At a minimum, seems like the text should say "A packet from
192.0.2.1 to 192.0.2.65 as initially transmitted by CPE1"

Appendix A.2:
- I'm not sure why, in the IP addresses of CPE1 and CPE10, one is a /26 and
the other is a /25. It's not wrong but it just seems a little odd. Suggest
they both be /25.
- Comparing Figure 10 and Figure 11, they are very similar but there are
some odd differences. Figure 10 shows "Optional other SD-WAN Sub-TLVs" but
Figure 11 does not even though I think they could both have, for example,
the Exclude Transit Sub-TLV. In the same box as that, they both have
"validated by GW" but it has unbalanced parenthesis in Figure 11. Figure 10
says the ICV is generated by CPE1 but this is missing from Figure 11.
- As with A.1, it should indicate that this is a diagram of the packet as
initially transmitted by CPE1.

Appendix B:
- From this appendix, maybe the "Edge" box in Figure 1 has to do with the
VPN?
- It is good that Figures 12 and 13 in this section show the change in the
headers. It is not so good that these two figures use somewhat different
formatting from Figures 10 and 11; in particular, the horizontal divisions
by minus signs or equal signs don't seem consistent between the two pairs
of figures.
- Since Appendix A covers both "single hop" and "multiple hop" cases and
Appendix B covers only "single hop", the reader is likely to wonder about
the VPN multi-hop case. I think this could be answered with one or two
sentences.

Thanks,
Donald
===============================
 Donald E. Eastlake 3rd
 2386 Panoramic Circle, Apopka, FL 32703 USA
 d3e3e3@gmail.com