트래픽을 미러링하는 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