Print

H3C S12500X-AF提示LLDP_PVID_INCONSISTENT的解决方案

2017-04-23发表

设备使用R1138P01+H09版本,设备接口与H友商的设备对接,H友商接口使用route模式。

我司设备上不断打印如下的告警,客户想屏蔽掉该告警:

H3C-125X-AF%%10LLDP/5/LLDP_PVID_INCONSISTENT:-DevIP=10.169.125.231-Slot=0;PVIDmismatch discovered on Ten-GigabitEthernet0/0/26(PVID1),with NE40E-XX-01 GigabitEthernet4/0/14(PVID 0).


一般组网情况下,要求链路两端的PVID保持一致。设备会对收到的LLDP报文中的PVID TLV进行检查,如果发现报文中的PVID与本端PVID不一致,则认为网络中可能存在错误配置,LLDP会打印日志信息,提示用户。

但在一些特殊情况下,可以允许链路两端的PVID配置不一致。例如为了简化接入交换机的配置,各接入交换机的上行口采用相同的PVID,而对端汇聚交换机的各接口采用不同的PVID,从而使各接入交换机的流量进入不同VLAN

若是想消除上述log对于S12500X-AF设备来说有两种解决方案。

升级版本:

新版本新增了关闭LLDPPVID不一致检查的功能。新增命令行如下:

<Sysname> system-view

[Sysname] lldp ignore-pvid-inconsistency

缺省情况下,LLDP会对接口接收报文中的PVID TLV进行检查,如果发现报文中PVID与本端不一致,LLDP会打印日志信息,提示用户。但在一些特殊情况下,可以允许链路两端的PVID配置不一致,此时可以关闭LLDPPVID不一致性检查功能。

打补丁解决,针对不能升级的局点可以直接部署补丁解决(无需修改任何配置)。

但是现场已经部署了H09补丁了仍报如上的log,分析具体原因如下:

首先,了解补丁的实现方式:

(1)第一次收到报文中的pvid不一致时(比如vlan 2),打印Log

(2)后续报文pvid还是不一致并且与上一次相同(还是vlan2)不再打印log

(3)后续报文pvid还是不一致并且改变了(比如vlan5),也不再打印。

这样考虑的原因是:端口pvid频繁切换时(可能恶意攻击), 防止lldp频繁打印log

基于上述实现,部署补丁后每个端口应该是仅仅打印一次log,现场是频繁的打印,因此需要具体分析原因。

从下面display命令的显示结果来看本端的PVID1,对端发送报文中携带的PVID0

[H12510X-01]display lldp local-information interface te0/0/43

LLDP local-information of port 43[Ten-GigabitEthernet0/0/43]:

 Port ID type        : Interface name

 Port ID             : Ten-GigabitEthernet0/0/43

 Port description    : NE40E-02-G6/0/14

……

Port VLAN ID(PVID)  : 1

 Port and protocol VLAN ID(PPVID)  : 0

 ……

[H12510X-01]display lldp neighbor-information int Ten-GigabitEthernet 0/0/43 verbose

LLDP neighbor-information of port 43[Ten-GigabitEthernet0/0/43]:

LLDP agent nearest-bridge:

 LLDP neighbor index : 1

 Update time         : 225 days, 0 hours, 34 minutes, 37 seconds

……

Port VLAN ID(PVID)  : 0

 Port and protocol VLAN ID(PPVID)  : 0

……

对端友商设备发过来的LLDP报文中PVID0,协议定义值为0表示不支持,这类报文比较特殊,补丁中未做判断处理,可以在友商侧关闭发送携带这类TLV的报文来消除打印,升级版本+配置ignore-pvid-inconsistency的方式也可以解决。

友商命令:

lldp tlv-disable

命令功能

lldp tlv-disable命令用来配置接口上禁止发布的TLVType Length Value)类型。

undo lldp tlv-disable命令用来配置接口上允许发布的TLV类型。

缺省情况下,接口上允许发布除DCBX TLVProtocol Identity TLV外的所有类型的TLV

这里说明下“协议定义值为0表示不支持”是指0这个数值表示不支持,并非对端设备实现上有问题。

因为在路由口的时候端口上实际上是没有vlan 这个概念的,H3C的设备当切换为route端口的时候,软件上做了判断,lldp报文里面就自动的不会携带PORT vlan ID tlv了。

802.1AB-2009_lldp中描述如下:


配置对端设备,使其不携带Port VLAN ID这个TLV