3. 验证RoCEv2链路层连通性
任务目标
在RoCEv2网络中,IP连通性是RDMA通信的基础。本案例通过ping命令验证两台RoCE节点间的三层连通性,并检查网卡链路层状态,确保物理链路与IP配置均正常。
环境准备
本案例需要两台配置了RoCEv2网卡的服务器(下文称node-a与node-b),网卡已安装驱动并启用RoCEv2模式。操作系统为Linux(示例使用Ubuntu 22.04),已安装iproute2与iputils-ping。IP地址规划如下:
| 节点 | 网卡接口 | IP地址 |
|---|---|---|
| node-a | eth0 | 192.168.100.10/24 |
| node-b | eth0 | 192.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,请优先排查物理连接。