XDP禁止数据包流入网卡
代码实现xdp.c
#include <linux/bpf.h>
#include <bpf/bpf_helpers.h>
// 汇编的声明,接下来的一段程序产生了什么作用
SEC("xdp")
int xdp_prog_simple(struct xdp_md *ctx)
{
// 对数据包的处理是直接丢弃
return XDP_DROP;
}
// 指定程序许可证
char _license[] SEC("license") = "GPL";
编译方案
clang -O2 -target bpf -c <源代码> -o <目标文件>
加载卸载方案
加载
ip link set dev <网卡名> xdp obj test.o sec <汇编声明>
卸载
ip link set dev <网卡名> xdp off