给出了以下网络设置:
Debian斗牛眼主机(Proxmox ) -> OPNsense防火墙做NAT -> DSL调制解调器(通过PPPoE连接) ->互联网
主机无法与internet中的任何主机建立tcp连接。我试图访问不同的主机,也是一个服务器,在那里我可以捕获流量。
我捕获了一些流量使用端口镜像的DSL调制解调器交换机端口,确保我真的看到流量通过线路到互联网。
网络中使用相同拓扑的另一台debian计算机的流量看起来很好。
在这两台机器上,我执行了curl -4 http://ftp.de.debian.org/debian和curl -4 http://www.google.de,并比较了TCPSYN数据包。
他们在我看来是一样的,只是在
这些差异是预料之中的。
下面是截图,捕捉DSL调制解调器端口的通信量。捕获包含从工作主机到包308的通信量。从数据包309开始的通信量来自已损坏的主机。
我过滤了具有SYN标志集的数据包,因为这些数据包只是相关的。
来自工作主机的数据包:

来自破碎主机的数据包:

如前所述,我还从服务器端获取了流量捕获。它看上去与屏幕上可见的一模一样(数据包309,310,320,.)。
是什么原因导致互联网主机不回答SYN的SYN数据包?
发布于 2023-04-06 17:33:55
简单回答:校验和计算不正确。在wireshark中启用校验和验证可以明显地做到这一点:

OPNsense运行在Proxmox之上是虚拟化的,这是造成问题的原因。因此,我在/etc/网络/接口中禁用了NIC的一些卸载特性:
[...]
pre-up ethtool -K enp0s20f1 gro off lro off gso off
post-up ethtool -K vmbr1 gro off lro off gso off此代码段禁用一般接收卸载和大型接收卸载。这是为了防止NIC将多个TCP数据包重组为可能比MTU更大的数据包。当应该执行简单的路由时,修改数据包是个坏主意,这在许多情况下会导致连接问题。禁用通用分段偏移量可防止NIC将大数据包拆分为多个。
上面的片段必须包含tx off
pre-up ethtool -K enp0s20f1 gro off lro off gso off tx off
post-up ethtool -K vmbr1 gro off lro off gso off tx off执行软件校验和计算。
https://serverfault.com/questions/1128003
复制相似问题