tc 필터 작업tunnel_key가 GENEVE UDP 터널을 종료하도록 설정되지 않았습니다.

tc 필터 작업tunnel_key가 GENEVE UDP 터널을 종료하도록 설정되지 않았습니다.

트래픽을 미러링하는 AWS Gateway Load Balancer에서 GENEVE UDP 터널을 종료하고 싶습니다. 아이디어는 패킷을 원래 형태로 풀어내는 것입니다.

sudo tc qdisc add dev eth0 handle ffff: ingress
sudo tc filter add dev eth0 protocol ip parent ffff: \
    flower \
    ip_proto udp dst_port 6081 \
    geneve_opts 0108:01:020000000000000000/FFFF:FF:FF0000000000000000,0108:02:020000000000000000/FFFF:FF:FF0000000000000000,0108:03:0100000000/FFFF:FF:FF00000000 \
    action tunnel_key unset

제가 겪고 있는 문제는 뚜껑을 여는 일이 일어나지 않는 것 같다는 것입니다. 다음 tcpdump는 GENEVE 헤더(UDP 포트 6081)를 캡처합니다.

% sudo tcpdump -i any "udp port 6081 or udp port 4789" -nn

15:11:34.548567 IP 10.0.109.255.60202 > 10.0.40.230.6081: Geneve, Flags [none], vni 0x0, options [32 bytes]: IP 10.0.96.239.65428 > 10.0.102.143.4789: VXLAN, flags [I] (0x08), vni 14692826
IP 34.232.225.122.12321 > 10.0.96.239.8888: UDP, length 200

하지만 내가 기대하는 것은 포트 4789의 내부 VXLAN 헤더입니다.

IP 10.0.96.239.65428 > 10.0.102.143.4789: VXLAN, flags [I] (0x08), vni 14692826
IP 34.232.225.122.12321 > 10.0.96.239.8888: UDP, length 200

저는 4.14 커널을 사용하고 있습니다.

% uname -a
Linux ip-10-0-40-230.ec2.internal 4.14.311-233.529.amzn2.x86_64 #1 SMP Thu Mar 23 09:54:12 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

관련 정보