Keywords:Catalyst 2900/3500XL Limitation PVST VLAN STP
VLAN 是个好东西呀,:-)。 主干网搭起来了,今天这个部门/客户要接进来,给他建一个VLAN;明天那个部门/客户接进来,再加一个VLAN。用户在自己的VLAN里无忧无虑、自得其乐,如果需要访问别的VLAN或者想让别的什么VLAN用户访问,给他加上路由,写个访问控制列表什么的,都很方便。
但是VLAN也增加了网络的复杂性,使得排错变得更困难。
今天一位客户来电说,他把一台3524上的f0/23端口指定到VLAN 85, 接一台服务器10.85.1.1,可是怎么也Ping 不通别的VLAN的机器。
首先,Show cdp nei检查一下线路, Ping 交换机的管理地址,也没问题。检查Trunk、Interface VLAN 85的状态,没问题。
有时候VTP不同步可能会导致这样的现象,就是管理地址是能ping 通的,但是下面接的机器都不通。所以做一个测试:在VTP Server上新建一个Test VLAN看看能不通传到下面...OK!
究竟是什么原因呢?
到核心交换机6509的路由模块MSFC去ping 这台服务器,timeout, show arp | begin 10.85.1.1:
Internet 10.85.1.1 0 Incomplete ARPA
解释不到这台服务器的MAC地址。由于MSFC的端口接到各个VLAN,它跟这台服务器之间是纯二层的网络,没有解释到服务器的MAC,说明问题出在第二层上。
查看服务器的网卡地址,然后登录到6509的交换引擎,show cam xx-xx-xx-xx-xx-xx, 没有学习到。转到3524, show mac inter f0/23, 这个地址是学习到了的,为什么没有传到6509上呢?
在6509交换引擎上打命令检查生成树:show spantree 85, 意外发现连接到3524的端口处于blocking的状态!
为什么3524上VLAN85的STP是Disabled的呢?查看配置文件,有以下语句:
no spanning-tree vlan 85
no spanning-tree vlan 86
no spanning-tree vlan 87
试图配置交换机,用命令spanning-tree vlan 85允许VLAN 85的生成树,配完show run一看,还是老样子!
查看文档,原来3500系列交换机同时只支持250个VLAN,且只能支持在64个VLAN上运行STP(PVST)。把这个交换机上未使用的VLAN 30的生成树关掉:no spanning-tree vlan 30,再spanning-tree vlan 85, 生成树起来了。折腾一番,把交换机重启一下之后,通了。
如果网络里使用的是2924交换机,只支持64个VLAN。VLAN数目超出时就会碰到交换机自动从VTP Client转成VTP Transparent模式的现象,然后需要手工建立VLAN,因为它不能存贮VTP 域中定义的所有VLAN。
因此VLAN多了也是个麻烦。如果没有必要,还是把VLAN控制在64(含5个保留的)个以内比较好。如果是ISP,确实需要处理很多VLAN,可以考虑使用新的 VLAN TUNNEL 技术将客户的多个VLAN封装到ISP的一个VLAN之中。很难想象在一台交换机上运行1000个生成树的实例...所以还是新的: 802.1W(快速生成树)和 802.1S(多生成树)解决方案有比较良好的扩展性。
以上这些技术都在Catalyst 3550交换机和新版的CatOS中实现了,还有一个比较有意思的标准协议是802.1x(基于端口的认证),这些协议的成功推出是促使Cisco放弃ISL,回归工业标准的原因。