
Don't Fragment
設定標誌後,IPv4 RFC 允許將標識欄位設定為0x0000
。
我有一個位於防火牆後面的對等點,它會阻止 RFC 並阻止任何具有此類0x0000
ID 欄位的 IPv4 封包。我的「現代」4.4.0 Linux 核心產生帶有 ID 的資料包,0x0000
因此我無法建立 TCP 連線。
我如何禁止產生此0x0000
ID 或如何使用 iptables mangle 或任何其他方式操作此欄位?
答案1
您可能指的是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
旗幟。