Linux 损坏自定义 TCP 选项

Linux 损坏自定义 TCP 选项

我在 k8s/Cilium/Kind 中面临 TCP 选项的特殊问题。

bpf_lxc我使用 Cilium程序(附加到 veth 入口 tc 挂钩的 eBPF 程序)向从端点发送的 SYN 数据包添加了自定义 TCP 选项。

当数据包通过(主机 NIC)tc上的出口 eBPF 程序时eth0,TCP 选项似乎是正确的。但是,当我在实际发送数据包之前使用 Wireshark 捕获数据包时,我注意到 TCP 选项已损坏。

如果 TCP 选项的长度为 16 字节,则第 13 和 14 字节已损坏。如果 TCP 选项的长度为 20 字节,则第 17 和 18 字节会被损坏。

修改后的2个字节似乎是随机改变的。

目前,我不确定是什么原因导致了这个问题。任何意见或建议将不胜感激。

TCPOption(Unknown(45): 0x0af400c50a600065c6300050000004a40000)
TCPOption(Unknown(45): 0x0af400c50a600065c6300050000000000000)

相关内容