Skip to content

Commit ee0cdf5

Browse files
committed
Various fixes.
1 parent 60aaf32 commit ee0cdf5

1 file changed

Lines changed: 38 additions & 61 deletions

File tree

eesp.org

Lines changed: 38 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,14 @@ Due to the absence of a version number in the packet header of the ESP
4747
protocol, ESP can't be updated in a transparent way. Any updates
4848
to ESP must be negotiated by IKEv2 and are therefore indiscernible to
4949
intermediate 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
5151
certain 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
5454
also be used to perform ECMP based on the inner flows at intermediate
5555
devices 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
5858
Crypt Offset to expose parts of the headers of the inner packet.
5959
EESP provides a solution for all the aforementioned use cases.
6060
This 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.
281281
The Peer Header is private to the IPsec peers, middleboxes MUST
282282
NOT act upon the Peer Header fields. Peer Header fields are
283283
optional 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.
288288
Future documents can define additional Peer Header fields
289289
based on their needs.
290290

@@ -338,7 +338,7 @@ in the context of multiple senders. However, EESP is capable to
338338
handle packet counters among multiple senders. This can be done by
339339
defining a new Base Header Option that covers a ~Sender ID~.
340340
Similar 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]]).
342342
Defining such an Option is left for future documents.
343343

344344
Replay protection SHOULD be enabled.
@@ -348,7 +348,7 @@ it can be disabled. Disabling replay protection MUST
348348
be negotiated by IKEv2. In this case the sequence number
349349
field 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
352352
disable replay protecton, it is negotiated in EESP so
353353
that sender and receiver can agree on it.
354354

@@ -405,7 +405,12 @@ establishment.
405405

406406
The Payload Info Header is needed if the contained payload is
407407
not 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
409414
tunnel mode because this information can be derived from the inner
410415
IPv4 or IPv6 header. This document specifies a full and an optimized
411416
packet 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
844849
formatting 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
894899
field contains the value N-2, and the ~Option Data~ consists of N-2
895900
zero-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
930903
This option is typically used within one Datacenter use case
931904
such 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
10831056
is replaced by a new one. The new header SHOULD be negotiated by IKEv2
10841057
or 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

Comments
 (0)