NVIDIA DOCA 环境产品使用与体验报告
文章目录
- 1. 概述
- 1.1 背景
- 2. 环境配置
- 2.1 DOCA开发虚拟机
- 2.2 BlueField DPU
- 2.3 软件:
- 3. 测试试验方案
- 3.1. 场景概述
- 3.2. 环境配置
- 4. 使用体验
- 4.1 开发环境搭建
- 4.2 防火墙应用开发
- 4.3 性能测试
- 5. 问题与解决方案
- 5.1 编译错误
- 5.2 SSH连接问题
- 6. 总结
- 6.1 优点
- 6.2 挑战与建议
- 7. 结论
- 7.1. 部分实验中截图
1. 概述
使用 NVIDIA 提供的 DOCA 开发虚拟机 (VM) 进行测试。该 VM 预装了 Ubuntu 操作系统,并模拟了 BlueField DPU 的核心功能。
1.1 背景
本报告旨在总结和分享在实际开发环境中使用 NVIDIA DOCA(Data Center Infrastructure-on-a-Chip Architecture)平台的完整体验。报告基于对官方文档、示例代码以及在虚拟化环境中的实践操作,全面评估了 DOCA 在硬件加速网络功能方面的易用性、性能表现和开发流程。
2. 环境配置
2.1 DOCA开发虚拟机
- 操作系统: Ubuntu 20.04/22.04
- IP地址: 192.168.105.1
- 主要工具:
- DOCA SDK
- CMake
- VS Code with Remote-SSH extension
2.2 BlueField DPU
- 操作系统: Ubuntu OS
- IP地址: 192.168.105.101
- 硬件信息: Mellanox Technologies MT42822 BlueField-2
- 网络接口: p0, p1
2.3 软件:
- DOCA SDK 版本: 2.5.0+
- 开发工具: VS Code + Remote-SSH 插件
- 编译器: GCC
- 依赖库: CMake, libcurl, ethtool, iperf3, hping3
3. 测试试验方案
3.1. 场景概述
在 DPU 上部署一个防火墙应用,能够基于五元组(源/目的 IP、源/目的端口、协议)执行硬件加速的流量过滤。所有流量处理在 DPU 硬件上完成,不消耗主机 CPU 资源,实现零信任安全架构中的微隔离功能。
3.2. 环境配置
- DOCA 开发虚拟机: 192.168.105.1 (Ubuntu 20.04/22.04)
- BlueField DPU: 192.168.105.101 (运行 Ubuntu OS)
- 网络拓扑:
- DPU 两个物理端口(p0, p1)分别连接两个不同的子网
- 客户端1: 192.168.1.10 (连接 p0)
- 客户端2: 192.168.1.11 (连接 p0)
- 服务器: 192.168.2.100 (连接 p1)
4. 使用体验
4.1 开发环境搭建
- DOCA SDK安装: 成功安装并验证
- 编译工具链: CMake配置正确,能够成功编译DOCA应用
- 远程开发: VS Code通过Remote-SSH连接DPU,实现代码编辑和调试
4.2 防火墙应用开发
- 代码结构: 采用模块化设计,包含main.c、firewall_rules.h和firewall_rules.c
- 编译过程: 初始编译遇到问题,经过调整CMakeLists.txt后成功编译
- 运行效果: 防火墙规则能够正确加载,流量过滤功能正常工作
4.3 性能测试
- CPU使用率: 在高负载下,DPU的Arm CPU使用率保持在较低水平
- 网络性能: 流量处理达到线速性能,延迟保持在微秒级别
- 资源消耗: 有效实现了硬件卸载,显著降低了CPU资源消耗
5. 问题与解决方案
5.1 编译错误
- 问题描述: 初始编译时出现链接错误
- 解决方案:
- 检查DOCA库路径是否正确
- 确认CMakeLists.txt中的find_package(doca REQUIRED)配置正确
- 添加target_link_libraries(doca_firewall doca_flow)
5.2 SSH连接问题
- 问题描述: VS Code Remote-SSH连接超时
- 解决方案:
- 检查网络连接稳定性
- 确认DPU上的SSH服务正常运行
- 尝试使用命令行ssh直接连接进行验证
6. 总结
6.1 优点
强大的硬件加速能力:最核心的优势在于能够将网络、安全等基础设施任务从 CPU 卸载到 DPU 硬件上,显著提升系统整体效率。
成熟的开发框架:DOCA SDK 提供了完整的库、驱动和工具链,为开发者提供了一个可靠的平台。
丰富的学习资源:官方文档详尽,参考应用代码质量高,社区支持活跃,大大降低了学习成本。
6.2 挑战与建议
学习曲线:尽管有参考代码,但对于初学者而言,理解 DOCA Flow 的编程模型(如 match, actions, monitor)仍需要一定时间。
依赖物理硬件:虽然虚拟机可以用于学习,但要充分发挥 DPU 的全部潜力,仍需真实的 BlueField DPU 硬件。
VS Code 连接问题:在尝试通过 VS Code 的 Remote-SSH 插件连接 DOCA VM 时,遇到了“Connection timed out”和“Resolover error”的错误。这表明在某些网络环境下,远程开发工具可能存在兼容性问题。建议优先使用 SSH 终端或本地编辑器进行开发。
7. 结论
整体而言,DOCA平台提供了强大的硬件加速能力,能够有效实现分布式防火墙功能。开发环境稳定,编译和部署流程清晰。通过本次实践,验证了DOCA在安全领域的核心能力,为后续的深度开发奠定了基础。
7.1. 部分实验中截图
后续因为SSH无法进入服务器,部分结果无法截图,故只有一些过程图。