GENI技术体系详解:从概念到工具的全方位剖析
立即解锁
发布时间: 2025-08-27 00:01:05 阅读量: 3 订阅数: 12 


GENI:下一代互联网实验平台
# GENI 技术体系详解:从概念到工具的全方位剖析
## 1. GENI 基本概念
### 1.1 聚合管理器与清算所
聚合管理器(Aggregate Manager)可隶属于多个清算所(Clearinghouses),从而接受来自不同联盟用户的请求。像 GENI、Emulab、Fed4Fire 等项目都有各自的清算所服务,许多聚合管理器会选择成为一个或多个联盟的成员。
### 1.2 用户证书与授权
在 GENI 中,为用户提供证书并非自动流程,而是需人工审核,以确保用户身份真实。GENI 受美国国家科学基金会委托,支持网络和计算机科学研究与教育。它接受来自参与 InCommon 联盟的学术机构用户的请求,并会核实请求者身份、所属学术机构及研究项目情况。
授权问题兼具分布式和集中式特点。清算所提供名为凭证(Credentials)的签名声明,聚合管理器可用于授权决策。GENI 支持两种特定类型的凭证:
- **SFA 凭证**:在特定上下文(通常是切片)中授予用户特权或角色,属于基于角色的访问控制(RBAC),符合 SFA 格式。
- **ABAC 凭证**:声明用户属性,支持基于属性的访问控制,符合标准 ABAC 格式。
### 1.3 关键概念定义
|概念|定义|
|----|----|
|聚合(Aggregate)|代表一组资源及资源提供者的利益和政策,通过 GENI 聚合管理器(AM)API 提供资源分配、删除、配置等服务。|
|权威机构(Authority)|清算所服务,生成受联盟聚合器信任的声明(通常是签名 XML 文档),如切片权威机构和成员权威机构。|
|成员(Member)|注册的 GENI 用户,在成员权威机构分配有证书、UUID 和 URN。|
|薄片(Sliver)|聚合器通过 AM API 调用为请求者提供的资源或资源集,可能是物理资源、虚拟化资源或两者组合。|
|切片(Slice)|一组薄片的集合,是资源请求的执行单位,兼具会计和隔离机制。|
|项目(Project)|为特定目的对切片进行分组,由负责人管理,所有切片与共同的研究或教育目标相关。|
## 2. GENI 服务
### 2.1 联盟 API
联盟 API 用于定义联盟服务,所有调用均为 XMLRPC/SSL 形式,需调用成员的私钥和证书。主要服务及 API 如下:
#### 2.1.1 服务注册表(SR)
|方法|参数|描述|
|----|----|----|
|get_version|无|返回 SR API 版本,包括扩展和支持的对象模型。|
|lookup_member_authorities|Options:指定要匹配的成员权威机构的查询|返回符合匹配和过滤条件的成员权威机构列表。|
|lookup_slice_authorities|Options:指定要匹配的切片权威机构的查询|返回符合匹配和过滤条件的切片权威机构列表。|
|lookup_aggregates|Options:指定要匹配的聚合管理器的查询|返回符合匹配和过滤条件的聚合管理器列表。|
|get_trust_roots|无|返回与该清算所关联的联盟中权威机构和聚合器信任的根列表。|
#### 2.1.2 成员权威机构(MA)
MA 提供创建、修改和查询注册用户信息的服务,其 API 如下:
|方法|参数|描述|
|----|----|----|
|get_version|无|返回 MA API 版本,包括扩展和支持的对象模型。|
|create_member|Options:成员详细信息(如电子邮件、姓名等)|使用给定详细信息创建新成员。|
|update_member_info|Member_urn, Options|更新成员相关信息。|
|lookup_member_info|Options|查询成员信息,成员及具体细节受授权策略严格控制。|
|get_credentials|无|获取代表 MA 对成员角色和权利的理解的凭证,独立于切片上下文。|
|create_key|Options|为给定成员创建或上传 SSH 密钥对。|
|delete_key|Key_id|从成员中删除给定的 SSH 密钥对。|
|update_key|Key_id, Options|修改给定成员的 SSH 密钥对信息。|
|lookup_keys|Options|查询符合给定查询条件的 SSH 密钥对信息。|
|create_certificate|Options:是否提供 CSR|创建 X.509 证书(可选是否提供私钥)。|
|add_member_privilege|Member_uid, privilege|为给定成员添加特权(如 LEAD、ADMIN)。|
|revoke_member_privilege|Member_uid, privilege|从给定成员中撤销特权。|
|add_member_attribute|Member_urn, attribute_name, attribute_value|为给定用户添加属性。|
|remove_member_attribute|Member_urn, attribute_name|从给定用户中删除属性。|
#### 2.1.3 切片权威机构(SA)
SA 提供创建、修改和查询切片及项目信息的服务,其 API 如下:
|方法|参数|描述|
|----|----|----|
|get_version|无|返回 SA API 版本,包括扩展和支持的对象模型。|
|create_slice|Credentials, Options|在给定项目中创建新切片。|
|update_slice|Slice urn, credentials, Options|使用选项中指定的新详细信息更新给定切片。|
|get_credentials|Slice_urn, credentials|获取代表 SA 对成员在切片上下文中角色和权利的理解的凭证。|
|modify_slice_membership|Slice_urn, credentials, options|修改切片中成员的成员资格/角色(添加、更改、删除)。|
|lookup_slice_members|Slice_urn|
0
0
复制全文
相关推荐










