Re: IPv6 TCP: first two SYN packets to local v6 unicast addresses ignored

From: Michael Butler <imb_at_protected-networks.net>
Date: Fri, 15 Apr 2022 22:11:13 UTC
On 4/15/22 17:39, Florian Smeets wrote:
> On 15.04.22 21:24, tuexen@freebsd.org wrote:
>>> On 15. Apr 2022, at 20:20, Florian Smeets <flo@smeets.xyz> wrote:
>>>
>>>
>>> Hi,
>>>
>>> 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.
>>>
>>> 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.
>>>
>>> The service/software used does not seem to matter, I tried with port 
>>> 22, 25, 80 and 443.
>>>
>>> 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.
>>>
>>> Testing local TCP connections show this:
>>>
>>> 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
>>>
> 
>>>
>>> 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.
> 
> Found the culprit 1817be481b8703ae86730b151a6f49cc3022930f. And indeed 
> toggling net.inet6.ip6.source_address_validation makes the issue go away 
> on latest main.

I found this commit and the ipv4 analog also cause packets between 
non-VNET jails on the same host and to the host itself to be dropped :-(

	Michael