转载自 Crownless    转载于2009年03月14日 09:45 阅读(5) 评论(1) 分类: 网络工程 权限: 公开
今天排了一个错,非常开心!其实严格来说,这并不算排错,准确来说应该是做了些优化吧.具体情况是这样的,局域网共10台交换机(其实还有1台,不过作为财务专用,我是不能登陆的),除了核心层交换机外,其余依次为3台2950-48堆叠;1台3550-48;一台3550-48加两台3550-24堆叠;一台3550-48加一台3550-24堆叠。

贺工(姓贺的高级网络工程师)在和我闲聊时对我说,那三台3550-24不知道为什么总不能与其他交换机同步(VLAN信息的同步),导致每次更改VLAN信息时都要先手动去配。后来我见反正没什么事做,就自己拿着手提去弄了几下,没想到还真被我弄好了,真是爽到家了!

首先分别TELNET进每台交换机,SHOW CDP ENTRY * 画出网络的拓扑图。这里我比较得意的是,他们一开始还要给我去找拓扑图,没想到我会用SHOW CDP来自己画,腾科实习的经验在这里帮了我一个大忙。

接着SHOW VTP STATUS看下VTP管理域具体的信息 
 
发现只有11个VLAN(在作为VTP SERVER的核心层交换机上有16个),为什么会这样呢?肯定是VTP信息的不同步。为什么会不同步呢?我的思路大概是这样的

1、VTP域名与密码是否相同。于是我在不同的交换机上SHOW VTP PASSWORD,后来却发现有的交换机上是不支持这条命令的,郁闷之下只好全部都先NO VTP PASSWORD ,然后再重新设回一样的。通过这个办法,解决了其中一台的同步问题,那另外两台呢?看来问题不止这么简单……

2、我当时还觉得VTP V2-MODE和PRUNING(修剪)的不统一可能会造成不能同步,但事实上并非如此,只需要在SERVER上启用PRUNING和V2-MODE就行了,不需要每台机都启用。而事实上,作为CLIENT的交换机也无法启用PRUNING和V2-MODE。

3、最后我把目光放在configuration revision上,这东西好象很熟悉耶,是什么?是配置修改编号。我突然想起在ATEN这本书的某个角落上写过,说如果要把配置修改编号归零的话,只需要先把VTP模式变成透明模式,然后再改回CLIENT模式就行了。为什么要改配置修改编号?因为当前CLIENT的配置修改编号比SERVER的高,那么收到的VTP信息后,CLIENT会查看配置修改编号,发现没有自己的高之后就会丢弃VTP信息,那自然就无法“学习”到核心交换机上的VLAN信息啦。排错关键是要有思路,思路清晰后,命令很简单: 
 
先vtp mode transparent把模式改为透明模式,如图,配置修改编号变为0(可以对比前一张图,当时是42)然后重新进入vlan database,再通过vtp mode client把模式变回client就OK了。 
 

如图,再次SHOW VTP STATUS时发现,已经能成功学到核心交换机的VLAN信息,现在一共有16个VLAN,配置修改编号是8。同时大家可以注意最下面一行,configuration last modified by 192.168.0.1,说明这更新来自于192.168.0.1(正是核心交换机VLAN1的IP地址)。再对比上一张图的最后一行,之前并非如此。通过这样对比,问题终于得到圆满的解决!

剩下最后一台,依样画葫芦,使它也学习到核心交换机的VLAN信息,问题迎刃而解~ 
 

如图,一开始该交换机上的VLAN只有9个,把配置修改编号归零后,可以得到核心交换机的VLAN信息,变为16个VLAN,配置修改编号为8。


总结:之前所谓的“3550-24不能收到VTP更新信息”只是一个巧合,刚好三台3550-24都在设置上出现了一点差错,所以才使VLAN信息不能同步,跟交换机的型号是没有关系的。同一个VTP域里VLAN信息不同步,最可能的问题是配置修改编号和VTP PASSWORD,可以通过show vtp status查错,然后再修改VTP密码和把配置修改编号归零,最终解决问题。

突然发现上面有个笔误,在vlan database模式下,修改VTP模式命令是vtp server/client/transparent;而在config模式下,命令则是vtp mode server/cilent/transparent.其中在VLAN DATABASE下的所有交换机都支持,而在CONFIG模式下的那条命令则只有部分交换机支持.