Linux はカスタム TCP オプションを中断します。

Linux はカスタム TCP オプションを中断します。

k8s/Cilium/Kind の TCP オプションに特別な問題があります。

bpf_lxc私はCiliumプログラム(veth ingress tcフックに接続されたeBPFプログラム)を使用して、エンドポイントから送信されたSYNパケットにカスタムTCPオプションを追加しました。

パケットが(ホストNIC)tcの送信eBPFプログラムを通過すると、eth0TCPオプションが正しいように見えます。しかし、実際にパケットを送信する前にWiresharkを使用してパケットをキャプチャしたときにTCPオプションが破損していることがわかりました。

TCPオプションの長さが16バイトの場合、バイト13と14は破損します。 TCPオプションの長さが20バイトの場合、バイト17と18は破損します。

修正された2バイトはランダムに変更されたようです。

現在、この問題の原因が何であるかよくわかりません。どんな意見や提案でも大変感謝いたします。

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

関連情報