链路层发现协议

LLDP 显示有关连接设备的信息。lldpd 守护程序实现 IEEE802.1AB LLDP 标准,并在系统启动时启动。

Cumulus Linux 中的 LLDP 支持 CDP(Cisco 发现协议 v1 和 v2),默认记录到 /var/log/daemon.log,带有 lldpd 前缀。

启用或禁用 LLDP

Cumulus Linux 默认启用 lldp 服务。

您可以全局或在接口上禁用 LLDP。

  • 当您全局禁用 LLDP 时,lldp 服务以及所有 LLDP 和 CDP 数据包传输都将停止。
  • 当您在接口上禁用 LLDP 时,LLDP 和 CDP 数据包传输将在该接口上停止。

要全局禁用 LLDP

cumulus@leaf01:~$ nv set service lldp state disabled 
cumulus@leaf01:~$ nv config apply

要全局重新启用 LLDP,请运行 nv set service lldp state enabled 命令。

停止 lldpd 服务

cumulus@leaf01:~$ sudo systemctl stop lldpd
cumulus@leaf01:~$ sudo systemctl disable lldpd

要全局重新启用 LLDP,请启用并重启 lldp 服务

cumulus@leaf01:~$ sudo systemctl enable lldpd
cumulus@leaf01:~$ sudo systemctl restart lldpd

要在接口上禁用 LLDP

cumulus@leaf01:~$ nv set interface swp1 lldp state disabled
cumulus@leaf01:~$ nv config apply

要在接口上重新启用 LLDP,请运行 nv set interface swp1 lldp state enabled 命令。

创建 /etc/lldp.d/lldp-interfaces.conf 文件并添加 configure system interface pattern-blacklist 选项。以下示例禁用 swp1 和 swp2 上的 LLDP

cumulus@leaf01:~$ sudo nano /etc/lldpd.d/lldp-interfaces.conf
configure system interface pattern-blacklist swp1,swp2

另一种方法是使用 system interface pattern 关键字在除 swp1 和 swp2 之外的所有接口上发送 LLDP

cumulus@leaf01:~$ sudo nano /etc/lldpd.d/lldp-interfaces.conf
configure system interface pattern eth*,swp*,!swp1,!swp2

重启 lldpd 服务以使更改生效

cumulus@leaf01:~$ sudo systemctl restart lldpd

运行时配置在您重启交换机时不会持久保留;您将丢失所有更改。

要配置活动接口

cumulus@leaf01:~$ sudo lldpcli configure system interface pattern "swp*"

要配置非活动接口

cumulus@leaf01:~$ sudo lldpcli configure system interface pattern *,!eth0,swp*

活动接口列表始终覆盖非活动接口列表。

要将任何接口列表重置为无

cumulus@leaf01:~$ sudo lldpcli configure system interface pattern ""

要显示 LLDP 是全局启用还是在接口上启用,请运行 nv show service lldp 命令。

cumulus@leaf01:~$ nv show service lldp
                        operational  applied
----------------------  -----------  -------
tx-interval             30           30     
tx-hold-multiplier      4            4      
dot1-tlv                off          off    
lldp-med-inventory-tlv  off          off    
mode                    default      default
state                   enabled      disabled

以下示例显示 swp1 到 swp4 处于启动状态,并在 leaf01 和 leaf02 之间通告 LLDP

cumulus@leaf01:~$ sudo lldpctl | egrep 'Inter|Port|SysName'
Interface:    eth0, via: LLDP, RID: 1, Time: 1 day, 03:07:48
    SysName:      oob-mgmt-switch
  Port:
    PortID:       ifname swp2
    PortDescr:    swp2
Interface:    swp3, via: LLDP, RID: 2, Time: 0 day, 06:52:48
    SysName:      leaf02
  Port:
    PortID:       ifname swp3
    PortDescr:    swp3
Interface:    swp4, via: LLDP, RID: 2, Time: 0 day, 00:07:38
    SysName:      leaf02
  Port:
    PortID:       ifname swp4
    PortDescr:    swp4

以下示例显示在禁用 swp1 和 swp2 上的 LLDP 后,只有 swp3 和 swp4 在 leaf01 上生成和接收 LLDP。leaf02 仅从 leaf01 在 swp3 和 swp4 上接收 LLDP

cumulus@leaf02:~$ sudo lldpctl | egrep 'Inter|Port|SysName'
Interface:    eth0, via: LLDP, RID: 2, Time: 0 day, 00:09:16
    SysName:      oob-mgmt-switch
  Port:
    PortID:       ifname swp3
    PortDescr:    swp3
Interface:    swp3, via: LLDP, RID: 1, Time: 0 day, 00:08:47
    SysName:      leaf01
  Port:
    PortID:       ifname swp3
    PortDescr:    swp3
Interface:    swp4, via: LLDP, RID: 1, Time: 0 day, 00:09:16
    SysName:      leaf01
  Port:
    PortID:       ifname swp4
    PortDescr:    swp4

配置 LLDP 计时器

您可以配置 LLDP 更新的频率(介于 5 到 32768 秒之间)和在丢弃信息之前保持信息的时间量(介于 1 到 8192 秒之间)。保持时间间隔是 tx-interval 的倍数。

nv show 命令仅在保持时间间隔之后才反映操作值中的某些配置更改。

以下示例命令将 LLDP 更新的频率配置为 100,并将保持时间配置为 3。

cumulus@switch:~$ nv set service lldp tx-interval 100
cumulus@switch:~$ nv set service lldp tx-hold-multiplier 3
cumulus@switch:~$ nv config apply

创建 /etc/lldpd.conf 文件或在 /etc/lldpd.d/ 目录中创建带有 .conf 后缀的文件,并添加计时器

cumulus@switch:~$ sudo nano /etc/lldpd.conf
configure lldp tx-interval 100
configure lldp tx-hold 3
...

重启 lldpd 服务以使更改生效

cumulus@switch:~$ sudo systemctl restart lldpd

SNMP 子代理

SNMP 子代理允许 SNMP 查询从 lldpd 服务检索 LLDP 信息。

如果您使用 NVUE 命令启用 SNMP,NVUE 会自动启用 SNMP 子代理。要禁用 SNMP 子代理,请使用 NVUE nv set system snmp-server state disable 命令禁用 SNMP。

如果您使用 Linux 命令配置交换机,则 Cumulus Linux 默认情况下不会启用 SNMP 子代理。要启用 SNMP 子代理,请编辑 /etc/default/lldpd 文件并添加 -x 选项

cumulus@switch:~$ sudo nano /etc/default/lldpd

# Add "-x" to DAEMON_ARGS to start SNMP subagent

# Enable CDP by default
DAEMON_ARGS="-c -x -M 4"

重启 lldpd 服务以使更改生效

cumulus@switch:~$ sudo systemctl restart lldpd

  • -c 选项启用与 CDP 的向后兼容性。请参阅下面的 更改 CDP 设置
  • -M 4 选项在发现数据包中发送一个字段,以指示交换机是网络设备。

更改 CDP 设置

Cumulus Linux 提供对 CDP 的支持,以便交换机可以使用不支持 LLDP 的 Cisco 路由器通告有关自身的信息。默认情况下,仅当对等方发送 CDP 数据包时,Cumulus Linux 交换机才发送 CDP 数据包。您可以通过将 /etc/default/lldpd 文件中的 -c 替换为以下选项之一来更改此设置

选项描述
-cc即使没有检测到 CDP 对等方,Cumulus Linux 交换机也发送 CDPv1 数据包。
-ccc即使没有检测到 CDP 对等方,Cumulus Linux 交换机也发送 CDPv2 数据包。
-ccccCumulus Linux 交换机禁用 CDPv1 并启用 CDPv2。
-cccccCumulus Linux 交换机禁用 CDPv1 并强制 CDPv2。

以下示例将 CDP 设置更改为 -ccc,以便即使没有检测到 CDP 对等方,交换机也发送 CDPv2 数据包

cumulus@switch:~$ sudo nano /etc/default/lldpd
...
# Enable CDP by default
DAEMON_ARGS="-ccc -x -M 4"

您必须重启 lldpd 服务才能使更改生效。

cumulus@switch:~$ sudo systemctl restart lldpd

设置 LLDP 模式

默认情况下,lldpd 服务发送 LLDP 帧,除非它检测到 CDP 对等方,然后它发送 CDP 帧。您可以更改此行为,并将 lldpd 服务配置为仅发送 CDP 帧或仅发送 LLDP 帧。

  • 您配置 lldpd 服务以全局为所有接口仅发送 CDP 或仅发送 LLDP 帧;您无法为特定接口配置这些设置。
  • 如果您将 lldpd 服务配置为仅发送 CDP 帧(CDPv1 或 CDPv2),则不支持 用于 QOS ROCE 的 LLDP DCBX TLV 传输

仅发送 CDPv1 帧

cumulus@switch:~$ nv set service lldp mode force-send-cdpv1
cumulus@switch:~$ nv config apply

仅发送 CDPv2 帧

cumulus@switch:~$ nv set service lldp mode force-send-cdpv2
cumulus@switch:~$ nv config apply

仅发送 LLDP 帧

cumulus@switch:~$ nv set service lldp mode force-send-lldp
cumulus@switch:~$ nv config apply

重置为默认设置(同时发送 CDP 和 LLDP 帧)

cumulus@switch:~$ nv set service lldp mode default
cumulus@switch:~$ nv config apply

编辑 /etc/default/lldpd 文件,并将以下选项之一添加到 DAEMON_ARGS 部分

仅发送 CDPv1 帧

cumulus@switch:~$ sudo nano /etc/default/lldpd
...
DAEMON_ARGS="-cc -ll -M 4"

仅发送 CDPv2 帧

cumulus@switch:~$ sudo nano /etc/default/lldpd
...
DAEMON_ARGS="-cccc -ll -M 4"

仅发送 LLDP 帧

cumulus@switch:~$ sudo nano /etc/default/lldpd
...
DAEMON_ARGS="-l -M 4"

重置为默认设置(同时发送 CDP 和 LLDP 帧)

cumulus@switch:~$ sudo nano /etc/default/lldpd
...
DAEMON_ARGS="-c -M 4"

您必须重启 lldpd 服务才能使更改生效。

cumulus@switch:~$ sudo systemctl restart lldpd

要显示当前的 LLDP 模式,请运行 nv show service lldp 命令。以下示例显示 lldpd 服务仅发送 CDPv2 帧。

cumulus@leaf02:mgmt:~$ nv show service lldp
                    operational       applied
------------------  ----------------  ----------------
dot1-tlv            off               off
mode                force-send-cdpv2  force-send-cdpv2
tx-hold-multiplier  4                 4
tx-interval         30                30

CDP PortID 行为

默认情况下,LLDP 在检测到 CDP 邻居的接口上模拟 CDP。CDP 仅在协议中支持 PortID 值 (TLV);但是,LLDP 具有单独的 PortIDPortDescription 字段。

默认情况下,当交换机发送 CDP 数据包时,如果接口上存在别名(描述),则 LLDP 在 CDP PortID 字段中发送别名。当 LLDP 邻居收到 CDP 数据包时,接收交换机在 PortIDPortDescription 字段中都显示 CDP 端口 ID。

如果您希望 LLDP 将 portID (ifname) 值而不是接口别名发送到 CDP 邻居,您可以配置以下选项

  • 要在同一 PortID 字段中同时传输 PortIDPortDescription,请将接口名称插入接口 alias 字段。
  • 要通过 CDP 发送 ifname 而不是接口别名,请在 /etc/lldpd.d/lldp_global.conf 文件中配置 configure lldp portidsubtype macaddress 选项。默认配置为 portidsubtype ifname

下表显示了为每种配置发送的 TLV。

LLDP 配置发送的 LLDP PortID 值发送的 LLDP 端口描述值发送的 CDP PortID 值
configure lldp portidsubtype ifname(默认)接口 ifname接口 alias接口 alias
configure lldp portidsubtype macaddress MAC 地址接口 mac address接口 ifname接口 ifname

仅使用 CDP 或仅使用 LLDP 以获得跨所有邻居的 PortIDDescriptionMacAddress(仅 LLDP)的所需行为。有关更多信息,请参阅 LLDP 模式

LLDP DCBX TLV

DCBX 是 LLDP 的扩展,它支持 TLV 以在 LLDP 数据包中向对等方提供其他信息。

Cumulus Linux 支持以下 LLDP DCBX TLV

  • IEEE 802.1
  • IEEE 802.3
  • QoS
  • LLDP-MED 库存
  • 应用程序优先级

  • 您可以在一个 LLDP 帧中为每个交换机端口最多发送 250 个 VLAN。
  • Cumulus Linux 不支持 CEE DCBX TLV。
  • Cumulus Linux 将 DCBX 支持限制为启用 DCBX TLV(通过 ROCE 全局配置或每个接口),如 IEEE 802.1Q 标准中所述。

IEEE 802.1 TLV

在交换 LLDP 消息时,您可以传输以下 IEEE 802.1 TLV。默认情况下,IEEE 802.1 TLV 传输为 off,并且交换机发送所有不带 IEEE 802.1 TLV 的 LLDP 帧。

名称子类型描述
端口 VLAN ID1端口 VLAN 标识符。
VLAN 名称3端口所属的任何 VLAN 的名称。
链路聚合7指示端口是否支持链路聚合以及是否已启用。

要启用 IEEE 802.1 TLV 传输,请运行 nv set service lldp dot1-tlv on 命令

cumulus@switch:~$ nv set service lldp dot1-tlv on
cumulus@switch:~$ nv config apply

要禁用 IEEE 802.1 TLV 传输,请运行 nv unset service lldp dot1-tlv 命令。

要显示 IEEE 802.1 TLV 传输是否为 on,请运行 NVUE nv show service lldp 命令

cumulus@leaf01:mgmt:~$ nv show service lldp
                        operational  applied
----------------------  -----------  -------
tx-interval             30           30     
tx-hold-multiplier      4            4      
dot1-tlv                off          off   
...

IEEE 802.3 TLV

默认情况下,Cumulus Linux 传输以下 IEEE 802.3 TLV。您无需启用它们。

名称子类型描述
链路聚合3指示端口是否支持链路聚合以及是否已启用。
最大帧大小4端口上的 MTU 配置。端口上的 MTU 是 MFS

QoS TLV

QoS 配置添加为 DCBX TLV 的一部分,允许在连接到交换机的主机和交换机上进行自动配置。

您可以传输以下 QoS TLV。默认情况下,所有接口上的所有 QoS TLV 传输都为 off

名称子类型描述
ETS 配置9交换机上的 ETS 配置设置。
ETS 建议A交换机希望连接的对等接口使用的推荐 ETS 设置。
PFC 配置B交换机上的 PFC 配置设置。

在接口上向 LLDP 数据包添加 QoS TLV 依赖于来自 switchd 的 PFC 和 ETS 配置。有关配置 PFC 和 ETS 的信息,请参阅 服务质量

当您在交换机上启用 ROCE

  • QoS TLV 传输(PFC 配置、ETS 配置和 ETS 建议)在所有端口上全局启用,这将覆盖交换机端口接口上的任何 QoS TLV 传输设置。
  • 所有交换机端口接口的 LLDP 帧都携带 PFC 配置、ETS 配置、ETS 建议和 APP 优先级 TLV。所有接口的 ETS 配置和 PFC 配置 TLV 负载都相同。

启用 QoS TLV 传输

要启用 PFC 配置 TLV 传输,请运行 nv set interface <interface> lldp dcbx-pfc-tlv on 命令

cumulus@switch:~$ nv set interface swp1 lldp dcbx-pfc-tlv on
cumulus@switch:~$ nv config apply

要启用 ETS 配置 TLV 传输,请运行 nv set interface <interface> lldp dcbx-ets-config-tlv on 命令

cumulus@switch:~$ nv set interface swp1 lldp dcbx-ets-config-tlv on
cumulus@switch:~$ nv config apply 

要启用 ETS 建议 TLV 传输,请运行 nv set interface <interface> lldp dcbx-ets-recomm-tlv on 命令

cumulus@switch:~$ nv set interface swp1 lldp dcbx-ets-recomm-tlv on
cumulus@switch:~$ nv config apply

接口必须是物理接口;您不能在 bond 上启用 TLV。

禁用 QoS TLV 传输

要禁用 PFC 配置 TLV 传输,请运行 nv unset interface <interface> lldp dcbx-pfc-tlv 命令

cumulus@switch:~$ nv unset interface swp1 lldp dcbx-pfc-tlv
cumulus@switch:~$ nv config apply

要禁用 ETS 配置 TLV 传输,请运行 nv unset interface <interface> lldp dcbx-ets-config-tlv 命令

cumulus@switch:~$ nv unset interface swp1 lldp dcbx-ets-config-tlv
cumulus@switch:~$ nv config apply 

要禁用 ETS 建议 TLV 传输,请运行 nv unset interface <interface> lldp dcbx-ets-recomm-tlv 命令

cumulus@switch:~$ nv unset interface swp1 lldp dcbx-ets-recomm-tlv
cumulus@switch:~$ nv config apply

显示 QoS TLV 传输设置

要显示接口的 Qos TLV 传输是否为 on,请运行 NVUE nv show interface <interface> 命令

cumulus@leaf01:mgmt:~$ nv show interface swp1
                          operational        applied      description
------------------------  -----------------  -----------  ---------------------------------------------------
...
lldp
  dcbx-ets-config-tlv                        on           DCBX ETS config TLV flag
  dcbx-ets-recomm-tlv                        off          DCBX ETS recommendation TLV flag
  dcbx-pfc-tlv                               on           DCBX PFC TLV flag
... 

LLDP-MED 库存 TLV

LLDP-MED 是 LLDP 的扩展,它在端点设备(如 IP 电话和交换机)之间运行。库存管理 TLV 使端点能够向交换机传输有关自身的详细库存信息,例如制造商、型号、固件和序列号。

要启用 LLDP-MED 库存 TLV 传输,请运行 nv set service lldp lldp-med-inventory-tlv on 命令

cumulus@switch:~$ nv set service lldp lldp-med-inventory-tlv on
cumulus@switch:~$ nv config apply

要禁用 LLDP-MED 库存 TLV 传输,请运行 nv unset service lldp lldp-med-inventory-tlv 命令。

要显示 LLDP-MED 库存 TLV 传输是否已启用,请运行 NVUE nv show service lldp 命令

cumulus@leaf01:mgmt:~$ nv show service lldp
                        operational  applied
----------------------  -----------  -------
tx-interval             30           30     
tx-hold-multiplier      4            4      
dot1-tlv                off          off    
lldp-med-inventory-tlv  on           on     
...

应用程序优先级 TLV

DCBX 应用程序优先级 TLV 允许主机在 LLDP 数据包中接收每个应用程序的优先级值。

Cumulus Linux 支持以下应用程序优先级 TLV

  • iSCSI 使用 TCP 端口 3260。
  • NVMe 使用 TCP 端口 4420 和 8009。
  • 使用特定 TCP 端口或 UDP 端口的应用程序。

启用应用程序优先级 TLV 传输

要启用应用程序优先级 TLV 传输,请运行 NVUE 命令以设置

  • 应用程序、TCP 端口或 UDP 端口以及关联的应用程序优先级。如果您未设置应用程序优先级,则 Cumulus Linux 使用默认优先级 0。
  • 要在其上启用应用程序优先级 TLV 传输的接口。在您在指定的接口上应用配置后,LLDP 开始发送带有应用程序优先级 TLV 的 PDU。

  • 您不能在 bond 上启用应用程序优先级 TLV 传输。
  • 您最多可以在交换机上配置 10 个应用程序 TLV 优先级。
  • Cumulus Linux 最多可以在一个 LLDP PDU 中发送 10 个应用程序优先级 TLV。

以下示例将 iSCSI 流量的应用程序优先级设置为 3,在 swp1 上的 LLDP PDU 中发送的应用程序优先级 TLV 中。

cumulus@switch:~$ nv set service lldp application-tlv app iSCSI priority 3
cumulus@switch:~$ nv set interface swp1 lldp application-tlv app iSCSI
cumulus@switch:~$ nv config apply

以下示例将使用 TCP 端口 4420 的 NVMe 流量的应用程序优先级设置为 5,在 swp1 上的 LLDP PDU 中发送的应用程序优先级 TLV 中。

cumulus@switch:~$ nv set service lldp application-tlv app NVME_4420 priority 5
cumulus@switch:~$ nv set interface swp1 lldp application-tlv app NVME_4420
cumulus@switch:~$ nv config apply

以下示例将使用 TCP 端口 8009 的 NVMe 流量的应用程序优先级设置为 7,在 swp1 上的 LLDP PDU 中发送的应用程序优先级 TLV 中。

cumulus@switch:~$ nv set service lldp application-tlv app NVME_8009 priority 7
cumulus@switch:~$ nv set interface swp1 lldp application-tlv app NVME_8009
cumulus@switch:~$ nv config apply

以下示例将使用端口 4217 的 TCP 流量的应用程序优先级设置为 6,在 swp1 上的 LLDP PDU 中发送的应用程序优先级 TLV 中。

cumulus@switch:~$ nv set service lldp application-tlv tcp-port 4217 priority 6
cumulus@switch:~$ nv set interface swp1 lldp application-tlv tcp-port 4217
cumulus@switch:~$ nv config apply

以下示例将使用端口 4317 的 UDP 流量的应用程序优先级设置为 4,在 swp1 上的 LLDP PDU 中发送的应用程序优先级 TLV 中。

cumulus@switch:~$ nv set service lldp application-tlv udp-port 4317 priority 4
cumulus@switch:~$ nv set interface swp1 lldp application-tlv udp-port 4317
cumulus@switch:~$ nv config apply

以下示例将使用端口 3260 的 iSCSI 流量的应用程序优先级设置为 0(默认优先级),在 swp1 上的 LLDP PDU 中发送的应用程序优先级 TLV 中。

cumulus@switch:~$ nv set interface swp1 lldp application-tlv app iSCSI
cumulus@switch:~$ nv config apply

禁用应用程序优先级 TLV 传输

要停止 LLDP 在接口上发送带有应用程序优先级 TLV 的 PDU,请取消设置接口配置;例如

cumulus@switch:~$ nv unset interface swp1 lldp application-tlv
cumulus@switch:~$ nv config apply

以下示例取消设置 iSCSI 的应用程序优先级 3,然后禁用 swp1 上应用程序优先级 TLV 的传输。

cumulus@switch:~$ nv unset service lldp application-tlv app iSCSI priority 3
cumulus@switch:~$ nv unset interface swp1 lldp application-tlv app iSCSI
cumulus@switch:~$ nv config apply

以下示例取消设置使用 TCP 端口 4420 的 NVMe 的应用程序优先级 5,然后禁用 swp1 上应用程序优先级 TLV 的传输。

cumulus@switch:~$ nv unset service lldp application-tlv app NVME_4420 priority 5
cumulus@switch:~$ nv unset interface swp1 lldp application-tlv app NVME_4420
cumulus@switch:~$ nv config apply

以下示例取消设置使用 TCP 端口 8009 的 NVMe 的应用程序优先级 7,然后禁用 swp1 上应用程序优先级 TLV 的传输。

cumulus@switch:~$ nv unset service lldp application-tlv app NVME_8009 priority 7
cumulus@switch:~$ nv unset interface swp1 lldp application-tlv app NVME_8009
cumulus@switch:~$ nv config apply

以下示例取消设置使用 TCP 端口 4217 的应用程序的应用程序优先级 6,然后禁用 swp1 上应用程序优先级 TLV 的传输

cumulus@switch:~$ nv unset service lldp application-tlv tcp-port 4217 priority 6
cumulus@switch:~$ nv unset interface swp1 lldp application-tlv tcp-port 4217
cumulus@switch:~$ nv config apply

以下示例取消设置使用 UDP 端口 4317 的应用程序的应用程序优先级 4,然后禁用 swp1 上应用程序优先级 TLV 的传输

cumulus@switch:~$ nv unset service lldp application-tlv udp-port 4317 priority 4
cumulus@switch:~$ nv unset interface swp1 lldp application-tlv udp-port 4317
cumulus@switch:~$ nv config apply

以下示例取消设置使用 TCP 端口 3260 的 iSCSI 的应用程序优先级 0(默认优先级),并禁用 swp1 上应用程序 TLV 的传输。

cumulus@switch:~$ nv unset interface swp1 lldp application-tlv app iSCSI
cumulus@switch:~$ nv config apply

显示应用程序优先级 TLV 设置

要显示交换机上的所有应用程序优先级 TLV 配置

cumulus@switch:~$ nv show service lldp application-tlv
udp-port
===========
    Port  priority
    ----  --------
    4317  4       

tcp-port
===========
    Port  priority
    ----  --------
    4217  6       
app
======
    AppName    priority
    ---------  --------
    NVME_4420  5       
    NVME_8009  7       
    iSCSI      3

要显示在接口上配置的所有应用程序 TLV

cumulus@switch:~$ nv show interface swp1 lldp application-tlv 
            operational  applied  
----------  -----------  ---------
[udp-port]  4317         4317     
[tcp-port]  4217         4217     
[app]       NVME_4420    NVME_4420
[app]       NVME_8009    NVME_8009
[app]       iSCSI        iSCSI 

要显示 UDP 端口优先级映射

cumulus@switch:~$ nv show service lldp application-tlv udp-port
Port  priority
----  --------
4317  4 

要显示应用程序优先级映射

cumulus@switch:~$ nv show service lldp application-tlv app
AppName    priority
---------  --------
NVME_4420  5       
NVME_8009  7       
iSCSI      3 

要显示 TCP 端口优先级映射

cumulus@switch:~$ nv show service lldp application-tlv tcp-port
Port  priority
----  --------
4217  6

要显示 swp1 的 UDP 端口优先级映射

cumulus@switch:~$ nv show interface swp1 lldp application-tlv udp-port
Ports
-----
4317

要显示为 swp1 启用应用程序优先级 TLV 的应用程序名称

cumulus@switch:~$ nv show interface swp1 lldp application-tlv app
AppName  
---------
NVME_4420
NVME_8009
iSCSI

故障排除

您可以使用 lldpcli 工具查询 lldpd 守护程序以获取邻居、统计信息和其他正在运行的配置信息。有关详细信息,请参阅 man lldpcli(8)

要显示所有端口和接口上的所有邻居

cumulus@switch:~$ sudo lldpcli show neighbors
-------------------------------------------------------------------------------
LLDP neighbors:
-------------------------------------------------------------------------------
Interface:    eth0, via: LLDP, RID: 1, Time: 0 day, 17:38:08
  Chassis:
    ChassisID:    mac 08:9e:01:e9:66:5a
    SysName:      PIONEERMS22
    SysDescr:     Cumulus Linux version 4.1.0 running on quanta lb9
    MgmtIP:       192.168.0.22
    Capability:   Bridge, on
    Capability:   Router, on
  Port:
    PortID:       ifname swp47
    PortDescr:    swp47
-------------------------------------------------------------------------------
Interface:    swp1, via: LLDP, RID: 10, Time: 0 day, 17:08:27
  Chassis:
    ChassisID:    mac 00:01:00:00:09:00
    SysName:      MSP-1
    SysDescr:     Cumulus Linux version 4.1.0 running on QEMU Standard PC (i440FX + PIIX, 1996)
    MgmtIP:       192.0.2.9
    MgmtIP:       fe80::201:ff:fe00:900
    Capability:   Bridge, off
    Capability:   Router, on
  Port:
    PortID:       ifname swp1
    PortDescr:    swp1
-------------------------------------------------------------------------------
Interface:    swp2, via: LLDP, RID: 10, Time: 0 day, 17:08:27
  Chassis:
    ChassisID:    mac 00:01:00:00:09:00
    SysName:      MSP-1
    SysDescr:     Cumulus Linux version 4.1.0 running on QEMU Standard PC (i440FX + PIIX, 1996)
    MgmtIP:       192.0.2.9
    MgmtIP:       fe80::201:ff:fe00:900
    Capability:   Bridge, off
    Capability:   Router, on
  Port:
    PortID:       ifname swp2
    PortDescr:    swp2
-------------------------------------------------------------------------------
Interface:    swp3, via: LLDP, RID: 11, Time: 0 day, 17:08:27
  Chassis:
    ChassisID:    mac 00:01:00:00:0a:00
    SysName:      MSP-2
    SysDescr:     Cumulus Linux version 4.1.0 running on QEMU Standard PC (i440FX + PIIX, 1996)
    MgmtIP:       192.0.2.10
    MgmtIP:       fe80::201:ff:fe00:a00
    Capability:   Bridge, off
    Capability:   Router, on
  Port:
    PortID:       ifname swp1
    PortDescr:    swp1
...

要显示所有端口的 lldpd 统计信息

cumulus@switch:~$ sudo lldpcli show statistics
----------------------------------------------------------------------
LLDP statistics:
----------------------------------------------------------------------
Interface:    eth0
  Transmitted:  9423
  Received:     17634
  Discarded:    0
  Unrecognized: 0
  Ageout:       10
  Inserted:     20
  Deleted:      10
--------------------------------------------------------------------
Interface:    swp1
  Transmitted:  9423
  Received:     6264
  Discarded:    0
  Unrecognized: 0
  Ageout:       0
  Inserted:     2
  Deleted:      0
---------------------------------------------------------------------
Interface:    swp2
  Transmitted:  9423
  Received:     6264
  Discarded:    0
  Unrecognized: 0
  Ageout:       0
  Inserted:     2
  Deleted:      0
---------------------------------------------------------------------
Interface:    swp3
  Transmitted:  9423
  Received:     6265
  Discarded:    0
  Unrecognized: 0
  Ageout:       0
  Inserted:     2
  Deleted:      0
----------------------------------------------------------------------
...

要显示所有端口的 lldpd 统计信息摘要

cumulus@switch:~$ sudo lldpcli show statistics summary
---------------------------------------------------------------------
LLDP Global statistics:
---------------------------------------------------------------------
Summary of stats:
  Transmitted:  648186
  Received:     437557
  Discarded:    0
  Unrecognized: 0
  Ageout:       10
  Inserted:     38
  Deleted:      10

要显示正在运行的 LLDP 配置

cumulus@switch:~$ sudo lldpcli show running-configuration
--------------------------------------------------------------------
Global configuration:
--------------------------------------------------------------------
Configuration:
  Transmit delay: 30
  Transmit hold: 4
  Receive mode: no
  Pattern for management addresses: (none)
  Interface pattern: (none)
  Interface pattern blacklist: (none)
  Interface pattern for chassis ID: (none)
  Override description with: (none)
  Override platform with: Linux
  Override system name with: (none)
  Advertise version: yes
  Update interface descriptions: no
  Promiscuous mode on managed interfaces: no
  Disable LLDP-MED inventory: yes
  LLDP-MED fast start mechanism: yes
  LLDP-MED fast start interval: 1
  Source MAC for LLDP frames on bond slaves: local
  Portid TLV Subtype for lldp frames: ifname
--------------------------------------------------------------------

注意事项

  • Cumulus Linux 不支持 LLDP 附录 E(和附录 D)。
  • 如果您在交换机上同时配置 eth0 IP 地址和环回 IP 地址,则 LLDP 会通告环回 IP 地址作为管理 IP 地址。在这种情况下,Cumulus Linux 交换机的行为更像典型的 Linux 主机,而不是网络设备。