InfiniBand作为高性能计算与分布式存储的主流互联技术,凭借远程直接内存访问(RDMA)实现了微秒级延迟与接近线速的吞吐。然而其设计初衷偏向性能与易用,默认网络环境通常处于信任模型之下,任何节点只要接入子网便能与其他端点建立队列对并直接读写内存。这种机制在多租户或跨安全域的集群中会带来严重隐患,因此有必要从多个维度实施安全配置。

基于分区密钥的子网隔离原理与配置
InfiniBand规范定义了分区密钥(PKey)用于逻辑划分子网内的通信权限。每个端口可加入一个或多个分区,只有双方端口的PKey集合存在交集时,才能建立有效的队列对连接。默认情况下所有端口都属于全零全成员分区,相当于没有任何隔离。通过子网管理器(SM)下发分区策略,可以将计算节点、存储节点按照业务组分配不同的PKey,从而阻止越权访问。
在具体实施时,可以使用OpenSM的分区配置文件定义规则。下面示例展示了一个简单分区配置,其中计算组使用PKey 0x8001,存储组使用0x8002,两者互不可见,管理组拥有全访问权限。
# OpenSM partition.conf 示例 Default=0x7fff,ipoib,sl=0 ComputeGroup=0x8001,indx=1,sl=1 ca1,ca2 StorageGroup=0x8002,indx=2,sl=2 ca3,ca4 AdminGroup=0x8003,indx=3,sl=0 switch1,switch2
上述配置中,indx指定了PKey在端口表中的索引,sl为服务等级,可用于配合流量优先级。需要注意,PKey本身并不加密数据,仅提供访问控制。若物理链路被窃听,明文仍可能泄露,因此它应与后续加密手段配合使用。另外,在大规模集群中建议通过自动化工具生成该文件,避免手工编辑导致端口遗漏。
子网管理器与管理接口的权限收敛
InfiniBand的管理平面高度依赖子网管理器,SM负责拓扑发现、路由计算与PKey分发。如果SM或相关的管理接口暴露给不可信节点,攻击者可篡改路由或分区策略,进而穿透隔离。因此安全配置的核心一步是收敛管理权限,仅允许指定的管理节点运行SM,并关闭交换芯片上不必要的带外管理通道。
以Mellanox/NVIDIA设备为例,可通过ibstat与sminfo确认当前SM位置,并使用厂商命令行工具将待机SM限定在主备两台服务器。同时,对于未使用的IB接口卡管理功能,应在BIOS或固件中禁用,减少被扫描到的可能性。以下命令可查看子网内SM状态:
# 查看当前子网管理器信息
sminfo -C mlx4_0 -P 1
# 输出示例
sminfo: sm lid 2 sm guid 0x0002c90300000001
act 1 prior 0 state MASTER
除了SM本身, infiniband-diags工具集中的若干查询指令也依赖管理密钥(MKey)。在生产环境应设定非零MKey,防止任意节点执行smpquery等指令枚举网络。许多安全审计报告指出,未设MKey的集群可在几分钟内被内部主机完整绘制拓扑,为后续横向移动提供便利。因此,将管理面与数据面在权限上彻底分离,是InfiniBand安全配置不可忽视的环节。
RDMA流量的加密卸载与监控实践
由于RDMA绕过内核协议栈,传统基于iptables或TLS代理的加密方式难以透明施加。当前主流方案是利用支持加密卸载的网卡(如支持IPsec或专有封装的适配器),在硬件层面对队列对数据做加解密。另一种思路是在应用层使用RSocket或UCX的安全插件,但会引入额外延迟。选择哪种方式取决于业务对延迟与合规的要求。
在监控方面,可借助perfquery与ibdump抓取特定端口的计数器与原始流量,结合SIEM系统识别异常连接模式。例如突然出现的跨分区PKey丢包计数,可能意味着配置错误或探测行为。下面的代码片段演示如何使用ibdump限定接口与数量抓包:
# 在接口mlx5_0上抓取前1000个RDMA包 ibdump -d mlx5_0 -c 1000 -w /var/log/ib/rdma.pcap # 使用tcpdump风格工具分析pcap中的GRH头
加密与监控必须配合前面的分区隔离共同运作,才能构成纵深防御。实践表明,仅做PKey隔离而缺乏流量审计的集群,在内部人员越权时难以追溯;而只做加密却不限制分区,则会让非法连接消耗合法端点的内存资源。综合来看,InfiniBand安全配置是一项涵盖控制面、管理面与数据面的系统工程,运维团队应将其纳入集群上线前的必检清单,并根据业务演变周期复审策略。
InfiniBand安全配置RDMA修改时间:2026-08-18 21:20:30