网络讲堂:交换机封帧引发故障解决方案

分享到:
点击量: 214349

    单位一个办公区所在的两个部门VLAN出现了一个很奇怪的问题,因特网上部分网站可以正常访问,而部分网站又无法访问;通过Outlook或者Foxmail接收邮件正常,发送不带附件的小邮件也正常,但是发送大邮件或者含有附件的邮件时就不能正常发送了。单位其他办公区上网正常。

    用户PC所在的办公区距离核心交换机大约有2~3公里,该办公区有两个部门,分属不同的VLAN,因此我们在该办公区放置了安奈特网管交换机AT-8024,中间通过光纤和一对光收发器连接在我们的核心交换机Cisco6509上面(Cisco6509配置为:超级引擎SUP720,一个16口的千兆位光模块WS-X6816-GBIC,一个48口的快速交换电模块WS-X6548-RJ-45)。在连接光收发器的6509和安奈特交换机的相应端口上起了Trunk,安奈特交换机上面划分了两个VLAN,分别是172.25.6.0/24(以下简称VLAN6)和172.25.7.0/24(以下简称VLAN7),两个部门的机器分别接在各自的VLAN里面。而其他办公区的汇聚层交换机(Cisco3550)直接通过光模块连接在6509的WS-X6816-GBIC光模块上。

    整个网络用了一台IBMX235服务器作为NAT和DHCP服务器,所有VLAN的数据先到NAT做地址转换以后再通过边缘路由器访问因特网。

    遇到上述奇怪问题,我们一开始怀疑是NAT和6509的设置出了问题,但是经检查,VLAN6和VLAN7的配置和其他办公区的路由配置是完全一样的。因为除这两个VLAN外的其他VLAN上网完全正常,于是我们采用了以下解决步骤。

    (1)将VLAN6和VLAN7的VLAN信息在安奈特网管交换机上全部删除,将所有端口都划在上网正常的VLAN1里面,这下它们完全和VLAN1一样了。但是问题依然如故,而其他办公区域VLAN1里面的用户上网仍然正常。

    (2)从步骤(1)推断问题不在VLAN的划分上,我们开始怀疑是光收发器或者安奈特交换机有问题,于是将其他办公区使用正常的光收发器或者安奈特交换机换上去,问题依旧。

    (3)难道是链路质量的问题?赶紧找来两台PC,一台接在安奈特交换机上,将光收发器接6509的网线拔下来,直接接在另外一台机器上,配置同一网段的IP,发*大的数据包65500b互ping,但是结果让我们失望,延时只有几个毫秒,这说明链路没有问题。

    (4)就在我们“黔驴技穷”的时候,我们再次把光收发器和6509连接好,仍然用接在安奈特上的PC机ping设在6509上的该VLAN的网关172.25.6.210,问题出现了,用小包ping时,基本上没有延时,但是用大包(接近18024b,Cisco所支持的*大数据包)ping时出现了丢包,问题肯定出在这里了。

    (5)重新检查安奈特和6509及NAT服务器的配置,我们发现这样一个问题:在安奈特上配置VLAN6和VLAN7,并将相应端口添加到VLAN的命令为:addvlan6ports=23frame=untagged(将23号端口添加到VLAN6里面,注意这里的frame=untagged表示此时不对数据包封帧),而我们在安奈特交换机与6509的级联口(**号端口)上起了Trunk,同时对数据进行了强制封帧,命令如下:addvlan1ports=1-24frame=tagged(即我们将所有经过级联口转发出去的数据包进行了强制封帧,我们知道安奈特交换机封帧类型为IEEE802.1QVLAN标记)。

然后我们继续检查6509的配置,进入连接VLAN6和VLAN7的接口,进行该端口的Trunk配置,如下:

    6509#conft

    Enterconfigurationcommands,oneperline.EndwithCNTL/Z.

    6509(config)#interfacegigabitEthernet3/48—进入级联接口

    6509(config-if)#switchporttrunk?—查看起Trunk后的情况

    allowedSetallowedVLANcharacteristics

    wheninterfaceisintrunkingmodenativeSettrunking

    nativecharacteristicswheninterfaceisintrunkingmodepruningSet

    pruningVLANcharacteristicswheninterfaceisintrunkingmode

    故障排除

    从上面可以看出:该端口不能强制进行IEEE802.1Q的Trunk设置,其他接口情况都一样。此时想到超级引擎SUP720模块上还有一个接口没有用,看它能不能进行强制封帧。进入该端口的Trunk配置,看到如下信息。

    6509#conft

    Enterconfigurationcommands,oneperline.EndwithCNTL/Z.

    6509(config)#interfacegigabitEthernet5/2

    6509(config-if)#switchporttrunk?

    allowedSetallowedVLANcharacteristicswheninterfaceisintrunkingmode

    encapsulationSettrunkingencapsulationwheninterfaceisintrunkingmode

    nativeSettrunkingnativecharacteristicswheninterfaceisintrunkingmode

    pruningSetpruningVLANcharacteristicswheninterfaceisintrunkingmode

    下画线标示出的比在gigabitEthernet3/48接口上看到的多了一个encapsulation选项,由此可见,在超级引擎模块的接口上可以强制进行IEEE802.1Q的Trunk设置。

 

    输入如下命令:

    6509(config-if)#switchporttrunkencapsulation?得到:

    dot1qInterfaceusesonly802.1qtrunkingencapsulationwhentrunking

    islInterfaceusesonlyISLtrunkingencapsulationwhentrunking

    negotiateDevicewillnegotiatetrunkingencapsulationwithpeeroninterface

    继续:

    6509(config-if)#switchporttrunkencapsulationdot1q回车;

    6509(config-if)#end

    6509#write

    Buildingconfiguration...

    [OK]

    *注:该6509所用的IOS版本是Version12.2(17a)SX。

    我们将跳线接到该接口上,再来测试网络,原来的问题已不复存在。这两个VLAN内的用户访问网页恢复正常,带有附件的邮件又可以轻松发送了。

    经验总结

    由于Cisco的6509核心交换机上48口的快速交换电模块是默认对干线进行IEEE802.1Q封帧的,而我们的安奈特网管交换机强制对干线进行IEEE802.1Q封帧,这是两个厂家的产品,因此可能会导致数据包传输进行协议的协商时不能很好匹配的情况。

    此时我们又想到,在出现这个问题之前很长一段时间,我们的网络都是正常的,而当时我们的做法是:一开始只有收发器接在6509超级引擎SUP720模块gigabitEthernet5/2口上,我们在此接口上进行了强制IEEE802.1Q封帧,后来由于48口的快速交换电模块有空余接口,我们就将其改在了gigabitEthernet3/48口上,使用了默认IEEE802.1Q封帧,但网络使用一直正常。这次我们对网络进行了一些调整,重新启动了一次我们的核心交换机,结果就出现了这个问题。这说明如果先将超级引擎强制进行IEEE802.1Q的Trunk设置,待网络稳定后,再将跳线接回gigabitEthernet3/48接口,此时Cisco6509将使用默认的IEEE802.1Q封帧,同安奈特进行干线协议的协商,这样数据包在传输时进行协议的协商就不会出现问题,VLAN6和VLAN7就可以正常上网。我们后来又这样试验了一下,事实证明确实如此。