From owner-freebsd-net@freebsd.org Thu Jan 16 13:41:59 2020 Return-Path: Delivered-To: freebsd-net@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id E42E4237823 for ; Thu, 16 Jan 2020 13:41:59 +0000 (UTC) (envelope-from bu7cher@yandex.ru) Received: from forward104j.mail.yandex.net (forward104j.mail.yandex.net [IPv6:2a02:6b8:0:801:2::107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 47z52t2HLpz41F5; Thu, 16 Jan 2020 13:41:57 +0000 (UTC) (envelope-from bu7cher@yandex.ru) Received: from mxback20j.mail.yandex.net (mxback20j.mail.yandex.net [IPv6:2a02:6b8:0:1619::114]) by forward104j.mail.yandex.net (Yandex) with ESMTP id 30E684A0408; Thu, 16 Jan 2020 16:41:54 +0300 (MSK) Received: from myt6-016ca1315a73.qloud-c.yandex.net (myt6-016ca1315a73.qloud-c.yandex.net [2a02:6b8:c12:4e0e:0:640:16c:a131]) by mxback20j.mail.yandex.net (mxback/Yandex) with ESMTP id WHxO7htc9k-fsIeS03g; Thu, 16 Jan 2020 16:41:54 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1579182114; bh=MEd59aDDkqiwGD2B0ogBe7i5cUWX+IJwP9LrSjWaYeM=; h=In-Reply-To:Cc:To:From:Subject:Date:References:Message-ID; b=QUPOCEkOy7YLAI9kh9va4jAFJSEy3n2nCwBjubFtIRIcLVLFS+X9fHe+PoekHS0bD 7X1RbZAxtEjcPzq2iusPVCnAFTyg6IcNjrFrRFAkcu50K3+3gL45ZpJVovb0lQzfpv FJX7WR84GznOZ5hw/v3c7P0A/AIrf4k3qkvsOurE= Received: by myt6-016ca1315a73.qloud-c.yandex.net (smtp/Yandex) with ESMTPSA id mZPMNicFFU-frUCs7h3; Thu, 16 Jan 2020 16:41:53 +0300 (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) (Client certificate not present) Subject: Re: IPSec transport mode, mtu, fragmentation... From: "Andrey V. Elsukov" To: Victor Sudakov , freebsd-net@freebsd.org Cc: Michael Tuexen References: <20191220152314.GA55278@admin.sibptus.ru> <4cc83b85-dd30-8c0d-330e-aa549ce98c98@yandex.ru> Openpgp: id=E6591E1B41DA1516F0C9BC0001C5EA0410C8A17A Autocrypt: addr=bu7cher@yandex.ru; prefer-encrypt=mutual; keydata= mQENBEwBF1kBCADB9sXFhBEUy8qQ4X63Y8eBatYMHGEFWN9ypS5lI3RE6qQW2EYbxNk7qUC5 21YIIS1mMFVBEfvR7J9uc7yaYgFCEb6Sce1RSO4ULN2mRKGHP3/Sl0ijZEjWHV91hY1YTHEF ZW/0GYinDf56sYpDDehaBF5wkWIo1+QK5nmj3vl0DIDCMNd7QEiWpyLVwECgLX2eOAXByT8B bCqVhJGcG6iFP7/B9Ll6uX5gb8thM9LM+ibwErDBVDGiOgvfxqidab7fdkh893IBCXa82H9N CNwnEtcgzh+BSKK5BgvPohFMgRwjti37TSxwLu63QejRGbZWSz3OK3jMOoF63tCgn7FvABEB AAG0JUFuZHJleSBWLiBFbHN1a292IDxidTdjaGVyQHlhbmRleC5ydT6JATgEEwECACIFAkwB F1kCGwMGCwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEAHF6gQQyKF6qmYIAI6ekfm1VA4T vqankI1ISE6ku4jV7UlpIQlEbE7/8n3Zd6teJ+pGOQhN5qk8QE7utdPdbktAzi+x7LIJVzUw 4TywZLXGrkP7VKYkfg6oyCGyzITghefQeJtr2TN4hYCkzPWpylkue8MtmqfZv/6royqwTbN+ +E09FQNvTgRUYJYTeQ1qOsxNRycwvw3dr2rOfuxShbzaHBB1pBIjGrMg8fC5pd65ACH5zuFV A0CoTNGMDrEZSfBkTW604UUHFFXeCoC3dwDZRKOWJ3GmMXns65Ai5YkA63BSHEE1Qle3VBhd cG1w0CB5FBV3pB27UVnf0jEbysrDqW4qN7XMRFSWNAy5AQ0ETAEXWQEIAJ2p6l9LBoqdH/0J PEFDY2t2gTvAuzz+8zs3R03dFuHcNbOwjvWCG0aOmVpAzkRa8egn5JB4sZaFUtKPYJEQ1Iu+ LUBwgvtXf4vWpzC67zs2dDuiW4LamH5p6xkTD61aHR7mCB3bg2TUjrDWn2Jt44cvoYxj3dz4 S49U1rc9ZPgD5axCNv45j72tggWlZvpefThP7xT1OlNTUqye2gAwQravXpZkl5JG4eOqJVIU X316iE3qso0iXRUtO7OseBf0PiVmk+wCahdreHOeOxK5jMhYkPKVn7z1sZiB7W2H2TojbmcK HZC22sz7Z/H36Lhg1+/RCnGzdEcjGc8oFHXHCxUAEQEAAYkBHwQYAQIACQUCTAEXWQIbDAAK CRABxeoEEMihegkYCAC3ivGYNe2taNm/4Nx5GPdzuaAJGKWksV+w9mo7dQvU+NmI2az5w8vw 98OmX7G0OV9snxMW+6cyNqBrVFTu33VVNzz9pnqNCHxGvj5dL5ltP160JV2zw2bUwJBYsgYQ WfyJJIM7l3gv5ZS3DGqaGIm9gOK1ANxfrR5PgPzvI9VxDhlr2juEVMZYAqPLEJe+SSxbwLoz BcFCNdDAyXcaAzXsx/E02YWm1hIWNRxanAe7Vlg7OL+gvLpdtrYCMg28PNqKNyrQ87LQ49O9 50IIZDOtNFeR0FGucjcLPdS9PiEqCoH7/waJxWp6ydJ+g4OYRBYNM0EmMgy1N85JJrV1mi5i Message-ID: Date: Thu, 16 Jan 2020 16:39:38 +0300 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: <4cc83b85-dd30-8c0d-330e-aa549ce98c98@yandex.ru> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="UdI63y4JQTEXyNrorslBaTkHKDLjaY5ti" X-Rspamd-Queue-Id: 47z52t2HLpz41F5 X-Spamd-Bar: ----- Authentication-Results: mx1.freebsd.org; dkim=pass header.d=yandex.ru header.s=mail header.b=QUPOCEkO; dmarc=pass (policy=none) header.from=yandex.ru; spf=pass (mx1.freebsd.org: domain of bu7cher@yandex.ru designates 2a02:6b8:0:801:2::107 as permitted sender) smtp.mailfrom=bu7cher@yandex.ru X-Spamd-Result: default: False [-5.10 / 15.00]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; FREEMAIL_FROM(0.00)[yandex.ru]; R_SPF_ALLOW(-0.20)[+ip6:2a02:6b8:0::/52]; HAS_ATTACHMENT(0.00)[]; RCVD_COUNT_THREE(0.00)[4]; DKIM_TRACE(0.00)[yandex.ru:+]; DMARC_POLICY_ALLOW(-0.50)[yandex.ru,none]; SIGNED_PGP(-2.00)[]; FROM_EQ_ENVFROM(0.00)[]; IP_SCORE(0.00)[ip: (-9.62), ipnet: 2a02:6b8::/32(-4.72), asn: 13238(-3.81), country: RU(0.01)]; MIME_TRACE(0.00)[0:+,1:+,2:+,3:~]; FREEMAIL_ENVFROM(0.00)[yandex.ru]; ASN(0.00)[asn:13238, ipnet:2a02:6b8::/32, country:RU]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[yandex.ru.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-1.00)[-1.000,0]; R_DKIM_ALLOW(-0.20)[yandex.ru:s=mail]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; NEURAL_HAM_LONG(-1.00)[-1.000,0]; MIME_GOOD(-0.20)[multipart/signed,multipart/mixed,text/plain]; RCVD_TLS_LAST(0.00)[]; IP_SCORE_FREEMAIL(0.00)[]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[7.0.1.0.0.0.0.0.0.0.0.0.2.0.0.0.1.0.8.0.0.0.0.0.8.b.6.0.2.0.a.2.list.dnswl.org : 127.0.5.0] X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 16 Jan 2020 13:42:00 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --UdI63y4JQTEXyNrorslBaTkHKDLjaY5ti Content-Type: multipart/mixed; boundary="lxdILHK8pmzGhibobjOpuOG0LiMgiYaAh"; protected-headers="v1" From: "Andrey V. Elsukov" To: Victor Sudakov , freebsd-net@freebsd.org Cc: Michael Tuexen Message-ID: Subject: Re: IPSec transport mode, mtu, fragmentation... References: <20191220152314.GA55278@admin.sibptus.ru> <4cc83b85-dd30-8c0d-330e-aa549ce98c98@yandex.ru> In-Reply-To: <4cc83b85-dd30-8c0d-330e-aa549ce98c98@yandex.ru> --lxdILHK8pmzGhibobjOpuOG0LiMgiYaAh Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 23.12.2019 15:00, Andrey V. Elsukov wrote: > On 20.12.2019 18:23, Victor Sudakov wrote: >> Dear Colleagues, >> >> I've set up IPSec in transport mode between two regular FreeBSD hosts,= >> for testing. Now TCP sessions between those hosts don't work normally >> any more. For example, scp is stalled almost immediately after startin= g >> a file transfer, and so is interactive ssh eventually. >> >> I feel that the problem is somehow related to MTU, MSS and fragmentati= on >> of ESP packets, because: >> >> 1. When IPSec is disabled, I can "ping -s1472 -D" the remote host all >> right.=20 >> >> 2. When IPSec is enabled, the maximum packet size I've been able to se= nd >> through is "ping -s1414 -D". ("ping -s1415 -D host-b" already disappea= rs >> in the void). >=20 > I think the silence from ping is due to IPsec works asynchronously. > I.e. when application sends data to the stack, it receives good feedbac= k > and thinks that data was send successful then it waits for reply. > But IPsec consumes the data and then encrypted data will be send from > crypto thread via callback. And now they can not be fragmented due to > IP_DF bit, but there are no app waiting for this error code. >=20 > Similar problem is with TCP. Probably we can try to send PRC_MSGSIZE > notify when EMSGSIZE is returned from ip_output(). At least for TCP. Hi, I prepared the PoC patch that should fix the problem with TCP and transport mode IPsec. But I have not free time currently to properly test and debug it. It is only compile-tested. But If you want, you can try :) Currently only IPv4 support is implemented. https://people.freebsd.org/~ae/ipsec_transport_mode_ctlinput.diff --=20 WBR, Andrey V. Elsukov --lxdILHK8pmzGhibobjOpuOG0LiMgiYaAh-- --UdI63y4JQTEXyNrorslBaTkHKDLjaY5ti Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/ iQEzBAEBCAAdFiEE5lkeG0HaFRbwybwAAcXqBBDIoXoFAl4gZ5oACgkQAcXqBBDI oXoW4Af8CBfDEcD9xj6PJ7etRJwiQiTjI5j5SD8NhSTwxZpRLUsIN3V9FCeeivcM QrYh32Gtgu/QijHQaTZlLo6kdRpfXHDzG6GDXXW3MI1y/lANlwAz7zfMTKB/fgjk XoOE/oho35dVFS8xKFNfoAXFiEGN9AtpAp75oOFvze8dlVvxS5CnxSZ5R3XHWBnw IbqltrZxJguCRFcdyazchAcHNzgLlL7WOzXmlCkMS1UhHbgVv5qWxJacbBu1scg6 loIccnu0PhEgxEqhxgq19ruF+nsgHdHhVTNnqdia6egmHEHoyzHhMd5e7jnC+cj2 TuOM+QCdbCs2bbhzvE63OEqH0m2j+w== =UuVz -----END PGP SIGNATURE----- --UdI63y4JQTEXyNrorslBaTkHKDLjaY5ti--