Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 16 Apr 2022 02:11:00 +0200
From:      tuexen@freebsd.org
To:        Florian Smeets <flo@smeets.xyz>
Cc:        Gleb Smirnoff <glebius@freebsd.org>, current@freebsd.org
Subject:   Re: IPv6 TCP: first two SYN packets to local v6 unicast addresses ignored
Message-ID:  <430FE7E6-5B68-4843-8D2D-DE5FAB7C495F@freebsd.org>
In-Reply-To: <46089B86-EF4C-4E4A-9240-51FEACE2BE3C@freebsd.org>
References:  <131c363a-7b7d-a106-5b8a-6838e7a66567@smeets.xyz> <E0584477-0F2E-454D-871C-368F14A9AF1D@freebsd.org> <9679642b-5de6-28be-a64b-07375c3efeba@smeets.xyz> <46089B86-EF4C-4E4A-9240-51FEACE2BE3C@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
> On 16. Apr 2022, at 00:05, tuexen@freebsd.org wrote:
>=20
>> On 15. Apr 2022, at 23:39, Florian Smeets <flo@smeets.xyz> wrote:
>>=20
>> On 15.04.22 21:24, tuexen@freebsd.org wrote:
>>>> On 15. Apr 2022, at 20:20, Florian Smeets <flo@smeets.xyz> wrote:
>>>>=20
>>>>=20
>>>> Hi,
>>>>=20
>>>> there seems to be an issue with local IPv6 TCP connections on main. =
I have been seeing this for a couple of months at least. pkg upgr on my =
webserver hosting the pkg repo is very slow, all other hosts can connect =
to the pkg repo just fine. So IPv6 connections from external hosts are =
not affected.
>>>>=20
>>>> I thought I must have misconfigured something, as my setup is a bit =
weird. Yesterday I noticed the same issue on a different host, turns out =
all my 14.0 hosts seem to be affected, cognet@ could also reproduce it =
on one of his systems.
>>>>=20
>>>> The service/software used does not seem to matter, I tried with =
port 22, 25, 80 and 443.
>>>>=20
>>>> ICMP and UDP don't seem to be affected. ping6 gets replies =
immediately. And UDP connections with nc -l -u / nc -u don't have any =
delay, sent data is received immediately.
>>>>=20
>>>> Testing local TCP connections show this:
>>>>=20
>>>> flo@rp64:~ $ ifconfig dwc0|grep 2003
>>>> 	inet6 2003:cf:df49:c97:4c59:ebff:fec1:463d prefixlen 64 autoconf
>>>> flo@rp64:~ $ nc -v 2003:cf:df49:c97:4c59:ebff:fec1:463d 22
>>>> [3 second delay here]
>>>> Connection to 2003:cf:df49:c97:4c59:ebff:fec1:463d 22 port =
[tcp/ssh] succeeded!
>>>> SSH-2.0-OpenSSH_8.9 FreeBSD-20220413
>>>>=20
>>=20
>>>>=20
>>>> I need help debugging this, I don't know how to analyze this =
further. I will start bisecting this, but I thought maybe someone has an =
idea.
>>> Hi Florian,
>>> I can reproduce this locally, will try to figure out what is going =
on. If you can bisect it, it would be great.
>>=20
>> Found the culprit 1817be481b8703ae86730b151a6f49cc3022930f. And =
indeed toggling net.inet6.ip6.source_address_validation makes the issue =
go away on latest main.
> Cool, thanks for providing the information. However, I don't =
understand why results in dropping the first two SYN segments (this =
should not happen)
> and why the third is accepted (they should all treated the same).
The first two packets don't have the loopback interface as its rcv =
interface, so Gleb's check for IFF_LOOPBACK fails. The second
retransmission of the SYN has the loopback interface as its rcv =
interface, so Gleb check passes.
I also do not see the problem with ICMP6, UDP or SCTP over IPv6.
Don't know what is special about TCP, maybe Gleb knows out of his =
head...

Best regards
Michael
>=20
> Best regards
> Michael
>>=20
>> Florian
>> <OpenPGP_0xEF5BA4DCD5A9F3C0.asc>
>=20
>=20




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?430FE7E6-5B68-4843-8D2D-DE5FAB7C495F>