4. 配置基础:IP配置、路由、子网管理器(SM)配置

RoCE与InfiniBand混合组网中,绝大多数“联不通”“时通时断”问题,根源并不在硬件或线缆,而在于基础配置不一致。本章聚焦三类最核心的配置:IP地址、路由表、子网管理器(SM)。理解这三者的分工与协作,是后续排障的前提。

4.1 核心原理:三者的职责边界

在混合组网中,IP、路由、SM分别工作在不同层次,但彼此依赖:

  • IP配置:负责RoCE v2报文在IP层(L3)的可路由寻址。每个RoCE网卡接口必须拥有唯一的IP地址,且该地址所在的子网必须与对端可达。
  • 路由配置:决定RoCE v2流量从源端到目的端经过哪些三层设备(交换机或路由器)。错误的路由会导致报文被丢弃或绕路,引发高延迟或超时。
  • 子网管理器(SM):仅作用于InfiniBand链路层(L2)。SM负责发现子网拓扑、分配LID(局部标识符)、配置QoS和路径表。对于RoCE v2,SM不直接参与数据转发,但若混合组网中IB端口未正确接入SM管理的子网,会导致链路无法激活。

关键认知:RoCE v2流量走IP路由,而IB流量走SM管理的LID路由。两者在同一物理网络上共存时,必须确保IP层与IB层各自独立且正确配置,不能混为一谈。

RoCE v2 节点 应用 / 存储流量 UDP / IP 层 RoCE 网卡 (RNIC) 以太网物理端口 InfiniBand 节点 应用 / MPI 流量 IB 传输层 (L4) IB 链路层 (L2) IB 物理端口 混合交换机 同时支持 RoCE 与 IB 端口 子网管理器 (SM) 分配 LID / 路径计算 IP 路由 LID 路由 IP 配置负责 RoCE 流量寻址;SM 负责 IB 子网管理;两者互不替代

4.2 方法流程:标准配置步骤

在混合组网中,建议按以下顺序进行基础配置,每一步完成后验证再进入下一步:

  1. 物理层确认:检查端口速率、FEC(前向纠错)模式、线缆类型是否匹配。
  2. IP地址配置:为所有RoCE网卡接口分配静态IP,确保同一广播域内无冲突。
  3. 路由配置:在主机和交换机上配置静态路由或启用动态路由协议(如BGP),确保RoCE v2流量可达。
  4. SM配置:在IB子网中指定主SM和备SM,配置LID范围、QoS策略。
  5. 连通性验证:使用ping、ibping、ibstatus等工具逐层验证。

4.2.1 IP地址配置示例

以Linux主机上的RoCE网卡(如mlx5_0)为例,使用rdma工具或ip命令配置IP:

# 查看RoCE网卡状态
rdma link show

# 为RoCE接口配置IP(假设接口名为eth0)
ip addr add 192.168.10.1/24 dev eth0
ip link set eth0 up

# 验证配置
ip addr show eth0
ping -c 3 192.168.10.2

注意:RoCE v2要求IP报文中的源/目的IP必须与路由表匹配。如果主机有多张网卡,务必确认流量从正确的接口发出,可使用ip route get验证。

4.2.2 路由配置示例

当RoCE流量跨越三层网络时,需要在交换机或路由器上配置路由。以下为静态路由配置示例:

# 在交换机上配置到RoCE子网的路由
ip route add 192.168.20.0/24 via 192.168.10.254

# 在主机上配置默认网关
ip route add default via 192.168.10.254

# 查看路由表
ip route show

4.2.3 SM配置示例

对于InfiniBand子网,SM通常运行在交换机或专用服务器上。以opensm为例:

# 启动opensm作为主SM(在IB交换机上)
opensm -c /etc/opensm/opensm.conf   # 生成配置文件
opensm -g 0x98039b03009f3dca        # 指定guid启动

# 查看SM状态
ibstat
ibstatus

# 查看LID分配
ibswitches
配置项 RoCE v2 InfiniBand
寻址方式 IP地址(L3) LID(L2)
路由决策 IP路由表 SM路径计算
管理工具 ip、rdma opensm、ibstat
故障排查 ping、traceroute ibping、ibdiagnet

4.3 案例/场景:混合组网配置实战

某数据中心部署了8台GPU服务器,其中4台使用RoCE v2网卡连接以太网交换机,另外4台使用InfiniBand HCA连接IB交换机,两台交换机之间通过混合链路互联。配置过程中遇到以下问题:

场景一:RoCE流量无法跨交换机通信

排查发现,RoCE服务器A(IP 192.168.1.1)与RoCE服务器B(IP 192.168.2.1)分属不同VLAN,但中间交换机未配置VLAN间路由。添加VLAN接口并配置路由后恢复通信:

# 在交换机上创建VLAN接口
ip link add link eth0 name eth0.10 type vlan id 10
ip addr add 192.168.1.254/24 dev eth0.10
ip link set eth0.10 up

# 配置跨VLAN路由
ip route add 192.168.2.0/24 via 192.168.1.254

场景二:IB子网中SM未正确选举

IB交换机启动后,所有端口处于“Initializing”状态,无法激活。检查发现两台IB交换机都配置为“disabled”SM,导致子网无SM管理。修正配置后,指定优先级最高的交换机为主SM:

# 在交换机1上设置高优先级SM
opensm -p 15 -g 0x98039b03009f3dca

# 在交换机2上设置低优先级SM(备份)
opensm -p 5 -g 0x98039b03009f3dcb

重启后,交换机1成为主SM,所有端口在数秒内进入Active状态。

4.4 误区/复盘:常见配置错误

经验总结:混合组网中70%以上的配置问题源于IP地址冲突或路由缺失,而非SM配置错误。建议先排查IP层,再检查IB层。

以下是实际运维中反复出现的配置误区:

  • 误区一:忽略RoCE v2的IP DSCP标记。RoCE v2流量依赖IP头中的DSCP值进行优先级映射。若未配置正确的DSCP,流量可能被交换机降级处理,导致丢包。建议统一配置DSCP为46(EF)或根据QoS策略设定。
  • 误区二:SM与子网拓扑不匹配。当IB子网中新增交换机或线缆时,SM需要重新发现拓扑。若SM未配置自动重扫(--rescan),新设备可能无法获得LID。建议开启SM的定期扫描功能。
  • 误区三:路由表与物理拓扑不一致。在多路径组网中,静态路由可能将流量导向拥塞链路。建议使用ECMP(等价多路径)或动态路由协议,避免单点瓶颈。
  • 误区四:IP配置后未重启rdma服务。某些驱动在IP变更后需要重启rdma服务才能生效,否则GID表不会更新。执行systemctl restart rdma可解决。

复盘一次典型故障:某集群RoCE流量延迟突然升高,排查发现新接入的服务器IP地址与网关冲突,导致ARP表震荡。清除错误ARP条目并重新配置IP后,延迟恢复正常。这提醒我们,IP地址规划必须全局统一管理,避免临时配置引发冲突。

最后,建议建立配置基线文档,记录每台设备的IP、路由、SM参数,便于快速比对和回滚。基础配置的规范性,直接决定混合组网的稳定性和可维护性。