Chinaunix首页 | 论坛 | 博客
  • 博客访问: 543748
  • 博文数量: 51
  • 博客积分: 345
  • 博客等级: 民兵
  • 技术积分: 534
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-21 12:02
个人简介

文章分类

全部博文(51)

文章存档

2023年(2)

2022年(1)

2021年(7)

2020年(10)

2019年(2)

2016年(20)

2015年(5)

2014年(1)

2011年(3)

我的朋友

分类: LINUX

2021-01-07 17:11:38

这里写一个非常简单的ebpf程序,粗暴的丢弃所有的报文。

#include

__attribute__((section("bpf_ingress"), used))
int bpf_prog(void *ctx) {
    return 2;   // drop skb
}

1.编译指令
clang -O2 -g -target bpf -c bpf_test.c -o bpf_test.o

2.加载bpf指令
tc qdisc add dev vxlan100 clsact
tc filter add dev vxlan100 ingress bpf da obj bpf_test.o sec bpf_ingress
tc filter show dev vxlan100 ingress

3.删除bpf prog指令
tc filter del dev vxlan100 ingress
tc qdisc del dev vxlan100 clsact

测试


测试环境:
在两台机器之间预先建立vxlan连接。

测试步骤:
1.右边机器ping左边窗口地址,ping success;
2.编译bpf prog;
3.加载bpf prog;
4.右边机器ping左边窗口地址,ping fail;
5.移除bpf prog;
6.右边机器ping左边窗口地址,ping success;

阅读(1753) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~