XDP 编程:从加载到应用的全方位指南
1. 验证 XDP 程序加载效果
在加载完 XDP 程序后,需要验证程序是否按预期工作。可以在外部机器上再次执行nmap命令,观察端口 8000 是否不再可达:
# nmap -sS 192.168.33.11 Starting Nmap 7.70 ( https://nmap.org ) at 2019-04-07 01:07 CEST Nmap scan report for 192.168.33.11 Host is up (0.00039s latency). Not shown: 998 closed ports PORT STATE SERVICE 22/tcp open ssh还可以尝试通过浏览器访问程序或进行任何 HTTP 请求,以 192.168.33.11 为目标的任何测试都应该失败。
如果需要将机器恢复到原始状态,可以使用以下命令分离程序并关闭设备的 XDP:
# ip link set dev enp0s8 xdp off2. 使用 BCC 加载和运行 XDP 程序
XDP 程序本质上是 BPF 程序,除了使用iproute2加载,也可以使用 BCC 进行编译、加载和运行。以下是使用 BCC 加载 XDP 程序的详细步骤:
2.1 创建内核空间程序
首先创建一个