DPDK如何将不可信的用户与设备隔离?



DPDK将设备的IO映射到用户空间,例如设备的控制寄存器等。如果用户是恶意的,DPDK如何保证设备的安全?DPDK如何将用户与设备隔离?

在这种情况下DPDK如何保证设备的安全?[答]没有。DPDK像任何库一样需要访问设备的io实例来配置和接收来自设备(NIC或加密)的x-tx或dequeue-enqueue数据包

它具有UIO_library从用户空间访问的所有优点和缺点。请参阅

  1. 异步I/O
  2. 用户空间的I/O

DPDK如何将用户与设备隔离?[答案]实现相同的功能之一是使用SRIOV VF或自适应VF。其中PF(内核签名驱动程序)维护核心设备(NIC或Crypto)。所有配置请求都是从用户空间通过VF通过每个VF分配的邮箱发送的。硬件或PF驱动程序验证每个请求并返回每个请求的成功或失败。

在NIC TX的情况下,任何恶意数据包描述符都可以被注入(它将通过邮箱)路径。但是由于它运行在一个特定的队列上(VF专用队列),恶意数据包只会使分配给它的VF设备瘫痪。

建议是

  1. 在bios中启用SRIOV
  2. 使用iommu=pt, Intel使用intel_iommu=on
  3. 不使用驱动程序noiommu
  4. 创建VF或IAVF
  5. 为应用程序分配VF设备(网卡或加密)。

最新更新