聊一聊 LLDP 协议

hccn_tool 检查交换机状态

昇腾官方的模型迁移指导中提到一个在端侧检查交换机状态的命令工具,只要返回不空则代表交换机状态正常:

hccn_tool 确认交换机状态

实际执行后发现,昇腾服务器上通过执行 hccn_tool -i {device_id} -lldp -g 可以查询到 lldp 配置信息,如下:

命令:

hccn_tool -i 0 -lldp -g

回显:

Chassis ID TLV
    MAC: d0:77:ce:6d:62:51
Port ID TLV
    Ifname: 400GE1/1/26:1
Time to Live TLV
    120
Port Description TLV
    to_cnnorth7c-pod101-kat2ne48x1-8-bm000005_ucb23a-2d-01-02/25U_D-eth2
System Name TLV
    cnnorth7c-nc01_bpod01-dx511-rap_roce-11.172.213.6
System Description TLV
    Versatile Routing Platform Software
VRP (R) software, Version 8.211 (DX511 V200R021C10SPC600)


Huarong DX511

System Capabilities TLV
    System capabilities:  Bridge, Router
    Enabled capabilities: Bridge, Router
Mnagement Address TLV
    IPv4: 11.172.213.6
    Ifindex: 4
Port VLAN ID TLV
    PVID: 21
Port and Protocol VALN ID TLV
    PVID: 0, not supported, not enabled
VLAN Name TLV
    VID 21: Name VLAN21
MAC/PHY Configuration Status TLV
    Auto-negotiation not supported and not enable
    PMD auto-negotiation capabilities: 0x0000
    MAU type: Unknown [0x0000]
Link Aggregation TLV
    Aggregation capable
    Currently not aggregated
    Aggregated Port ID: 0
Maximum Frame Size TLV
    9216
End of LLDPDU TLV

那么,这里的 LLDP 配置到底是什么意思呢?

LLDP(Link Layer Discovery Protocol 链路层发现协议)

LLDP协议属于链路层协议,以太类型为 0x88cc。网络设备可以通过发送 LLDPDU 数据帧来告知其他设备自身的状态。注意,它不是一个控制协议,无法通过该协议对设备进行配置,它只提供了查询的能力。

标准LLDP协议帧格式

TLV 是组成 LLDPDU 的单元,每个 TLV 都代表一个信息。LLDP 可以封装的 LTV 包括基本 LTV、802.1 组织定义 TLV、802.3 组织定义 TLV 和 LLDP-MED(Media Endpoint Discovery,媒体终端发现) TLV

现在我们知道了本文开头展示的 hccn_tool -i {devcie_id} -lldp -g 命令背后到底做了什么,实际上就是主机侧请求交换机返回也给 LLDPDU(LLDP Data Unit)展示其状态。

因此沃恩看到了交换机的型号(Huarong DX511),这里只要能返回则说明主机与交换机之间的 RoCE 网络是联通的状态。

LLDP 是一个基于以太网的协议,因此 InfiniBand 物理网络下不支持。

ref:https://forums.developer.nvidia.com/t/lldp-not-available/207865

部分 TLV 内容解释

Chassis ID TLV

发送设备的桥MAC地址:

Chassis ID TLV
    MAC: d0:77:ce:6d:62:51

Port ID TLV

标识LLDPDU发送端的端口

Port ID TLV
    Ifname: 400GE1/1/26:1

System Capabilities TLV

System Capabilities TLV
    System capabilities:  Bridge, Router
    Enabled capabilities: Bridge, Router

说明DX511是一个支持三层网络转发的交换机,并且已经打开了三层路由转发(Router)的能力

RDMA 是无法容忍丢包的,需要 loseless 网络,IB 天生支持 loseless,而 RoCE 网络则需要通过 PFC 实现不丢包,而 PFC 的策略中的 DSCP 策略需要交换机具备三层网络转发的能力(与 DCQCN 算法相关),因此 RoCE 网络下这个开关必须开启的。

DCQCN 算法详解,可参考:https://hurray0.com/menu/138/#DCQCN

Mnagement Address TLV

管理地址携带在LLDP报文中的Management Address TLV中,共网管系统标识设备,进行网络管理。管理地址可以明确地标识一台设备,有利于网络拓扑的绘制,便于网络管理。

Mnagement Address TLV
    IPv4: 11.172.213.6
    Ifindex: 4

执行 hccn_tool -i {device_id} -ip -g 命令看到 RoCE 万科工卡的网段是 29.20.*.*,与此处的管理地址不在一个网段,看来这里的地址是带外管理平面的,与用户业务不直接相关?

Port VLAN ID TLV

Port VLAN ID TLV
    PVID: 21

之类我们注意到 8 张网卡同处于一个 VLAN,因为华为云的 BMS 服务将 VLAN 用于隔离多租户之间的网络,因此同一个租户下的 RoCE 网路平面内一定都是同一个 VLAN。

交换机 PFC 策略除了 DSCP 外还有 PCP(Priority Code Point),该策略正式基于 VLAN 实现。正如上面介绍的华为云将其用于隔离多租了,因此无法使用该策略。

End of LLDPDU TLV

End of LLDPDU TLV

标识LLDPDU结束

参考链接


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 nz_nuaa@163.com
github