I have a really weird problem. In short, everything works fine with IPv4, ICMP & UDP for IPv6 is also fine, however, TCP for IPv6 can only "listen", but cannot establish a connection actively!
My workstation OS is Ubuntu 22.04 LTS, NIC is Intel I210. I have another working workstation with the exact same hardware connected to the same switch, so I think there should be no problem with the upstream network configuration.
Now let me elaborate on the problem I'm having. First, my NIC is able to obtain an IPv6 address and traceroute works fine, which means ICMP is working.
ifconfig
traceroute6
Then, I used iperf to test the connectivity. As you can see, UDP works fine on both directions. (The faulty host address ends with "cac5")
iperf UDP
But when testing TCP, I find that this workstation can only work as a server.
iperf TCP
I tried to capture packets on my NIC, I found that when acting as a server, bidirectional data packets can be sent and received normally, but when acting as a client, iperf sent no packets to the destination address at all. I checked my routing table, but it seems to be ok. (Since ICMP and UDP are working, routing table should be fine)
routing table
I disabled ufw and my ip6tables look like this:
ip6tables
I also tried traceroute6 -S
, which sends TCP SYN probes. No matter how far the destination address is, this command will only show one hop with a very short delay, and regardless of whether the destination port is open or not, the result will always show "open", which is obviously not normal.
traceroute6 -S
I'm really confused. Remote hosts can access this device over IPv6 without any problems, for example, I can log in through SSH, and there is no problem in sending commands and returning results, BUT, this device cannot access any external host using TCP over IPv6.
Really need an expert on this! Thanks a lot!
Update:
I found that the tap_soft interface is working normally. This is the SoftEther VPN I set up, which uses fc00:0:2ac:7af1::/64, after I connect the VPN with my phone, the workstation and the phone are able to establish a TCP connection via IPv6. So I guess maybe there is something wrong with the configurations of the NIC?
Network Manager Conf
sysctl -a:
pastebin.com/kY6vSzxU