@@ -35,8 +35,9 @@ previously mandatory fields to optional,
3535and moves the ESP trailer into the EESP header. Additionally, EESP
3636adds header options adapted from IPv6 to allow for future extension.
3737New header options are defined which add Flow IDs (e.g., for CPU
38- pinning and QoS support), and a crypt-offset to allow for exposing
39- inner flow information for middlebox use.
38+ pinning and QoS support based on the inner traffic flow), and a
39+ crypt-offset to allow for exposing inner flow information for
40+ middlebox use.
4041
4142#+end_abstract
4243#+RFC_KEYWORDS: ("EESP" "IKEv2")
@@ -179,10 +180,9 @@ Unlike ESP, EESP does not have a trailer. Instead, these values have
179180moved to a ~Payload Info Header~ directly following the ~Peer Header~.
180181With classic transport and tunnel mode, the ~Payload Info Header~
181182is encrypted, and therefore private to the IPsec peers. However,
182- with ~Payload Encryption Mode~ as specified in
183- [[Payload Encryption Mode Processing]] or with a positive crypt offset
183+ with a positive crypt offset
184184(see [[EESP Crypt Offset Option]]), the ~Payload Info Header~
185- might be left unencrypted. In these modes , protocol parsing engines
185+ might be left unencrypted. In these mode , protocol parsing engines
186186of middleboxes can act upon it (e.g., for telemetry).
187187
188188# :NOTE: doesn't the Payload Data structure depend on the mode of
@@ -251,21 +251,15 @@ The Flags field in the fixed Base Header is defined as follows:
251251#+begin_src
252252 0 1 2 3 4 5
253253 +-+-+-+-+-+-+
254- |F|P|S| R |
254+ |F| R |
255255 +-+-+-+-+-+-+
256256#+end_src
257257
258258- Packet Format (F) :: 1 bit: Set to zero for full EESP packet Format (i.e., the EESP header includes the
259- ~Payload Info Header~), set to 1 for Optimized EESP Packet format.
260- - Payload Encryption Mode (P) :: 1 bit: If set, the
261- following Layer 4 Header is authenticated, but not encrypted.
262- This bit MUST be set to 0 on any mode other than payload encryption mode .
263- The receiver MUST drop packets with this bit set, if the mode is
264- different to payload encryption mode. See [[Payload Encryption Mode Processing]]
265- - Sequence Number absent (S) :: 1 bit: If set, the peer header does not
266- carry the sequence number field in the packet. This bit MUST be set
267- to the same value for all packets on a given SA.
268- - Reserved (R) :: 3 bits: Reserved for future versions, MUST be set to 0,
259+ ~Payload Info Header~), set to 1 for Optimized EESP Packet format. This bit
260+ MAY be only set to 1 if the Crypt Offset is positive. It MUST be set to
261+ 0 otherwise.
262+ - Reserved (R) :: 5 bits: Reserved for future versions, MUST be set to 0,
269263 and ignored by the receiver.
270264
271265
@@ -324,15 +318,15 @@ NOT act upon the Peer Header fields.
324318 0 1 2 3
325319 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
326320 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
327- | Sequence Number (optional) |
321+ | Sequence Number |
328322 | |
329323 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
330324 | IV (optional) |
331325 | |
332326 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
333327#+end_src
334328
335- When present, the ~Sequence Number~ is a full 64bit sequence number.
329+ The ~Sequence Number~ is a full 64bit sequence number.
336330EESP only support 64bit sequence numbers, a.k.a ESN and transmits the
337331entire sequence number on each packet. The actual size of the
338332~Initialization Vector~ depends on the choice of the cipher suite.
@@ -1007,8 +1001,8 @@ be employed.
10071001
10081002*** Layer 4 Encapsulation Modes
10091003
1010- Layer 4 Encapsulation Modes are transport mode, BEET mode
1011- and payload encryption mode. Layer 4 Encapsulation Modes
1004+ Layer 4 Encapsulation Modes are transport mode and BEET mode.
1005+ Layer 4 Encapsulation Modes
10121006distinguish from tunnel mode on the position of the EESP
10131007header in the packet. On Layer 4 Encapsulation Modes the
10141008EESP header is inserted between the original IPv4/IPv6
@@ -1092,58 +1086,6 @@ packet.
10921086 * = if present, could be before EESP, after EESP, or both
10931087#+end_src
10941088
1095- **** Payload Encryption Mode Processing
1096-
1097- In payload encryption mode, EESP is inserted exactly at the same position
1098- as it is done for transport mode. The only difference to transport mode
1099- is that the next layer protocol header following the original IP or IPv6
1100- header is left in cleartext. Additionally to that, the 'C' bit in the EESP
1101- header flags is set.
1102-
1103-
1104- The following diagrams illustrate EESP payload encryption mode
1105- positioning for a typical IPv4 and IPv6 packet, on a "before and after" basis.
1106-
1107-
1108- #+caption: IPv4 Payload Encryption Mode
1109- #+name: ipv4-pe-mode
1110- #+begin_src
1111- BEFORE APPLYING EESP
1112- ----------------------------
1113- IPv4 |orig IP hdr | | |
1114- |(any options)| TCP | Data |
1115- ----------------------------
1116-
1117- AFTER APPLYING EESP
1118- ----------------------------------------------------
1119- IPv4 |orig IP hdr | EESP | | | EESP |
1120- |(any options)| Hdr | TCP | L4 pyld Data | ICV |
1121- ----------------------------------------------------
1122- |<- encryption ->|
1123- |<-------- integrity -------->|
1124- #+end_src
1125-
1126- #+caption: IPv6 Payload Encryption Mode
1127- #+name: ipv6-pe-mode
1128- #+begin_src
1129-
1130- BEFORE APPLYING EESP
1131- ---------------------------------------
1132- IPv6 | | ext hdrs | | |
1133- | orig IP hdr |if present| TCP | Data |
1134- ---------------------------------------
1135-
1136- AFTER APPLYING EESP
1137- --------------------------------------------------------------
1138- IPv6 | orig |hop-by-hop,dest*,|EESP|dest| | Layer 4 |EESP|
1139- |IP hdr|routing,fragment.|Hdr |opt*|TCP| Payload Data |ICV |
1140- --------------------------------------------------------------
1141- |<- encryption ->|
1142- |<-------- integrity --------->|
1143-
1144- * = if present, could be before EESP, after EESP, or both
1145- #+end_src
1146-
11471089**** BEET Mode Processing
11481090
11491091In BEET mode, EESP is inserted exactly at the same position
0 commit comments