跳过导航链接 | |
退出打印视图 | |
Oracle Solaris 管理:网络接口和网络虚拟化 Oracle Solaris 11 Information Library (简体中文) |
LLDP 代理传送和接收 LLDP 数据包(也称为协议数据单元 (protocol data units, PDU))。代理在两种类型的数据存储中管理和存储这些数据包中包含的信息:
本地管理信息库,即本地 MIB。此数据存储包含与在其上启用 LLDP 代理的特定链路相关的网络信息。本地 MIB 既包含公用信息,也包含独特信息。例如,机箱 ID 是在系统上的所有 LLDP 代理之间共享的公用信息。不过,系统的各个数据链路的端口号是不同的。因此,每个代理管理它自己的本地 MIB。
远程 MIB。此数据存储中的信息与本地网络上的其他系统相关。
LLDP 代理可以配置为在以下模式下运行:
在仅传送 (txonly) 模式下,代理不处理传入 LLDP 数据包。因此,远程 MIB 为空。
在仅接收 (rxonly) 模式下,代理仅处理传入 LLDP 数据包并将信息存储在远程 MIB 中。然而,不从本地 MIB 传送信息。
在传送和接收 (both) 模式下,代理同时传送和接收 LLDP 数据包。两种类型的 MIB 都会主动使用。此模式还会自动启用底层链路支持的 DCB 功能。
在禁用 (disable) 模式下,代理不存在。
此过程在您的系统上第一次启用 LLDP。
# pkg install lldp
# svcadm enable svc:/network/lldp:default
# lldpadm set-agentprop -p mode=value agent
其中 value 可以是运行模式之一,agent 使用在其上启用 LLDP 的数据链路的名称。
注 - lldpadm 命令的子命令可以缩写形式键入,以便于使用该命令。例如,对于 lldpadm set-agentprop,也可键入 lldpadm set-ap。请参阅 lldpadm(1M) 手册页,了解子命令及其缩写形式。
# lldpadm show-agentprop -p mode agent
# svcadm disable svc:/network/lldp:default
示例 16-1 在多个数据链路上启用 LLDP
在本示例中,一个系统有两个数据链路,即 net0 和 net1,并且对每个 LLDP 代理在不同模式下启用了 LLDP。一个代理在运行时可以同时传送和接收 LLDP 数据包,另一个代理仅传送 LLDP 数据包。
# svcadm enable svc:/network/lldp:default # lldpadm set-agentprop -p mode=both net0 # lldpadm set-agentprop -p mode=txonly net1
LLDP 代理在 LLDP 数据包或 LLDPDU 中传送系统和连接信息。此类数据包将包含以类型长度值 (Type-Length-Value, TLV) 格式单独格式化的信息单元。因此,各信息单元也称为 TLV 单元。某些 TLV 单元是强制性的,在缺省情况下,在启用 LLDP 时它们就包含在 LLDP 数据包中。强制性 TLV 单元如下所示:
机箱 ID
端口 ID
TTL(生存时间)
PDU 的结束
机箱 ID 是由 hostid 命令生成的信息,而端口 ID 是物理 NIC 的 MAC 地址。根据链路的数量,可以在单个系统中启用多个 LLDP 代理。机箱 ID 和端口 ID 的组合唯一标识了代理,将其与系统上的其他代理区分开来。
您无法使用 lldpadm 命令从 LLDP 数据包中排除任何强制性 TLV 单元。
可以将可选的 TLV 单元添加到 LLDP 数据包。供应商可通过这些可选 TLV 单元插入要通告的特定于供应商的 TLV 单元。TLV 单元由各个组织唯一标识符 (organization unique identifiers, OUI) 标识,并且根据这些 OUI 是 IEEE 802.1 规范还是 IEEE 802.3 规范而具有不同的类型。LLDP 代理属性是针对每个 TLV 类型创建的,因此您可以为每个类型设置值。
下表列出了 TLV 类型或组、其对应的属性名称、每个属性的 TLV 单元及其说明。
表 16-1 可以为 LLDP 代理启用的 TLV 单元
|
您配置上述任一属性以指定在启用 LLDP 时要包含在数据包中的 TLV 单元。
此过程显示如何在 LLDP 数据包中添加要通告的 TLV 单元。要为 LLDP 数据包设置 TLV 单元,您需要使用 lldpadm set-agentprop 子命令。
此子命令还用于显示已为每个属性设置的 TLV 单元。
# lldpadm show-agentprop agent
如果不指定属性,此子命令将显示所有 LLDP 代理属性及其 TLV 值。
# lldpadm set-agentprop -p property[+|-]=value[,...] agent
+|- 限定符用于接受多个值的属性。这些限定符使您能够在列表中添加 (+) 或删除 (-) 值。如果您不使用限定符,则您设置的值将取代以前为该属性定义的所有值。
# lldpadm show-agentprop -p property agent
示例 16-2 将可选 TLV 单元添加到 LLDP 数据包
在本示例中,LLDP 代理 net0 已配置为在数据包中通告 VLAN 信息。您希望要通告的信息还包括系统功能、链路聚合和网络虚拟化信息。不过,您希望从数据包中删除 VLAN 说明。
# lldpadm show-agentprop net0 # lldpadm set-agentprop -p dot1-tlv+=linkaggr net0 AGENT PROPERTY PERM VALUE DEFAULT POSSIBLE net0 mode rw both disable txonly,rxonly,both, disable net0 basic-tlv rw sysname, none none,portdesc, sysdesc sysname,sysdesc, syscapab,mgmtaddr, all net0 dot1-tlv rw vlanname, none none,vlanname,pvid, pvid,pfc linkaggr,pfc,appln, all net0 dot3-tlv rw max-framesize none none, max-framesize, all net0 virt-tlv rw none none none,vnic,all # lldpadm set-agentprop -p basic-tlv+=syscapab,dot1-tlv+=linkaggr,virt-tlv=vnic net0 # lldpadm set-agentprop -p dot1-tlv-=pfc net0 # lldpadm show-agentprop -p net0 AGENT PROPERTY PERM VALUE DEFAULT POSSIBLE net0 mode rw both disable txonly,rxonly,both, disable net0 basic-tlv rw sysname, none none,portdesc, sysdesc, sysname,sysdesc, syscapab syscapab,mgmtaddr, all net0 dot1-tlv rw vlanname, none none,vlanname,pvid, pvid, linkaggr,pfc,appln, linkaggr all net0 dot3-tlv rw max-framesize none none, max-framesize, all net0 virt-tlv rw vnic none none,vnic,all