Merge branch 'enable-fragmentation'
authorTobias Brunner <tobias@strongswan.org>
Tue, 4 Oct 2016 08:09:03 +0000 (10:09 +0200)
committerTobias Brunner <tobias@strongswan.org>
Tue, 4 Oct 2016 08:09:03 +0000 (10:09 +0200)
This enables IKE fragmentation by default. And also increases the
default fragment size to 1280 bytes (the default for IPv6).

conf/options/charon.opt
man/ipsec.conf.5.in
src/libcharon/plugins/vici/vici_config.c
src/libcharon/sa/ike_sa.c
src/starter/confread.c
src/swanctl/swanctl.opt

index 3970012..04e099e 100644 (file)
@@ -100,11 +100,12 @@ charon.flush_auth_cfg = no
 charon.follow_redirects = yes
        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
-       when using proprietary IKEv1 or standardized IKEv2 fragmentation (0 for
-       address family specific default values). If specified this limit is used
-       for both IPv4 and IPv6.
+       when using proprietary IKEv1 or standardized IKEv2 fragmentation, defaults
+       to 1280 (use 0 for address family specific default values, which uses a
+       lower value for IPv4).  If specified this limit is used for both IPv4 and
+       IPv6.
 
 charon.group
        Name of the group the daemon changes to after startup.
index 6d99e13..6f80709 100644 (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
 encapsulate packets, NAT detection payloads are faked.
 .TP
-.BR fragmentation " = yes | force | " no
+.BR fragmentation " = " yes "  | force | no"
 whether to use IKE fragmentation (proprietary IKEv1 extension or IKEv2
 fragmentation as per RFC 7383).  Acceptable values are
-.BR yes ,
+.B yes
+(the default),
 .B force
 and
-.B no
-(the default). Fragmented IKE messages sent by a peer are always accepted
+.BR no .
+Fragmented IKE messages sent by a peer are always accepted
 irrespective of the value of this option. If set to
 .BR yes ,
 and the peer supports it, larger IKE messages will be sent in fragments.
index 224a519..2110fd3 100644 (file)
@@ -1980,7 +1980,7 @@ CALLBACK(config_sn, bool,
                .send_cert = CERT_SEND_IF_ASKED,
                .version = IKE_ANY,
                .remote_port = IKEV2_UDP_PORT,
-               .fragmentation = FRAGMENTATION_NO,
+               .fragmentation = FRAGMENTATION_YES,
                .unique = UNIQUE_NO,
                .keyingtries = 1,
                .rekey_time = LFT_UNDEFINED,
index 239e260..ceeafcb 100644 (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,
                                                                "%s.flush_auth_cfg", FALSE, lib->ns),
                .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,
                                                                "%s.follow_redirects", TRUE, lib->ns),
        );
index 33924b0..3fb750e 100644 (file)
@@ -222,6 +222,7 @@ static void conn_defaults(starter_conn_t *conn)
        conn->dpd_delay             =  30; /* seconds */
        conn->dpd_timeout           = 150; /* seconds */
        conn->replay_window         = SA_REPLAY_WINDOW_DEFAULT;
+       conn->fragmentation         = FRAGMENTATION_YES;
 
        conn->left.sendcert = CERT_SEND_IF_ASKED;
        conn->right.sendcert = CERT_SEND_IF_ASKED;
index 2a4f5a7..c4d9f86 100644 (file)
@@ -139,12 +139,12 @@ connections.<conn>.dpd_timeout = 0s
        checking. For compatibility reasons, with IKEv1 a custom interval may be
        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 fragmentation (proprietary IKEv1 extension or RFC 7383 IKEv2
-       fragmentation).  Acceptable  values  are _yes_, _force_ and _no_ (the
-       default). Fragmented IKE messages sent by a peer are always accepted
+       fragmentation).  Acceptable  values  are _yes_ (the     default), _force_ and
+       _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
        supports it, oversized IKE messages will be sent in fragments.  If set  to
        _force_  (only  supported  for IKEv1) the initial IKE message will already