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)

관련 정보