@@ -47,14 +47,14 @@ Due to the absence of a version number in the packet header of the ESP
4747protocol, ESP can't be updated in a transparent way. Any updates
4848to ESP must be negotiated by IKEv2 and are therefore indiscernible to
4949intermediate devices such as routers and firewalls. In the recent
50- past, several attempts were taken to introduce a Flow Identifier for
50+ past, several attempts were taken to introduce an inner-flow identifier for
5151certain use cases. Examples are
5252[[I-D.ponchon-ipsecme-anti-replay-subspaces]] and
53- [[I-D.he-ipsecme-vpn-shared-ipsecsa]]. Such a Flow Identifier could
53+ [[I-D.he-ipsecme-vpn-shared-ipsecsa]]. Such an identifier could
5454also be used to perform ECMP based on the inner flows at intermediate
5555devices or endpoints. Additionally to that, there exists a
56- specification of the [[PSP]] protocol that has the need of a Flow
57- Identifier , called Network Identifier (VNI) there. PSP also defines a
56+ specification of the [[PSP]] protocol that has the need of an inner-flow
57+ identifier , called Virtual Network Identifier (VNI) there. PSP also defines a
5858Crypt Offset to expose parts of the headers of the inner packet.
5959EESP provides a solution for all the aforementioned use cases.
6060This document defines a Session ID that can be used as a flow identifier
@@ -232,7 +232,7 @@ The fixed portion of the base header is defined as follows.
232232 For instance, it can be used to encode a Sub SA ID. The meaning of
233233 that field is opaque and MAY be
234234 negotiated by IKEv2. This document defines the use of the Session ID
235- as a Subs SA ID. Other use cases are not covered in this document.
235+ as a Sub SA ID. Other use cases are not covered in this document.
236236- Security Parameter Index (SPI) :: 32 bits: The SPI is an arbitrary
237237 32-bit value that is used by a receiver to identify the SA to which
238238 an incoming packet is bound.
@@ -281,10 +281,10 @@ The ~Peer Header~ follows the ~Base Header~ and ~Options~ field.
281281The Peer Header is private to the IPsec peers, middleboxes MUST
282282NOT act upon the Peer Header fields. Peer Header fields are
283283optional and MUST be
284- negotiated by IKEv2 or any other appropriate protocol, therefore
285- is is not parsable by middelboxes . This document defines two
286- Peer Header fileds , a ~Sequence Number~ and an
287- ~Initialization Vector~, the format is shown below.
284+ negotiated by IKEv2 or any other appropriate protocol; therefore
285+ it is not parsable by middleboxes . This document defines two Peer
286+ Header fields , a ~Sequence Number~ and an ~Initialization Vector~; the
287+ format is shown below.
288288Future documents can define additional Peer Header fields
289289based on their needs.
290290
@@ -338,7 +338,7 @@ in the context of multiple senders. However, EESP is capable to
338338handle packet counters among multiple senders. This can be done by
339339defining a new Base Header Option that covers a ~Sender ID~.
340340Similar to the Session ID, this Sender ID can be used as an
341- additional Subs SA ID (see [[Session ID as Sub SA ID]]).
341+ additional Sub SA ID (see [[Session ID as Sub SA ID]]).
342342Defining such an Option is left for future documents.
343343
344344Replay protection SHOULD be enabled.
@@ -348,7 +348,7 @@ it can be disabled. Disabling replay protection MUST
348348be negotiated by IKEv2. In this case the sequence number
349349field is omitted.
350350
351- In contrast to ESP, where the receiver alone decides wether to
351+ In contrast to ESP, where the receiver alone decides whether to
352352disable replay protecton, it is negotiated in EESP so
353353that sender and receiver can agree on it.
354354
@@ -405,7 +405,12 @@ establishment.
405405
406406The Payload Info Header is needed if the contained payload is
407407not a single IPv4 or IPv6 packet (e.g., when using Transport Mode,
408- BEET Mode [[RFC7402]], or IP-TFS [[RFC9347]]). It is not needed on
408+ BEET Mode [[RFC7402]],
409+
410+ # FIXME: Replace this, and all other mentionings of RFC7402,
411+ # with the new BEET mode RFC if published faster than this...
412+
413+ or IP-TFS [[RFC9347]]). It is not needed on
409414tunnel mode because this information can be derived from the inner
410415IPv4 or IPv6 header. This document specifies a full and an optimized
411416packet format. The Payload Info Header is present in the full
@@ -838,9 +843,9 @@ OptLen field in the ~Base Header~.
838843
839844** EESP Option Types
840845
841- This document defines two padding options ~Pad1~ and ~PadN~, a ~Flow
842- Identifier Option~, and a ~ Crypt Offset Option~. Future documents can
843- define additional options. Appendix A of [[RFC8200]] contains applicable
846+ This document defines two padding options ~Pad1~ and ~PadN~, and a
847+ ~ Crypt Offset Option~. Future documents can define additional options.
848+ Appendix A of [[RFC8200]] contains applicable
844849formatting guidelines for designing new options.
845850
846851*** Padding Options
@@ -894,38 +899,6 @@ into the ~Options~ field. For N octets of padding, the Opt Data Len
894899field contains the value N-2, and the ~Option Data~ consists of N-2
895900zero-valued octets.
896901
897- # Note STK: Pad Options are missing
898-
899- # *** EESP Flow Identifier Option
900- #
901- # Flow Identifier (FID) Options are used to carry characteristic
902- # information of the inner flow and SHOULD NOT change on per packet
903- # basis inside any inner flow.
904- # # to avoid packet reordering.
905- # The Flow Identifier SHOULD be negotiated by IKEv2 or another
906- # suitable protocol. The detailed specification of FIDs MAY be provided
907- # in subsequent documents. The precise meaning of a FID is opaque to
908- # intermediate devices.
909- #
910- # #+caption: Flow Identifier Option
911- # #+name: fid-option
912- # #+begin_src
913- # 0 1 2 3
914- # 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
915- # +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
916- # | Option Type | Option Length | |
917- # +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
918- # | |
919- # ~ Flow Identifier (FID) ~
920- # | |
921- # +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
922- # #+end_src
923- #
924- # - Option Type :: 8 bits: See [[EESP Header Options]]
925- # - Option Length :: 8 bits: See [[EESP Header Options]]
926- # - FID :: Variable length, carries characteristic information of a
927- # inner flow and MUST NOT change for a given inner flow within a SA.
928-
929902*** EESP Crypt Offset Option
930903This option is typically used within one Datacenter use case
931904such as [[PSP]]. When enabled, full packet format with Payload Info
@@ -1083,9 +1056,14 @@ as it is done for transport mode. The original IP or IPv6 header
10831056is replaced by a new one. The new header SHOULD be negotiated by IKEv2
10841057or any other suitable protocol.
10851058
1086- # FIXME: Some more text here...
1059+ In BEET mode, the EESP header is inserted between the (new) IP header
1060+ and the next layer protocol header, as shown below, and the Full Packet
1061+ Format MUST be used. The original IP header is replaced by a new one
1062+ as specified in [[RFC7402]]. Any information required to reconstruct
1063+ the original header is protected by EESP and processed according to
1064+ [[RFC7402]].
10871065
1088- #+caption: IPv6 BEET Mode
1066+ #+caption: IPv4 BEET Mode
10891067#+name: ipv4-beet-mode
10901068#+begin_src
10911069 BEFORE APPLYING EESP
@@ -1142,13 +1120,13 @@ packets.
11421120#+caption: IPv4 Tunnel Mode
11431121#+name: ipv4-tunnel-mode
11441122#+begin_src
1145- BEFORE APPLYING ESP
1123+ BEFORE APPLYING EESP
11461124 ----------------------------
11471125 IPv4 |orig IP hdr | | |
11481126 |(any options)| TCP | Data |
11491127 ----------------------------
11501128
1151- AFTER APPLYING ESP
1129+ AFTER APPLYING EESP
11521130
11531131 ----------------------------------------------------------
11541132 IPv4 | new IP hdr* | EESP | orig IP hdr* | | | EESP |
@@ -1162,13 +1140,13 @@ packets.
11621140#+caption: IPv6 Tunnel Mode
11631141#+name: ipv6-tunnel-mode
11641142#+begin_src
1165- BEFORE APPLYING ESP
1143+ BEFORE APPLYING EESP
11661144 ---------------------------------------
11671145 IPv6 | | ext hdrs | | |
11681146 | orig IP hdr |if present| TCP | Data |
11691147 ---------------------------------------
11701148
1171- AFTER APPLYING ESP
1149+ AFTER APPLYING EESP
11721150
11731151 --------------------------------------------------------------
11741152 IPv6 | new* |new ext | EESP | orig*| orig ext | | | EESP |
@@ -1603,7 +1581,7 @@ The receiver proceeds for combined mode algorithms as follows:
16031581 Payload Data, Padding, using the key, algorithm,
16041582 algorithm mode, and cryptographic synchronization data (if
16051583 any), indicated by the SA.
1606- The Base Header and the Peer Header are are inputs
1584+ The Base Header and the Peer Header are inputs
16071585 to this algorithm, as they are required for the integrity
16081586 check.
16091587
@@ -1622,7 +1600,7 @@ The receiver proceeds for combined mode algorithms as follows:
16221600 datagram as invalid; this is an auditable event. The log
16231601 data SHOULD include the SPI value, Session ID value, date/time received,
16241602 Source Address, Destination Address, the Sequence Number,
1625- andF (in IPv6) the cleartext Flow ID.
1603+ and (in IPv6) the cleartext Flow ID.
16261604
16271605- Process any Padding as specified in the encryption algorithm
16281606 specification, if the algorithm has not already done so.
@@ -1632,7 +1610,7 @@ The receiver proceeds for combined mode algorithms as follows:
16321610 without further processing.
16331611
16341612- Extract the original IP datagram (tunnel mode) or
1635- transport-layer frame (layer 4 payload encapsulation modes) from the ESP Payload
1613+ transport-layer frame (layer 4 payload encapsulation modes) from the EESP Payload
16361614 Data field.
16371615
16381616
@@ -1838,8 +1816,8 @@ This document requests IANA allocate an IP protocol number from
18381816
18391817** EESP Versions Registry
18401818
1841- This document requests IANA to create a registry called "EESP_VERSIONS"
1842- Type Registry" under a new category named "EESP_VERSIONS Parameters".
1819+ This document requests IANA to create a registry called "EESP_VERSIONS Type Registry" under a new category
1820+ named "EESP_VERSIONS Parameters".
18431821
18441822- Name: EESP Versions Registry
18451823- Description: EESP Base Header Version
@@ -1854,7 +1832,7 @@ The initial content for this registry is as follows:
18541832 ------- ------------------------------ ---------------
18551833 0 V0 [this document]
18561834 1-13 Unassigned [this document]
1857- 13 -15 Private Use [this document]
1835+ 14 -15 Private Use [this document]
18581836#+end_src
18591837
18601838
@@ -1877,8 +1855,7 @@ The initial content for this registry is as follows:
18771855 0 Pad1 [this document]
18781856 1 PadN [this document]
18791857 2 Crypt Offset [this document]
1880- 3 FID [this document]
1881- 4-223 Unassigned [this document]
1858+ 3-223 Unassigned [this document]
18821859 224-255 Private [this document]
18831860#+end_src
18841861
0 commit comments