ip-fragmentation

为什么 iptables 拒绝允许的数据包的第二个和后续片段?
ip-fragmentation

为什么 iptables 拒绝允许的数据包的第二个和后续片段?

我有两台主机试图建立 IPSec 连接。为此,它们必须在 UDP 端口 500 和 4500 上进行通信,因此我在两端的防火墙中都打开了它们(如相关部分所示): -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -m udp -p udp --dport 500 -j ACCEPT -A INPUT -m udp -p udp --dport 4500 -j ACCEPT #..... -A INPUT -j REJECT --reject-with icmp6-port-un...

Admin

原始表是否会收到碎片化的 IP 数据包?
ip-fragmentation

原始表是否会收到碎片化的 IP 数据包?

假设 conntrack 模块已加载(因此nf_defrag_ipv4已加载)。曾经原始表会收到碎片数据包吗?具体来说,xt_bpf像这样的 BPF 规则(通过 加载)会返回 true 吗? ldh [6] jset #0x1fff, match ret #0 match: ret #65535 我之所以问这个问题,是因为我需要优化 iptables 使用的某些 cBPF,而且碎片检查似乎是我可以摆脱的东西,因为 conntrack 的片段重组模块在原始表中的任何内容之前进行挂钩。 ...

Admin

尽管设置了“不分段”标志,转发的 TCP 流量在 Linux 上仍被重新分段
ip-fragmentation

尽管设置了“不分段”标志,转发的 TCP 流量在 Linux 上仍被重新分段

我们在同一个主机上有 2 个 VPN 服务器。这些服务器是虚拟的,并且有不同的 Linux 发行版。VPN 客户端与同一个 Amazon EC2 服务器建立 https 连接。来自 EC2 的 TCP 数据包始终设置有“不分段”标志。 尽管两个 VPN 服务器的物理接口和 tun 接口上的 MTU 都是 1500,但它们通常会从 EC2 接收更大的数据包。我不确定这是怎么可能的,但也许与 Virtio 有关。 无论如何,当 TCP 流量转发到 tun 接口时,服务器的行为会有所不同: 在“服务器 1”上,大数据包按预期被丢弃,并且 ICMP“需要分片”被发...

Admin

IPv4 碎片化和高速数据
ip-fragmentation

IPv4 碎片化和高速数据

如果这个问题之前已经回答过,请原谅我,但我无法轻易找到答案。 我的公司制造高速测量设备,每秒产生大约 0.7 千兆位的 UDP 数据。每组样本大约有 2500 字节长,这导致我们使用 IPv4 分段来发送数据。目前不使用 UDP 校验和(设置为 0)。接收端是一个相当标准的 Linux 机器(IPv4 分段重组超时设置为 30 秒,这是默认值)。考虑到我们的特定设置,我们预计会出现数据包丢失。 考虑到数据量大、IPv4 标识字段为 16 位以及数据包丢失的预期,我想知道是否存在错误重组的可能性?16 位 IPv4 标识字段的回绕时间远低于 30 秒。 这是否...

Admin

何时使用最大 IP 分片偏移?
ip-fragmentation

何时使用最大 IP 分片偏移?

IP 分片偏移量长度为 13 位。最大偏移量为 2^13-1 = 8191。 我想问一下,如果以下数据包序列可以创建超过其最大长度的总 IP 数据包,那么在什么情况下数据包需要包含最大偏移量? 假设 MTU 为 1500 字节。 44 个长度为 1480 的数据包 长度为 400 的数据包(偏移量 8140) 长度为 400 的数据包(偏移量 8190) 上述 IP 数据包总大小 = 20 + 1480 * 44 + 400 + 400 = 65940 ...

Admin

如何有选择地禁用 IP 重组?
ip-fragmentation

如何有选择地禁用 IP 重组?

下图描述了一个场景,涉及在 上聚合三个慢速通道 吞吐量WAN。快速主机WAN(@ )上的主机正在与(@ )54.239.98.8上的主机进行通信,该主机通过三个运行 Linux v4.14.151 的路由器和/防火墙通过三个慢速通道连接到:LAN192.168.0.100WANnetfilteriptables 来自快速主机到达三台路由器时,碎片化且随机化(但始终来自54.239.98.8)。我无法控制这种碎片化(公司政治,想想吧)——我怀疑碎片化是快速主机故意造成的。 问题:每个路由器都尝试重新组合碎片化的 IP 数据包,这会导致数据丢失,因为碎片...

Admin

当数据包超过 1500 个时 TCP 重新传输
ip-fragmentation

当数据包超过 1500 个时 TCP 重新传输

我目前正在尝试使用NMOS在我的网络上使用协议。这是一个 /30 网络。 我看到的问题是,当我通过网络从我的计算机向我的设备发送 http 请求时,如果数据包大小大于 1500 字节,响应将“丢失”。我之所以说“丢失”,是因为当我使用 wireshark 检测计算机上的流量时,我可以看到构成预期响应的所有 TCP 碎片数据包,但我的计算机却认为它从未收到过它们。然后,如果我让计算机待在那里,我可以看到碎片数据包反复地重新传输。 我似乎无法弄清楚为什么我的电脑没有看到完整的响应,因为在 wireshark 中我可以清楚地看到我的电脑收到了所有的 JSON ...

Admin

使用 IPTables / FirewallD 转发片段
ip-fragmentation

使用 IPTables / FirewallD 转发片段

我有一台 Linux(openSuse Leap 15.0)计算机,使用 PPoE 连接到电缆调制解调器(希望与此无关)。 编辑ppp0 接口的 mtu 为 1492,但它“绑定”到的 eth0 接口(我不明白它是如何工作的)在 ppp0/eth0(外部)上的 mtu 为 1500,并且在 eth1(内部)上具有本地网络(10.1.0.0/8)。 编辑它正在运行启用了伪装的防火墙。 我还在本地网络上运行了 named 和 dchpd,并且连接了几个 wifi 路由器、一台打印机等等。 无论如何,一切正常完美如果 MTU 设置为 1400,则不会出现问...

Admin

特定情况下 RDP 连接失败
ip-fragmentation

特定情况下 RDP 连接失败

问题 两个分支站点的 PC 或服务器与主站点的 RDSH 服务器的 RDP 连接间歇性失败,并出现以下错误: A licensing error occurred while the client was attempting to connect (Licensing timed out). Please try connecting to the remote computer again.   配置 主站点使用 ZyXEL ZyWALL USG 50,分配子网 192.168.169.0/24,并托管 RDSH 服务器 192.1...

Admin

目的地重组失败
ip-fragmentation

目的地重组失败

假设我有主机 1 和 2 连接到具有不同速度的路由器。 Host1 <--100 Mbps--> Router <--10 Mbps--> Host2 Host1 使用以下方式发送 10MB 的 UDP 数据数控命令给Host2,但是Host2重组分片数据包失败,并发送ICMP(超出生存时间/分片重组时间)。 当两端都是 100 Mbps 时,我没有看到任何故障,也没有发生碎片。 我尝试通过以下方法避免碎片化 1. Enabling PMTU on destination, router echo...

Admin

IP 片段在哪里重新组合成一个片段?
ip-fragmentation

IP 片段在哪里重新组合成一个片段?

阅读有关IP片段时发现,各种教材之间存在争议。 在书中: “片段在到达目的地的传输层之前需要重新组装。” “IPv4 的设计者认为,在路由器中重组数据报会给协议带来很大的复杂性,并会降低路由器的性能。” 在线查找于: http://www.wildpackets.com/resources/compendium/tcp_ip/ip_fragmentation “一旦数据到达路由器 2,它将按照前面描述的方式重新组装碎片,并使用新的 MTU 将重新组装的数据块传递到网络上” 有一则消息称,重组发生在网...

Admin

强制对通过 VPN 隧道的某些流量进行 IP 分段和重组
ip-fragmentation

强制对通过 VPN 隧道的某些流量进行 IP 分段和重组

有没有办法在 IP 数据包进入 tun0 之前强制对其进行分段,然后在 tun 设备的另一端强制对其进行重组? 我有一些无法控制的 IPSec 流量,它需要 1500 MTU 并且在 tun 设备上被丢弃。 我猜想可以将流量封装到 TCP 流中,然后将流重新组装为数据包 - 但由于各种原因,这肯定不是它应该的工作方式。所以我想知道是否有一种方法可以在 Linux 中的操作系统级别强制对至少一些匹配的数据包进行碎片化和重组? ...

Admin

VPN 问题:MTU 和 Don't-Fragment
ip-fragmentation

VPN 问题:MTU 和 Don't-Fragment

我正在 Ubuntu 14.04LTS 上设置 VPN,它使用 IPSEC 并为客户端执行 NAT。它基本上可以正常工作 - 我可以从客户端(Android 设备)连接到它并浏览(例如)www.google.com。 但是我无法浏览 www.bbc.co.uk。当我尝试时,我的 VPN 服务器会收到来自 www.bbc.co.uk 的响应,其中设置了不分片位,并将其丢弃。Wireshark 显示了许多这样的信息: 119 7.904053000 212.58.246.95 MY.IP.MY.IP TCP 1414 [TCP segmen...

Admin

碎片化的 DNS 数据包
ip-fragmentation

碎片化的 DNS 数据包

针对我的域名的 DNS 响应长度为 1228 字节,我需要将数据包分成 3 个数据包。为此,我已将名称服务器(机器上运行的 bind9)的 MTU 设置为 500。为了验证 MTU 是否设置为 500,我从名称服务器 ping 了 600 字节,它给出错误,说数据包太长(因为 MTU 是 500 字节)。但是当我查询名称服务器时,我得到了完整的回复,一个片段中有 1228 字节。我需要将数据包分段以运行一些测试。我使用 dig 从客户端查询我的名称服务器,如果从客户端使用 noedns 选项,我会得到设置了 DNS 截断位的回复,然后操作系统通过 TCP 发...

Admin

当数据包被转发时,netfilter 是否会重新组装 IP 片段?
ip-fragmentation

当数据包被转发时,netfilter 是否会重新组装 IP 片段?

IP 数据报应该在路径的终点处重新组装,因为片段可能来自不同的路径。我认为Netfilter需要重新组装 IP 数据报来检查整个有效负载,看它是否与给定的过滤规则匹配(我正在寻找官方来源来确认 netfilter 何时进行重新组装)。当 IP 片段被转发时,运行 netfilter 的主机不是路径的终点,netfilter 是否会等待 IP 片段并重新组装它们?如果给定的片段由于遵循不同的路径而未到达,会发生什么? ...

Admin