当前位置: 首页 > news >正文

RDMA内存保护概念---MR,PD

MR(内存区域)简介

在 RDMA 通信中,MR(Memory Region) 指由 RDMA 软件层在内存中划定的专用数据缓冲区,所有收发数据都必须通过 MR 进行传输。根据 IB 协议规范,用户申请数据内存后,必须调用 IB 框架提供的 API 注册 MR,才能授权 RDMA 网卡访问该内存区域。简而言之,MR 就是专供 RDMA 通信使用的注册内存块,一个系统可同时存在多个 MR。

MR 主要承担以下三大核心功能:

1. 虚拟地址到物理地址转换

RDMA 通信时,应用程序提供的是虚拟地址,而网卡需要通过物理地址直接访问主机内存。虽然 CPU 的 MMU 单元可通过系统页表完成地址转换,但 RDMA 网卡无法直接利用 MMU,原因在于:

  • 架构差异:不同 CPU 体系的页表格式存在兼容性问题

  • 安全限制:页表属于系统核心资源,禁止外部设备直接访问

为解决这一难题,在 MR 注册过程中,RDMA 网卡驱动会创建专用的地址映射表(MTT),将虚拟地址与物理地址的映射关系预置在网卡存储中,实现硬件级的快速地址转换。

2. 访问权限控制

为避免网卡误操作导致数据泄露或内存破坏,必须建立严格的内存访问授权机制。MR 注册时会生成两个安全密钥:

  • L_Key(本地密钥):验证本地操作权限

  • R_Key(远程密钥):授权远端节点访问权限

这两个密钥实质是唯一的数字序列,通过密钥验证确保网卡只能访问授权内存区域。在 RDMA 通信建立前,双方会通过预备通道(如 Socket 连接)交换必要的通信参数,包括目标 MR 的虚拟地址、长度和对应的 R_Key。进行远端内存访问时,本地工作队列元素(WQE)中必须填写对端 MR 的 R_Key 以通过安全验证。

3. 内存锁定防换页

操作系统在内存不足时会启动换页机制,将闲置内存暂存至硬盘。虽然换页后虚拟地址保持不变,但物理地址已发生变化,这将导致 RDMA 网卡原有的地址映射失效。

为确保地址映射稳定性,注册 MR 时会调用 pin_user_pages_fast 内核函数实施内存锁定,强制保持虚拟地址与物理地址的映射关系。被锁定的 MR 内存将常驻物理内存,直至通信结束并主动注销 MR 后才解除锁定。

PD(保护域)机制详解

PD(Protection Domain)是 RDMA 架构中的核心安全机制,通过将 QP(队列对)与 MR(内存区域)进行逻辑绑定,确保特定的 QP 只能访问授权的 MR,从而实现精细化的数据安全保护。

一、PD 的产生背景

尽管 MR 通过密钥机制(L_Key/R_Key)提供了基础的安全保护,但仍存在潜在的安全风险。考虑以下典型场景:

服务器 A 创建了两个 QP(QP0 和 QP1)和两个 MR(MR0 和 MR1)。设计目标是:

  • 服务器 C 的 QP6 仅能通过 QP1 访问 MR1

  • 服务器 B 的 QP5 仅能通过 QP0 访问 MR0

然而,如果服务器 C 通过暴力破解获取了 MR0 的 R_Key,理论上就能越权访问 MR0,导致数据泄露或篡改。

这种风险暴露了单纯依赖密钥保护的局限性:单个应用程序可能使用多个 QP 与不同远端通信,但需要对这些 QP 设置差异化的 MR 访问权限。这正是 PD 机制要解决的核心问题。

二、PD 的安全保障机制

PD 通过硬件强制的访问控制策略,实现了真正的安全隔离:

  1. 逻辑分区:应用程序可以创建多个 PD(如 PD0、PD1),在初始化阶段将 QP0 和 MR0 划归 PD0,QP1 和 MR1 划归 PD1

  2. 硬件强制:RDMA 网卡驱动程序建立并维护这些绑定关系,确保:

    • QP0 仅能访问 MR0

    • QP1 仅能访问 MR1

    • 即使 QP1 持有 MR0 的正确密钥,硬件也会拒绝其访问请求

这种设计使得 RDMA 环境能够满足企业级应用对数据隔离和安全性的严格要求,为多租户、多应用场景提供了可靠的基础安全保障。

http://www.dtcms.com/a/613681.html

相关文章:

  • 11月13号作业
  • 怎样建立网站目录结构炒股网站开发
  • 【STM32MP157 异核通信框架学习篇】(10)Linux下Remoteproc相关API (上)
  • 东莞企业建站平台中企动力 做网站 怎么样
  • 虚拟机的未来:从云计算到量子模拟
  • 前端响应式设计资源,框架+模板
  • 品牌网站建设服务网络品牌塑造
  • C语言编译系统 | 高效编译与优化技术分析
  • L2层差错控制与HARQ协议介绍
  • 4. Qt深入 线程和QObject
  • 印尼游戏出海合规指南:法律框架、税务政策与运营挑战
  • 【Java Web学习 | 第11篇】JavaScript(5)BOM
  • 打造您专属的高效DNS解析器:RethinkDNS
  • 网上书店网站建设方案策划如何建设好一个网站
  • Spring Framework 中文官方文档
  • 深度剖析 C++ vector的底层实现
  • USDe:站在稳定币、永续化与资产代币化三大趋势交汇点的新型美元
  • SpringBoot 2.x 升级到 3.x 时 Swagger 迁移完整指南
  • 网站首页浮动窗口代码忘记了wordpress登录密码忘记
  • springMVC(3)学习
  • 负载均衡API测试
  • 门户类网站费用淘宝网站边上的导航栏怎么做
  • oralce创建种子表,使用存储过程生成最大值sql,考虑并发,不考虑并发的脚本,plsql调试存储过程,java调用存储过程示例代码
  • 计算机网络技术三级知识点
  • 好用心 做网站送女友wordpress英文主题出现汉字
  • 建筑网站夜里几点维护个人网站名字大全
  • 18.HTTP协议(二)
  • 【科技补全76】新概念英语点读工具NCE-Flow、在线文件管理器copyparty 部署指北
  • 添加某些应用程序使其能够用win+r启动
  • 免费的个人网站北京工程建设监理协会网站