扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:zdnet安全频道 来源:论坛整理 2008年10月14日
关键字: 交换机
故障分析
用户PC所在的办公区距离核心交换机大约有2~3公里,该办公区有两个部门,分属不同的VLAN,因此我们在该办公区放置了安奈特网管交换机AT-8024,中间通过光纤和一对光收发器连接在我们的核心交换机Cisco 6509上面(Cisco 6509配置为:超级引擎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里面。而其他办公区的汇聚层交换机(Cisco 3550)直接通过光模块连接在6509的WS-X6816-GBIC光模块上。
整个网络用了一台IBM X235服务器作为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的命令为:add vlan 6 ports=23 frame=untagged(将23号端口添加到VLAN6里面,注意这里的frame=untagged表示此时不对数据包封帧),而我们在安奈特交换机与6509的级联口(第一号端口)上起了Trunk,同时对数据进行了强制封帧,命令如下:add vlan 1 ports=1-24 frame=tagged(即我们将所有经过级联口转发出去的数据包进行了强制封帧,我们知道安奈特交换机封帧类型为IEEE 802.1Q VLAN标记)。然后我们继续检查6509的配置,进入连接VLAN6和VLAN7的接口,进行该端口的Trunk配置,如下:
6509#conf t |
故障排除
从上面可以看出:该端口不能强制进行IEEE 802.1Q的Trunk设置,其他接口情况都一样。此时想到超级引擎SUP720模块上还有一个接口没有用,看它能不能进行强制封帧。进入该端口的Trunk配置,看到如下信息。
6509#conf t Enter configuration commands, one per line. End with CNTL/Z. 6509(config)#interface gigabitEthernet 5/2 6509(config-if)#switchport trunk ? allowed Set allowed VLAN characteristics when interface is in trunking mode encapsulation Set trunking encapsulation when interface is in trunking mode native Set trunking native characteristics when interface is in t runking mode pruning Set pruning VLAN characteristics when interface is in trunking mode |
下画线标示出的比在gigabitEthernet 3/48接口上看到的多了一个encapsulation选项,由此可见,在超级引擎模块的接口上可以强制进行IEEE 802.1Q的Trunk设置。
输入如下命令:
6509(config-if)#switchport trunk encapsulation ?得到: dot1q Interface uses only 802.1q trunking encapsulation when trunking isl Interface uses only ISL trunking encapsulation when trunking negotiate Device will negotiate trunking encapsulation with peer on interface 继续: 6509(config-if)#switchport trunk encapsulation dot1q 回车; 6509(config-if)#end 6509#write Building configuration... [OK] |
*注:该6509所用的IOS版本是Version 12.2(17a)SX。
我们将跳线接到该接口上,再来测试网络,原来的问题已不复存在。这两个VLAN内的用户访问网页恢复正常,带有附件的邮件又可以轻松发送了。
经验总结
由于Cisco的6509 核心交换机上48口的快速交换电模块是默认对干线进行IEEE 802.1Q封帧的,而我们的安奈特网管交换机强制对干线进行IEEE 802.1Q封帧,这是两个厂家的产品,因此可能会导致数据包传输进行协议的协商时不能很好匹配的情况。
此时我们又想到,在出现这个问题之前很长一段时间,我们的网络都是正常的,而当时我们的做法是:一开始只有收发器接在6509 超级引擎SUP720模块gigabitEthernet 5/2口上,我们在此接口上进行了强制IEEE 802.1Q封帧,后来由于48口的快速交换电模块有空余接口,我们就将其改在了gigabitEthernet 3/48口上,使用了默认IEEE 802.1Q封帧,但网络使用一直正常。这次我们对网络进行了一些调整,重新启动了一次我们的核心交换机,结果就出现了这个问题。这说明如果先将超级引擎强制进行IEEE 802.1Q的Trunk设置,待网络稳定后,再将跳线接回gigabitEthernet 3/48接口,此时Cisco 6509 将使用默认的IEEE 802.1Q封帧,同安奈特进行干线协议的协商,这样数据包在传输时进行协议的协商就不会出现问题,VLAN6和VLAN7就可以正常上网。我们后来又这样试验了一下,事实证明确实如此。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者