BMC_IPMI_v2.0_消息接口_Channel

目录

一、Channel Model通道模型

二、Channel Numbers

三、 Channel Protocol Type通道协议类型

四、Channel Medium Type通道介质

五、Channel Access Modes通道访问模式

七、Logical Channels

八、 Channel Privilege Levels

九、Users & Password Support用户&密码支持

9.1‘Anonymous Login’ Convention匿名登陆约定

9.2、Anonymous Login Status

十、系统接口信息

10.1BMC通道和消息队列

10.2事件消息缓冲区


  1. 通信接口的共同特性*:本节讨论了BMC与系统软件之间通信接口的一般特点。*
  2. 系统接口实现*:BMC有三种指定的系统接口实现方式:SMIC(Server Management Interface Chip)、KCS(Keyboard Controller Style)和BT(Block Transfer)。这些接口允许系统软件通过不同的方法与BMC进行通信。*
  3. 其他通信接口*:除了上述三种系统接口,BMC还可以通过其他接口进行通信,例如IPMB(Intelligent Platform Management Bus)、ICMB(Intelligent Chassis Management Bus)、LAN(Local Area Network,局域网)和串行/调制解调器接口。*

一、Channel Model通道模型

  1. 通道模型IPMI使用通道模型来指导BMC(基板管理控制器)内部不同接口之间的通信。通道是识别消息接口介质的手段,并且用于配置与该接口相关联的用户信息和密码、消息认证、访问模式和权限限制。
  2. 通道的作用
    • 识别通信介质:每个通道都关联一个特定的通信介质,如LAN、ICMB等。
    • 配置用户信息和密码:通道允许为每个接口配置不同的用户名和密码。
    • 消息认证:通道可以配置消息认证机制,以确保通信的安全性。
    • 访问模式和权限限制:通道可以设置访问模式和定义用户或软件的权限限制。
  3. 配置参数:每个通道都有自己的配置参数集,用于用户信息和通道权限限制。这允许在不同的通道上使用不同的用户名和密码,以及不同级别和类型的认证。
  4. 独立启用/禁用:IPMI消息和警报可以针对每个通道独立地启用或禁用。
  5. 共享命令:通道共享与认证、访问和配置相关的命令。这些命令与通信介质的类型无关,这减少了软件需要处理的介质特定信息量,并简化了例如在不同介质之间桥接IPMI消息等任务。
  6. 简化任务:由于命令与通信介质无关,因此软件在处理不同通信介质时可以更加简化,不需要为每种介质编写特定的代码。
  7. 灵活性和安全性:通道模型提供了灵活性,允许根据不同的需求和安全要求配置不同的通信接口。同时,它也强化了安全性,通过消息认证和权限管理确保只有授权的用户和软件能够访问BMC。

二、Channel Numbers

通道号

  1. 通道编号:每个接口都有一个通道编号,这个编号用于配置通道和在不同通道之间路由消息。
  2. 主要IPMB的固定通道编号:只有主要IPMB(Intelligent Platform Management Bus)和系统接口的通道编号是固定的。其他通道编号的分配可以根据具体平台的不同而变化。
  3. 通道编号的分配
    • 0:主IPMB通道。通道0被分配用于与主IPMB通信。IPMB协议用于IPMI消息。
    • 1-Bh:实现特定。通道1到7可以被分配给不同类型的通信介质和协议,用于IPMI消息(例如IPMB、LAN、ICMB等)。
    • Ch-Dh:保留。这些通道编号被保留,不用于分配。
    • Eh:当前接口。值Eh用于标识当前接收命令的通道。例如,如果软件想知道它当前正在通过哪个通道通信,可以通过对通道E发出“获取通道信息”命令来找出。
    • Fh:系统接口。通道‘F’被分配用于将消息路由到系统接口。
  4. 获取通道信息:软件使用“获取通道信息”命令来确定在给定平台上可用的通道类型以及使用的通道编号分配。
  5. 通道E的特殊用途:通道E(Eh)的特殊用途是标识当前接口,这有助于软件确定其正在通信的通道,从而进行适当的消息路由和处理。

三、 Channel Protocol Type通道协议类型

  1. 通道协议类型:用于传输IPMI消息的协议是通过一个5位的通道协议类型编号来识别的。现在使用“通道介质类型编号”来明确指示媒体的类别。这两个值都在“获取通道信息”命令中使用。
  2. 通道介质类型与通道协议类型一起使用,以明确通道使用的媒体类别。
  3. 获取通道信息命令:使用此命令可以获取有关通道的协议类型和介质类型的信息。
  4. 传感器数据记录14h:BMC消息通道信息已被“获取通道信息”命令替代。新的实现应使用“获取通道信息”命令。
  5. 通道协议类型编号表:列出了不同的通道协议类型编号及其名称和描述。例如:
    • 00h:保留,未分配。
    • 01h:IPMB-1.0,用于IPMB、串行/调制解调器基本模式和LAN。
    • 02h:ICMB-1.0,ICMB版本1.0,参见ICMB接口部分。
    • 04h:IPMI-SMBus,IPMI在PCI-SMBus/SMBus 1.x - 2.x上的实现。
    • 05h:KCS,KCS系统接口格式。
    • 06h:SMIC,SMIC系统接口格式。
    • 07h:BT-10,BT系统接口格式,IPMI v1.0。
    • 08h:BT-15,BT系统接口格式,IPMI v1.5。
    • 09h:TMode,终端模式。
    • 1Ch-1Fh:OEM协议1到4。
  6. IPMI格式与SMBus规范:IPMI格式故意与SMBus规范协议不兼容,以便管理控制器可以明确区分IPMI消息和SMBus事务。这使得管理控制器可以同时支持SMBus和IPMI协议,而不必担心它们之间会有重叠。PEC(数据包错误代码)是一个根据SMBus 2.0规范计算的8位CRC。这种格式使得使用相同的硬件或固件例程来检查IPMI和SMBus消息的数据完整性变得简单。
  7. 网络功能:某些网络功能(如OEM/组)需要在消息的<data>部分内增加额外的标准字段。
  8. 保留值:除了上述列出的协议类型外,其他值均为保留,未来可能会被分配给新的协议或介质类型。

四、Channel Medium Type通道介质

  1. 通道介质类型:通道介质类型是一个7位的值,用于标识用于通道的媒体的通用类别。
  2. 通道介质类型编号表:提供了不同的通道介质类型编号及其描述。例如:
    • 0:保留,未分配。
    • 1:IPMB(I2C),使用I2C协议的智能平台管理总线。
    • 2:ICMB v1.0,版本1.0的智能机箱管理总线。
    • 3:ICMB v0.9,版本0.9的智能机箱管理总线。
    • 4:802.3 LAN,以太网,使用IEEE 802.3标准。
    • 5:异步串行/调制解调器(RS-232),使用RS-232标准的串行通信。
    • 6:其他LAN,不属于802.3标准的局域网类型。
    • 7:PCI SMBus,通过PCI总线实现的SMBus。
    • 8:SMBus v1.0/1.1,版本1.0或1.1的系统管理总线。
    • 9:SMBus v2.0,版本2.0的系统管理总线。
    • Ah:为USB 1.x保留。
    • Bh:为USB 2.x保留。
    • Ch:系统接口(KCS、SMIC或BT),用于连接到系统管理控制器的接口。
    • 60h-7Fh:OEM,原始设备制造商特定的通道介质类型。
  3. OEM特定值:范围60h-7Fh的值被保留用于OEM特定的通道介质类型,允许原始设备制造商定义自己的通道介质类型。
  4. 通道介质类型的用途:通过识别通道介质类型,软件可以确定如何与通道交互,包括消息的格式、传输方式和可能需要的特定配置。
  5. 与通道协议类型的区别:通道介质类型与通道协议类型不同。通道协议类型关注于消息的传输协议,而通道介质类型关注于物理或逻辑的传输介质。

五、Channel Access Modes通道访问模式

  1. 通道访问模式:会话基础的通道可以配置为仅在系统处于某些特定状态时提供IPMI消息访问权限。这允许系统用户配置不同级别的安全性和远程可访问功能。
  2. 访问模式的配置:通道访问模式使用“设置通道访问”命令进行配置。该命令还用于启用或禁用整个通道的警报。
  3. 支持的访问模式:每种实现支持的访问模式是特定的。大多数实现预计会支持“禁用”和“始终可用”,而串行/调制解调器通道还可能支持“共享”访问模式。
  4. 通道访问模式表
    • 仅在预引导时可用(Pre-boot Only)
      • 通道仅在机器关闭电源和在POST(启动自检)期间直到启动过程开始时才可用。这主要用于串行端口共享,以确保BMC(基板管理控制器)在操作系统运行时不控制串行端口。
      • 如果启用了串行/调制解调器通道的警报,BMC将在需要时控制端口/通道以传递警报。
      • LAN通道通常不允许设置“仅在预引导时可用”模式。如果提供,BIOS应在POST结束时(启动开始)通过“设置通道访问”命令将通道设置为“禁用”。
    • 始终可用(Always Available)
      • 通道专用于与BMC通信,并在所有系统状态(关闭电源、开启电源、预引导、睡眠、运行时等)中都可用。对于IPMI LAN通道,这意味着RMCP(远程管理控制协议)数据包由BMC处理。
      • 对于支持串行端口共享的串行/调制解调器通道,端口仍可切换到系统,但BMC将始终“接听电话”并响应激活端口的转义序列和数据包。
    • 共享(Shared)
      • 通道可以在系统软件和BMC之间共享。共享模式通常仅在需要在系统软件和BMC之间切换通信资源时使用,因为系统和BMC不能轻易地在介质上交错其流量,如串行端口共享的情况。
      • 对于IPMI LAN通道,共享模式意味着实现允许系统软件接收和响应RMCP数据包。但这不会阻止BMC处理IPMI RMCP数据包和RMCP Ping/Pong。
    • 禁用(Disabled)
      • 通道被禁用,不能用于与BMC通信。禁用设置不影响警报。警报是单独通过“设置通道访问”命令中的单独字段启用或禁用的。
  5. 串行/调制解调器通道的特殊参数
    • 调制解调器响铃时间(Modem Ring Time):在串行/调制解调器通道中,此参数配置BMC等待RING信号的时间,然后指示调制解调器连接。此参数可用于启用操作系统的“自动应答”应用程序,同时提供一种在故障阻止运行时应用程序应答电话时连接到BMC的方法。
  6. 串行端口共享访问特性:表14-提供了有关串行端口共享访问特性的更多信息,包括如何配置串行端口以在BMC和系统软件之间共享。

七、Logical Channels

逻辑通道

  1. 逻辑通道的定义:从IPMI消息传递的角度来看,一个将消息从一个通道桥接到另一个通道的实体(如远程控制台或系统软件)主要关心的是它能否从BMC(基板管理控制器)获得正确的响应。通常,目标通道和设备是否物理实现并不重要。
  2. 逻辑IPMB的示例:例如,BMC可以实施一个逻辑IPMB(逻辑智能平台管理总线),BMC会像存在物理IPMB和其他管理控制器一样响应消息命令。这种逻辑通道的实现可以用于多种目的。
  3. 实现逻辑通道的原因
    • 替代总线的使用:板卡供应商可能希望使用替代总线来连接其板卡集中的管理功能。通过实现逻辑通道,可以模拟物理总线的行为,而不必依赖于实际的物理连接。
    • 组织附加功能:逻辑IPMB还可以为BMC提供一种方式来组织附加功能。例如,嵌入一个逻辑ICMB(智能机箱管理总线)桥接控制器。
  4. 远程控制台和系统软件的视角:对于远程控制台或系统软件来说,只要它们能够通过IPMI消息与BMC进行通信并获得所需的响应,具体的物理实现细节并不重要。这提供了灵活性,允许系统设计者根据需要选择最合适的通信方式。
  5. 逻辑通道的优势
    • 灵活性:逻辑通道允许系统设计者根据特定需求和约束选择最合适的通信协议和介质。
    • 扩展性:通过逻辑通道,可以轻松地向BMC添加新功能或扩展现有功能,而不需要对物理硬件进行重大更改。
    • 兼容性:逻辑通道可以模拟现有的物理通道,从而确保与现有软件和工具的兼容性。
  6. BMC的角色:在逻辑通道的实现中,BMC扮演了关键角色,负责处理来自不同通道的消息,并确保消息能够在逻辑通道中正确路由和响应。

八、 Channel Privilege Levels

通道权限级别

  1. 通道权限级别:通道权限级别决定了用户在特定通道上可以拥有的最大权限。一个通道可以配置为允许用户拥有高达管理员级别的权限,而另一个通道可能被限制为不允许超过用户级别的权限。权限级别限制优先于分配给每个用户的权限级别功能。
  2. 配置通道权限级别:通道可以配置为操作在特定的最大权限级别。权限级别告诉BMC允许通过该通道执行哪些命令。
  3. 设置通道和会话权限级别
    • 使用“设置通道访问”命令来设置通道的最大权限级别限制。
    • 使用“设置会话权限级别”命令来请求执行特定权限级别操作的能力。该命令只能用于设置小于或等于整个通道的权限级别限制的权限级别,无论用户的权限级别如何。
  4. 通道权限级别表
    • 回调(Callback):可能是最低的权限级别。只允许执行支持发起回调所必需的命令。附录G - 命令分配提供了在回调级别操作时可执行的命令列表。
    • 用户(User):只允许执行“良性”命令。这些主要是读取数据结构和检索状态的命令。不允许使用可以更改BMC配置、向BMC或其他管理控制器写入数据或执行系统操作(如重置、开机/关机和看门狗激活)的命令。附录G - 命令分配提供了需要在用户级别或更高级别操作的命令列表。
    • 操作员(Operator):允许所有BMC命令,除了可以改变带外接口行为的配置命令。例如,操作员权限不允许禁用个别通道或更改用户访问权限。附录G - 命令分配提供了需要在操作员级别或更高级别操作的命令列表。
    • 管理员(Administrator):允许所有BMC命令,包括配置命令。管理员甚至可以执行会禁用管理员正在通信的通道的配置命令。附录G - 命令分配提供了需要在管理员级别操作的命令列表。
  5. 权限级别的优先级:通道的权限级别限制优先于分配给个别用户的权限级别,这意味着即使用户具有较高的权限,如果通道的权限级别限制较低,用户也只能执行该通道允许的命令。
  6. 权限级别的应用:通过设置通道的权限级别,可以控制通过该通道可以执行的命令范围,从而实现对BMC操作的细粒度访问控制。

九、Users & Password Support用户&密码支持

  1. 用户定义*:在此规范中,“用户”一词指的是一组数据,这组数据标识了一个密码(密钥),用于建立经过身份验证的会话,以及与该密码相关联的权限。*
  2. 用户信息的组织*:出于配置目的,用户信息集根据数字用户ID进行组织和访问。*
  3. 会话激活*:在激活会话时,使用文本形式的用户名来查找用户信息。用户访问可以在每个通道的基础上启用,因此不同的通道可以启用不同的用户集。*
  4. 不同通道上的用户名和密码*:*
    • 如果需要,一个通道上的用户名可以与另一个通道上的密码不同。
    • 当激活会话时,BMC会从用户ID 1开始顺序扫描用户名,并寻找第一个匹配的用户名且为给定通道启用了访问的用户。
    • 要为给定的用户名配置不同的密码,需要配置多个用户条目 - 每个不同的密码都用于特定的通道集。
  5. 支持用户的不同实现方式*:规范允许在通道上支持用户的多种不同实现方式。以下是最小要求:*
    • 所有经过身份验证的通道都必须至少支持一个用户(用户ID 1)。
    • 用户名可以是固定的,可配置的,或两者的组合,具体取决于实现的选择。
    • 如果实现仅支持一个具有固定用户名的用户,则该固定用户名必须为空(全部为零)。
    • 必须支持为所有用户ID配置用户密码。
    • 为每个用户设置权限限制是可选的。如果不支持“设置用户访问”命令,则使用通道的权限限制用于所有用户。

9.1‘Anonymous Login’ Convention匿名登陆约定

1. **匿名登录的约定**:IPMI通过一种特定的配置来启用匿名登录。这包括将用户ID 1的用户名和密码都设置为null(即全部为零)。
2. **配置匿名登录**:通过将用户ID 1的用户名和密码都设置为null,BMC(基板管理控制器)允许用户无需输入用户名和密码即可登录,这种方式被称为匿名登录。
3. **简化启用检查**:选择用户ID 1来实现匿名登录的原因是简化启用或禁用匿名登录的检查过程。由于用户ID 1是一个特殊的标识,它通常用于系统默认或基础配置,因此检查用户ID 1的配置可以快速确定是否启用了匿名登录。
4. **应用程序的呈现**:应用程序可以利用这个约定,向用户呈现匿名登录作为一个配置选项。如果BMC允许匿名登录,应用程序知道应该使用哪个用户名和密码(即null用户名和密码)。
5. **安全性考虑**:虽然匿名登录提供了方便,但在安全敏感的环境中可能不被推荐,因为它允许任何人无需身份验证即可访问BMC的功能。
6. **配置的明确性**:通过明确设置用户ID 1的用户名和密码为null,可以清晰地向系统管理员和用户表明匿名登录是否被启用。

9.2、Anonymous Login Status

1. **获取通道认证能力命令**:这是一个IPMI命令,用于查询特定通道的认证配置和状态。
2. **匿名登录状态字段**:该命令包含一个“匿名登录状态”字段,该字段向远程控制台应用程序指示用户ID 1是否被配置为具有空用户名(null username)和空密码(null password)。
3. **额外的位信息**:
    - 提供了一个位(bit),用于指示通道是否还启用了非空用户名。
    - 还提供了一个位,用于指示用户ID 1是否拥有空用户名但非空密码。
4. **位信息的用途**:这些位的信息可以联合使用,帮助远程应用程序决定如何向用户展示连接选项。
5. **应用程序的响应**:
    - **仅启用匿名登录**:如果系统仅启用了匿名登录(即用户ID 1配置为null用户名和null密码),应用程序可以自动连接而无需用户输入任何信息,或者在用户界面中提供一个“匿名登录”按钮。
    - **空用户名但非空密码**:如果系统用户名为空但密码非空(即用户ID 1配置为null用户名但有密码),应用程序可以仅弹出密码输入对话框,要求用户输入密码。
    - **非空用户名和密码**:如果系统指示存在非空用户名和非空密码,应用程序可能会弹出一个对话框,要求用户同时输入用户名和密码。
6. **用户界面的适应性**:根据“匿名登录状态”字段和相关的位信息,应用程序可以适应性地提供不同的用户界面选项,简化用户的连接过程。
7. **安全性与便利性的平衡**:通过提供详细的登录状态信息,IPMI允许应用程序在安全性和用户便利性之间做出权衡,根据实际的系统配置来优化用户体验。
8. **远程控制台应用程序的智能化**:这种机制使得远程控制台应用程序能够更智能地处理不同的认证场景,减少用户的输入负担,并提供更流畅的登录体验。

十、系统接口信息

10.1BMC通道和消息队列

1. **消息传递**:系统软件和其他管理总线(如IPMB,智能平台管理总线)之间的消息传递是通过通道和接收消息队列来完成的。
2. **通道定义**:通道是BMC内的一条路径,允许消息在系统接口和给定的总线或消息传输之间发送。
3. **接收消息队列**:接收消息队列用于在系统软件可以收集之前暂存消息数据。所有通道共享接收消息队列以将消息传输给系统管理软件。
4. **消息队列数据**:接收消息队列的数据包含通道、会话和IPMI地址信息,这些信息允许系统软件识别消息的来源,并在必要时格式化消息回源。
5. **系统管理软件的责任**:系统管理软件负责在接收消息队列中有数据时清空它。如果接收消息队列满了,消息会被拒绝。
6. **队列大小建议**:建议接收消息队列至少为每个通道保留两个“槽位”。这是一个逻辑概念,实现时可以选择将其实现为实际的队列,或者为每个通道实现单独的内部缓冲区。
7. **防止“锁定”**:建议实现时尝试为当前没有消息在队列中的每个通道保留一个槽位。这有助于防止队列仅被一个接口的消息填满,从而导致“锁定”。
8. **BMC发送异步消息**:如果必要,BMC本身可以使用接收消息队列和消息通道向系统管理软件发送异步消息。
9. **定义唯一通道**:推荐的机制是定义一个协议类型为“系统”的唯一通道。为了向系统软件发送异步消息,BMC会将该通道的消息直接放入“系统”格式的接收消息队列中。
10. **系统软件的响应**:系统软件可以使用该通道的发送消息命令响应回BMC。
11. **实现的灵活性**:虽然建议实现接收消息队列,但实现者可以根据具体的系统需求和设计选择不同的实现方式,例如使用实际的队列或内部缓冲区。

10.2事件消息缓冲区

1. **事件消息缓冲区**:这是一个可选特性,用于存储BMC内部生成的事件请求消息,以及从IPMB或其他通道接收的事件消息。它不存储系统软件生成的事件消息。
2. **存储内容**:事件消息缓冲区存储所有16字节的事件消息,就像它们存储在系统事件日志(SEL)中一样。
3. **IPMI v1.5的行为**:在IPMI v1.5中,如果系统软件还未清空缓冲区就接收到新的事件,缓冲区不会被覆盖。
4. **缓冲区的清除**:BMC在首次上电以及系统每次上电或硬重置时会清除缓冲区。
5. **系统中断的生成**:某些BMC实现可以支持在事件消息缓冲区满时生成系统中断。
6. **SMI(系统管理中断)**:一些实现可能会选择生成SMI,以允许创建SMI处理程序,对事件消息执行额外操作。
7. **SMI的可选性**:如果事件消息缓冲区中断不生成SMI,或未启用(或未实现),系统管理软件(SMS)可以使用此机制来检查接收到的事件消息。
8. **SMI使用状态的检查**:系统软件在假定事件消息资源可用之前,必须检查SMI的使用状态。这可以通过使用“获取通道信息”命令来实现,以确定事件消息缓冲区的中断分配是否设置为SMI。
9. **SMM(系统管理模式)消息和SMI实现的可选性**:由于SMI的操作和功能是专有的,并且在本规范中没有描述或要求,因此通过IPMI接口的支持正在被弃用。
10. **新实现的建议**:新的实现应避免使用IPMI对SMI的支持。
11. **缓冲区的逻辑概念**:事件消息缓冲区是一个逻辑概念,实现者可以根据自己的设计选择具体的实现方式。

三、IPMI消息接口 _续

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值