VLAN无线上网 交换机封帧引发故障解决方案
单位一个办公区所在的两个部门vlan出现了一个很奇怪的问题,因特网上部分网站可以正常访问,而部分网站又无法访问;通过outlook或者foxmail接收邮件正常,发送不带附件的小邮件也正常,但是发送大邮件或者含有附件的邮件时就不能正常发送了。单位其他办公区上网正常。
故障分析
用户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
enter configuration commands, one per line. end with cntl/z.
6509(config)#interface gigabitethernet 3/48 —进入级联接口
6509(config-if)#switchport trunk ? —查看起trunk后的情况
allowed set allowed vlan characteristicswhen interface is in trunking modenative set trunking
native characteristics when interface is in trunking modepruning set
pruning vlan characteristics when interface is in trunking mode
故障排除
从上面可以看出:该端口不能强制进行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就可以正常上网。我们后来又这样试验了一下,事实证明确实如此。
上一篇: PHP实现非阻塞模式的方法分析
下一篇: 路由器基础知识:全面解读负载均衡技术