MTU mismatch with 7.08 and "Unknown DTLS packet"
Chaskiel Grundman
cgrundman at gmail.com
Thu Jan 4 13:41:29 PST 2018
The 1300 byte packets come from the remote side. They are split by the
gateway into a 1290 byte chunk and a 10 byte chunk and are sent in 2
DTLS records.
openconnect --mtu has no effect. openconnect still reduces the mtu to
1290 because gnutls will not let it encode a record larger than 1290
bytes when doing the first DPD, as shown in the log
The code surrounding "Failed to write to SSL socket: " is:
static int _openconnect_gnutls_write(gnutls_session_t ses, int fd,
struct openconnect_info *vpninfo, char *buf, size_t len)
{
size_t orig_len = len;
while (len) {
int done = gnutls_record_send(ses, buf, len);
if (done > 0)
len -= done;
else if (done == GNUTLS_E_AGAIN || done ==
GNUTLS_E_INTERRUPTED) {
...
} else {
vpn_progress(vpninfo, PRG_ERR, _("Failed to
write to SSL socket: %s\n"),
gnutls_strerror(done));
https://www.gnutls.org/manual/html_node/Data-transfer-and-termination.html
says that gnutls_record_send will return EMSGSIZE "if the send data
exceed the data MTU value - as returned by gnutls_dtls_get_data_mtu()"
More information about the openconnect-devel
mailing list