交换机配置二层透传后友商设备PVST震荡问题

发布时间:  2016-08-21 浏览次数:  424 下载次数:  0
问题描述

组网描述:A/B/C/D四台5700EI交换机接入客户的网络用于透传PVST+等二层协议报文,四台设备分别有一个接口连接思科交换机。A设备和C设备为一个Tunnel,配置“port default vlan 1557”在vlan1557中透传;B设备和D设备为一个Tunnel配置“port default vlan 1558”在vlan1558中透传。详细组网图如下:

 

问题描述:1.当接入BD交换机后发现A设备的CPU也会上升,当shutdown B交换机的0/0/2A设备的CPU利用率也会降到之前的水平;2.当接入BD交换机后AC tunnel的友商设备PVST+会震荡;

处理过程

1. 查看四台交换机的全局配置以及连接友商设备的物理接口配置:

#

l2protocol-tunnel lacp group-mac 0100-5e00-0015

l2protocol-tunnel lldp group-mac 0100-5e00-0017

l2protocol-tunnel vtp group-mac 0100-5e00-0016

l2protocol-tunnel cdp group-mac 0100-0ccd-cdd0

l2protocol-tunnel udld group-mac 0100-5e00-0013

l2protocol-tunnel pvst+ group-mac 0100-0ccd-cdd0

#

bpdu mac-address 0100-0ccc-cccd

#

interface GigabitEthernet0/0/1

port link-type dot1q-tunnel

port default vlan 1557  //AC tunnel配置透传vlan1557BC tuennl配置透传vlan1558

stp disable

l2protocol-tunnel hgmp stp lacp eoam3ah lldp gmrp gvrp vtp cdp dtp enable

l2protocol-tunnel udld pagp pvst+ sstp enable

undo ntdp enable

2.         二层协议透传的原理是在将报文协议报文上送到CPU进行替换目的MAC将之变成组播报文进行转发,在tunnel的终点处再将目的MAC替换成协议报文应有的MAC地址;

3.         不同的tunnel应该配置不同的全局替换MAC,否则中间设备也会将透传的报文抓到CPU进行软转发,因为这种场景没有办法判断该设备是不是tunnel的终点,如果处理报文过多会导致CPU升高。该组网环境中不同的tunnel配置相同替换MAC,所以从B设备过来已经替换过目的MAC的协议报文达到A设备也会被抓到CPU进行处理,加入透传VLAN1558的接口只有0/0/2 0/0/3且都没有配置二层透传,所以报文会进行软转发,进而导致CPU升高。

4. C交换机上接口0/0/10/0/3分别做流量统计,发现在该交换机上有丢包计数,原因是CPU处理报文数有限制,超时处理限制外的报文都会被丢弃。而PVST+报文在交换机上能够被直接硬件透传,所以在该场景上不需要对PVST+报文进行替换MAC处理。

根因

交换机CPU处理上送的协议报文数有限制,超时处理限制外的报文都会被丢弃。

PVST+报文在交换机上能够被直接硬件透传,所以在该场景上不需要对PVST+报文进行替换MAC处理。

解决方案

在四台交换机上去使能“bpdu mac-address 0100-0ccc-cccd

建议与总结

交换机对BPDU报文都是直接终结的,在需要对bpdu报文透传的场景大家想到的首先是二层协议透传;

但二层协议透传需要在两端将BPDU报文上送到CPU进行封装解封装处理,加重CPU负载的同时处理效率也较低。

S交换机支持通过命令行将BPDU的目的MAC设置为非BDPU 目的MAC地址,即S交换机对此报文直接当做普通数据报文进行二层透传处理,无效率问题。

可以通过display bpdu mac-address查看目前设备将哪些目的MAC的报文当做BPDU报文进行处理。

END