Iptables

linux中的IPv4標識欄位操作

  • August 23, 2018

設置標誌時Don't Fragment,IPv4 RFC 允許將標識欄位設置為0x0000.

我有一個位於防火牆後面的對等點,它阻止 RFC 並阻止任何具有此類0x0000ID 欄位的 IPv4 數據包。我的“現代”4.4.0 linux 核心生成帶有 ID 的數據包,0x0000因此我無法創建 TCP 連接。

如何禁止生成此0x0000ID 或如何使用 iptables mangle 或任何其他方式操作此欄位?

您可能指的是RFC 6864

在 4.17.x Linux 上,我可以看到 id = 0 僅在伺服器的 SYN+ACK 數據包響應接收到的連接時可靠出現,但在之後不會出現。

更新: OP 確認這也是問題中的常見情況(使用 4.4.x 核心)。

可能的最低要求:nftables v0.6。notrack不需要,conntrack 條目不關心這個 id。

對於它的價值,這是一個nftables將 id 值更改為值0xbeef的規則

$$ DF $$已設置並且 id == 0。我認為iptables根本無法做到這一點。

nft add table raw
nft 'add chain raw output {type filter hook output priority -300;}'
nft 'add rule raw output ip frag-off & 0x4000 != 0 ip id == 0 ip id set 0xbeef'    

0x4000這裡的意思DF旗幟

引用自:https://serverfault.com/questions/927464