我有一个 BPF 代码(“ classifier
”部分)。我使用它来使用 tc(流量控制器)实用程序加载到接口。我的代码更改了__skbuff
. 后来当我尝试使用 iptables 捕捉这个标记时,我发现我编辑的标记已经消失了。
代码:
__section("classifier")
int function(struct __sk_buff *skb)
{
skb->mark = 0x123;
我使用 iptable mangle 表的以下规则来查看标记是否正确写入。
# iptables -t mangle -A PREROUTING -i <my_interface> \
-m mark --mark 0x123 \
-j LOG --log-prefix "MY_PRINTS" --log-level 7
以下是我用来加载 bpf 程序的 TC 命令;
# tc qdisc add dev <myInterface> root handle 1: prio
# tc filter add dev <myInterface> parent 1: bpf obj bpf.o flowid 1:1 direct-action