Merge branch 'enable-fragmentation'

This enables IKE fragmentation by default. And also increases the
default fragment size to 1280 bytes (the default for IPv6).
This commit is contained in:
Tobias Brunner
2016-10-04 10:09:03 +02:00
6 changed files with 16 additions and 13 deletions
+5 -4
View File
@@ -100,11 +100,12 @@ charon.flush_auth_cfg = no
charon.follow_redirects = yes charon.follow_redirects = yes
Whether to follow IKEv2 redirects (RFC 5685). Whether to follow IKEv2 redirects (RFC 5685).
charon.fragment_size = 0 charon.fragment_size = 1280
Maximum size (complete IP datagram size in bytes) of a sent IKE fragment Maximum size (complete IP datagram size in bytes) of a sent IKE fragment
when using proprietary IKEv1 or standardized IKEv2 fragmentation (0 for when using proprietary IKEv1 or standardized IKEv2 fragmentation, defaults
address family specific default values). If specified this limit is used to 1280 (use 0 for address family specific default values, which uses a
for both IPv4 and IPv6. lower value for IPv4). If specified this limit is used for both IPv4 and
IPv6.
charon.group charon.group
Name of the group the daemon changes to after startup. Name of the group the daemon changes to after startup.
+5 -4
View File
@@ -445,14 +445,15 @@ force UDP encapsulation for ESP packets even if no NAT situation is detected.
This may help to surmount restrictive firewalls. In order to force the peer to This may help to surmount restrictive firewalls. In order to force the peer to
encapsulate packets, NAT detection payloads are faked. encapsulate packets, NAT detection payloads are faked.
.TP .TP
.BR fragmentation " = yes | force | " no .BR fragmentation " = " yes " | force | no"
whether to use IKE fragmentation (proprietary IKEv1 extension or IKEv2 whether to use IKE fragmentation (proprietary IKEv1 extension or IKEv2
fragmentation as per RFC 7383). Acceptable values are fragmentation as per RFC 7383). Acceptable values are
.BR yes , .B yes
(the default),
.B force .B force
and and
.B no .BR no .
(the default). Fragmented IKE messages sent by a peer are always accepted Fragmented IKE messages sent by a peer are always accepted
irrespective of the value of this option. If set to irrespective of the value of this option. If set to
.BR yes , .BR yes ,
and the peer supports it, larger IKE messages will be sent in fragments. and the peer supports it, larger IKE messages will be sent in fragments.
+1 -1
View File
@@ -1980,7 +1980,7 @@ CALLBACK(config_sn, bool,
.send_cert = CERT_SEND_IF_ASKED, .send_cert = CERT_SEND_IF_ASKED,
.version = IKE_ANY, .version = IKE_ANY,
.remote_port = IKEV2_UDP_PORT, .remote_port = IKEV2_UDP_PORT,
.fragmentation = FRAGMENTATION_NO, .fragmentation = FRAGMENTATION_YES,
.unique = UNIQUE_NO, .unique = UNIQUE_NO,
.keyingtries = 1, .keyingtries = 1,
.rekey_time = LFT_UNDEFINED, .rekey_time = LFT_UNDEFINED,
+1 -1
View File
@@ -2979,7 +2979,7 @@ ike_sa_t * ike_sa_create(ike_sa_id_t *ike_sa_id, bool initiator,
.flush_auth_cfg = lib->settings->get_bool(lib->settings, .flush_auth_cfg = lib->settings->get_bool(lib->settings,
"%s.flush_auth_cfg", FALSE, lib->ns), "%s.flush_auth_cfg", FALSE, lib->ns),
.fragment_size = lib->settings->get_int(lib->settings, .fragment_size = lib->settings->get_int(lib->settings,
"%s.fragment_size", 0, lib->ns), "%s.fragment_size", 1280, lib->ns),
.follow_redirects = lib->settings->get_bool(lib->settings, .follow_redirects = lib->settings->get_bool(lib->settings,
"%s.follow_redirects", TRUE, lib->ns), "%s.follow_redirects", TRUE, lib->ns),
); );
+1
View File
@@ -222,6 +222,7 @@ static void conn_defaults(starter_conn_t *conn)
conn->dpd_delay = 30; /* seconds */ conn->dpd_delay = 30; /* seconds */
conn->dpd_timeout = 150; /* seconds */ conn->dpd_timeout = 150; /* seconds */
conn->replay_window = SA_REPLAY_WINDOW_DEFAULT; conn->replay_window = SA_REPLAY_WINDOW_DEFAULT;
conn->fragmentation = FRAGMENTATION_YES;
conn->left.sendcert = CERT_SEND_IF_ASKED; conn->left.sendcert = CERT_SEND_IF_ASKED;
conn->right.sendcert = CERT_SEND_IF_ASKED; conn->right.sendcert = CERT_SEND_IF_ASKED;
+3 -3
View File
@@ -139,12 +139,12 @@ connections.<conn>.dpd_timeout = 0s
checking. For compatibility reasons, with IKEv1 a custom interval may be checking. For compatibility reasons, with IKEv1 a custom interval may be
specified; this option has no effect on connections using IKE2. specified; this option has no effect on connections using IKE2.
connections.<conn>.fragmentation = no connections.<conn>.fragmentation = yes
Use IKE UDP datagram fragmentation. (_yes_, _no_ or _force_). Use IKE UDP datagram fragmentation. (_yes_, _no_ or _force_).
Use IKE fragmentation (proprietary IKEv1 extension or RFC 7383 IKEv2 Use IKE fragmentation (proprietary IKEv1 extension or RFC 7383 IKEv2
fragmentation). Acceptable values are _yes_, _force_ and _no_ (the fragmentation). Acceptable values are _yes_ (the default), _force_ and
default). Fragmented IKE messages sent by a peer are always accepted _no_. Fragmented IKE messages sent by a peer are always accepted
irrespective of the value of this option. If set to _yes_, and the peer irrespective of the value of this option. If set to _yes_, and the peer
supports it, oversized IKE messages will be sent in fragments. If set to supports it, oversized IKE messages will be sent in fragments. If set to
_force_ (only supported for IKEv1) the initial IKE message will already _force_ (only supported for IKEv1) the initial IKE message will already