2. Marvell DPU硬件架构解析
Marvell OCTEON系列DPU(数据处理器)之所以能承担安全隔离与基础设施卸载任务,根本原因在于其硬件架构并非"通用CPU加网卡"的简单叠加,而是一套围绕"多核并行处理+专用加速+独立内存域+标准PCIe呈现"构建的异构计算平台。理解这套架构,是判断它能否把控制面、数据面、安全域真正隔离开来的前提。本节以OCTEON TX2与CN10K两代产品为主线,拆解处理器核、网络接口、加速引擎、内存子系统与PCIe拓扑五个部分,并说明每一部分对安全隔离的具体支撑方式。
一、处理器核:OCTEON TX2与CN10K的核群组织
OCTEON TX2(如CN96xx、CN98xx)采用ARMv8.2-A 64位核心,典型配置从8核到24核不等,核心按"核群(core group)"组织,每个核群共享L2缓存,核群之间通过一致性互连(CCPI/CCN)连接。CN10K(如CN106xx、CN103xx)进一步演进,核心数量可达36核以上,并强化了每核的乱序执行能力与向量处理能力,同时引入更细粒度的功耗与频率域控制。
对安全隔离而言,核群结构提供了天然的"物理分区"基础:可以把控制面(管理、配置、日志)固定在一组核上,把数据面(报文转发、加解密)绑定到另一组核,把安全审计或第三方VNF再放到第三组核。由于不同核群拥有独立的L2和可分配的L3 slice,一个域内的缓存污染或侧信道压力不容易直接穿透到另一个域。配合ARM的异常等级(EL0/EL1/EL2/EL3)与TrustZone,还可以在同一颗芯片内划分出安全世界与普通世界,让密钥管理、固件校验等敏感操作运行在隔离的执行环境中。
二、网络接口:从MAC到可编程包处理
OCTEON TX2/CN10K集成了多路以太网MAC(常见为100G/50G/25G/10G组合),并配套Packet Input/Output单元、调度器、流量管理器和可编程的包解析引擎。报文进入MAC后,由硬件完成初步解析、分类和队列分配,再交由指定核群处理。CN10K还支持更灵活的端口聚合与精确时间戳,便于做带内安全策略和流量镜像。
安全隔离在这里体现为"入口即分流":可以在硬件层按端口、VLAN、五元组或自定义标签把流量导向不同的核群和队列,使加密隧道流量、管理流量、审计镜像流量在进入软件之前就已经物理分离。即使某个数据面核被恶意流量打满,管理面核仍能通过独立队列获得CPU与缓存资源,保证带外管理通道可用。
三、加速引擎:把安全运算从通用核上卸下来
这是DPU区别于普通服务器网卡的关键。OCTEON TX2/CN10K内置了多类加速单元:
- 加解密引擎:支持AES-GCM、AES-CBC、SHA、HMAC、RSA/ECC公钥运算,可对IPsec、MACsec、TLS记录层做线速处理;
- 压缩/解压引擎:用于存储卸载与日志压缩;
- 正则匹配与DPI引擎:用于入侵检测、URL过滤等安全策略匹配;
- RAID与DMA引擎:承担存储与数据搬运,减少核的介入。
加速引擎的价值不只是性能。把密钥运算放进专用硬件,意味着密钥材料不必进入通用核的寄存器与缓存,降低了被内存抓取或侧信道攻击的风险;同时,加速引擎可按队列或VF分配给不同安全域,实现"一个域一套密钥上下文",域间互不可见。
四、内存子系统:独立域与带宽保障
OCTEON TX2/CN10K支持DDR4/DDR5多通道内存控制器,并配有片上缓存层级(L1/L2/L3)与IOMMU/SMMU。内存子系统对安全隔离的支撑体现在三点:一是通过SMMU对DMA访问做地址翻译与权限检查,防止某个加速引擎或VF越权读写其他域的内存;二是通过缓存与内存控制器的分区(如L3 slice、内存通道绑定),让不同安全域获得可预期的带宽,避免"吵闹邻居"拖垮关键业务;三是支持内存加密与ECC,保护静态数据完整性。
五、PCIe拓扑:DPU如何"呈现"给主机
DPU通常以PCIe Endpoint或Root Complex组合的形式接入服务器。OCTEON TX2/CN10K提供多路PCIe Gen4/Gen5控制器,可配置为EP模式向主机暴露多个物理功能(PF)与虚拟功能(VF),也可作为RC连接下游设备。SR-IOV与MR-IOV让一台主机或虚拟机看到的是独立的VF,每个VF拥有自己的队列、中断和地址空间。
这正是安全隔离的落点:主机侧的不同租户或不同业务,各自绑定一个VF,DPU内部再把VF映射到特定核群、加速引擎队列和内存域。主机即使被攻破,也只能影响自己那个VF对应的资源,无法直接触达DPU的管理面或其他租户的数据面。管理面则通过独立的PF或带外通道(如BMC、独立管理口)与数据面隔离。
六、五部分如何协同支撑安全隔离
把上述五部分串起来看,安全隔离不是某一个模块单独完成的,而是一条从入口到出口的完整链路。以一台运行多租户安全网关的服务器为例:主机侧租户A绑定VF1,租户B绑定VF2,管理面走PF0。报文从100G端口进入后,硬件按VLAN和五元组把租户A的流量送入核群0的队列,租户B的送入核群1的队列。核群0调用AES队列0完成IPsec解密,核群1调用AES队列1完成另一套密钥的解密,两套密钥上下文在加速引擎内部互不可见。解密后的数据通过SMMU翻译写入各自的内存域,L3 slice和内存通道按域分配,保证租户A的突发流量不会挤占租户B的带宽。管理面的PF0拥有独立核群和独立内存,即使数据面被打满,管理员仍能通过带外通道登录并下发策略。
需要特别注意的是,这套隔离能力依赖正确的配置才能生效。SMMU的stream ID与VF的对应关系、加速引擎队列与核群的绑定、内存域的划分,都需要在固件和驱动层显式设置。如果只启用SR-IOV而忽略SMMU映射,VF之间仍可能通过DMA越权访问;如果加速队列未按域隔离,密钥上下文可能被其他域复用。因此在实际部署中,应把"VF—核群—加速队列—内存域—SMMU stream"作为一组绑定关系来验证,而不是只看单个模块是否开启。