13.8.3. 了解 IPoIB 硬件地址
IPoIB 设备具有 20 个字节硬件地址。如果config 无法读取所有 20 字节,则已弃用的实用程序绝对不能用于尝试查找 IPoIB 设备的正确硬件地址。iproute 软件包中的 ip 工具可以正常工作。
IPoIB 硬件地址的前 4 字节是标志和队列对号。下一个 8 字节是子网前缀。首次创建 IPoIB 设备时,它的默认子网前缀为
0xfe:80:00:00:00:00:00:00:00
。该设备将使用默认子网前缀(0xfe80000000000000),直到它与子网管理器取得联系,此时它将重置子网前缀,使其与子网管理器已将其配置为匹配。最后 8 字节是 IPoIB 设备所附加的 InfiniBand 端口的 GUID 地址。因为前 4 字节和接下来 8 字节可能会随时变化,所以在为 IPoIB 接口指定硬件地址时,不会使用或匹配它们。第 13.5.2 节 “70-persistent-ipoib.rules 的使用” 部分解释了如何通过将 udev 规则文件中的 ATTR{address} 字段的前 12 字节离开 ATTR{address} 字段来生成地址,从而使设备匹配可靠。在配置 IPoIB 接口时,配置文件的 HWADDR 字段可以包含所有 20 字节,但实际只使用最后 8 字节来匹配并查找配置文件指定的硬件。但是,如果设备配置文件中 TYPE=InfiniBand 条目未正确拼写,如果up-ib 不是用于打开 IPoIB 接口的实际脚本,则系统将无法找到配置指定的硬件的错误将会发出。对于 IPoIB 接口,配置文件的 TYPE= 字段必须是 InfiniBand
或 infiniband
(条目区分大小写,但脚本将接受这两个特定拼写)。