3. 验证RoCEv2链路层连通性

任务目标

在RoCEv2网络中,IP连通性是RDMA通信的基础。本案例通过ping命令验证两台RoCE节点间的三层连通性,并检查网卡链路层状态,确保物理链路与IP配置均正常。

环境准备

本案例需要两台配置了RoCEv2网卡的服务器(下文称node-a与node-b),网卡已安装驱动并启用RoCEv2模式。操作系统为Linux(示例使用Ubuntu 22.04),已安装iproute2与iputils-ping。IP地址规划如下:

节点网卡接口IP地址
node-aeth0192.168.100.10/24
node-beth0192.168.100.20/24

链路层状态检查

在配置IP之前,先确认物理链路已建立。在两台节点上分别执行:

# 查看网卡链路状态(node-a与node-b均执行)
ip link show eth0

预期输出中state UP表示链路已激活,LOWER_UP标志表示物理层信号正常。若显示state DOWN,请检查网线/光模块连接及交换机端口配置。

配置IP地址

若网卡尚未配置IP,使用以下命令配置(需root权限):

# node-a上执行
ip addr add 192.168.100.10/24 dev eth0
ip link set eth0 up

# node-b上执行
ip addr add 192.168.100.20/24 dev eth0
ip link set eth0 up

验证IP连通性

在node-a上执行ping测试:

ping -c 4 192.168.100.20

预期输出应包含类似以下内容:

64 bytes from 192.168.100.20: icmp_seq=1 ttl=64 time=0.123 ms
64 bytes from 192.168.100.20: icmp_seq=2 ttl=64 time=0.115 ms
64 bytes from 192.168.100.20: icmp_seq=3 ttl=64 time=0.118 ms
64 bytes from 192.168.100.20: icmp_seq=4 ttl=64 time=0.121 ms

--- 192.168.100.20 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss

若收到0% packet loss,说明IP层连通性正常。若出现Destination Host Unreachable,请检查IP地址配置与链路状态;若出现Request timeout,请检查防火墙规则(RoCEv2通常使用UDP端口4791,但ICMP不受此限制)。

验证RoCEv2模式

确认网卡已启用RoCEv2(而非RoCEv1)。使用rdma工具检查:

rdma link show

预期输出中应包含类似link eth0/1 state ACTIVE physical_state LINK_UP的信息。若需确认RoCE版本,可检查网卡固件配置或使用ibv_devinfo(需安装ibverbs-utils):

ibv_devinfo -d mlx5_0 | grep -i version

输出中RoCE v2字样表示已启用RoCEv2模式。

通过条件

  • ip link show eth0显示state UP且包含LOWER_UP标志
  • ping -c 4命令丢包率为0%
  • rdma link show显示链路状态为ACTIVE

以上三项全部满足,即证明RoCEv2链路层连通性验证通过。若ping失败但链路状态正常,请检查IP地址是否冲突或路由表配置;若链路状态为DOWN,请优先排查物理连接。