tc filter - カーネルとの通信中にエラーが発生しました。
Geneveプロトコルにtcフラワーフィルタを追加しようとすると、次のエラーが発生します。 % sudo tc filter add dev gnv0 protocol ip parent ffff: \ flower geneve_opts 0108:01:020000000000000000/FFFF:FF:FF0000000000000000,0108:02:020000000000000000/FFFF:FF:FF0000000000000000,0108:03:0100000000/FFFF:FF:FF00000000 \ action tunnel_key unset RTNETLINK answers: No such file or directory We have an error talking to the kernel 私はAmazon Linuxを使用しています。 % 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 トラフィックをミラーリングする AWS Gateway Load Balancer で GENEVE UDP トンネルを終了したいと思います。アイデアは、パケットを元の形式で解放することです。私もこれを試しましたが、vxlan_opts成功しませんでした。したがって、質問はフィルタよりもtcに対してより具体的なようです。 オンラインで提案されたいくつかのカーネルモジュールをロードしました(必要なのか十分なのかわかりません)。 % lsmod | grep sch sch_htb 24576 0 sch_netem 20480 0 sch_ingress 16384 1 完全な例: sudo yum install tc sudo modprobe sch_netem sudo modprobe sch_htb sudo ip link add name gnv0 type geneve dstport 6081 external sudo ip link set gnv0 up sudo tc qdisc add dev gnv0 ingress sudo tc filter add dev gnv0 protocol ip parent ffff: \ flower geneve_opts 0108:01:020000000000000000/FFFF:FF:FF0000000000000000,0108:02:020000000000000000/FFFF:FF:FF0000000000000000,0108:03:0100000000/FFFF:FF:FF00000000 \ action tunnel_key unset AL2023で試してみましたが、同様のエラーが発生しました。 sudo ip link add name gnv0 type geneve dstport 6081 external sudo ip link set gnv0 up sudo tc qdisc add dev gnv0 ingress sudo tc filter add dev gnv0 protocol ip parent ffff: \ flower geneve_opts 0108:01:020000000000000000/FFFF:FF:FF0000000000000000,0108:02:020000000000000000/FFFF:FF:FF0000000000000000,0108:03:0100000000/FFFF:FF:FF00000000 \ action tunnel_key unset Error: Failed to load TC action module. We have an error talking to the kernel