关于IPv6 TCP连接的一个奇怪问题

关于IPv6 TCP连接的一个奇怪问题

我遇到了一个非常奇怪的问题。简而言之,IPv4 一切正常,IPv6 的 ICMP 和 UDP 也正常,但是 IPv6 的 TCP 只能“监听”,而不能主动建立连接!

我的工作站操作系统是 Ubuntu 22.04 LTS,网卡是 Intel I210。我还有另一个工作工作站,具有完全相同的硬件,连接到同一个交换机,所以我认为上游网络配置应该没有问题。

现在让我详细说明一下我遇到的问题。首先,我的网卡能够获取 IPv6 地址,并且 traceroute 工作正常,这意味着 ICMP 正在运行。

是否配置 traceroute6

然后,我使用 iperf 测试了连通性。如您所见,UDP 在两个方向上都正常工作。(错误的主机地址以“cac5”结尾)

iperf UDP

但是在测试TCP的时候发现这个工作站只能作为服务器。

防火墙

我尝试在我的网卡上捕获数据包,我发现当作为服务器时,双向数据包可以正常发送和接收,但当作为客户端时,iperf 根本没有向目标地址发送任何数据包。我检查了我的路由表,但似乎没问题。(由于 ICMP 和 UDP 正在运行,因此路由表应该没问题)

路由表

我禁用了 ufw,我的 ip6tables 如下所示:

ip6tables

我也尝试了traceroute6 -S,它发送 TCP SYN 探测。无论目标地址有多远,此命令都只会显示一跳,并且延迟非常短,并且不管目标端口是否开放,结果始终显示“开放”,这显然不正常。

traceroute6-S

我真的很困惑。远程主机可以通过 IPv6 毫无问题地访问此设备,例如,我可以通过 SSH 登录,并且发送命令和返回结果都没有问题,但是,此设备无法使用 TCP 通过 IPv6 访问任何外部主机。

确实需要这方面的专家!非常感谢!

更新:

我发现 tap_soft 接口工作正常。这是我设置的 SoftEther VPN,使用 fc00:0:2ac:7af1::/64,将 VPN 与手机连接后,工作站和手机能够通过 IPv6 建立 TCP 连接。所以我猜可能是网卡的配置有问题?

网络管理员会议

sysctl -a:

pastebin.com/kY6vSzxU

相关内容