前两日天气清朗,我还未来得及享受这难得的凉爽秋日,却一度被一个交换机的配置问题整得差点抓狂,心情也随之低落。
经过两天艰苦卓绝的折腾,终于把问题搞定了,同时也总结出了经验教训。
在此含泪写下填坑记录,也好让小伙伴们少走弯路。
废话不多说,说多了都是泪(累),先来介绍一下问题背景。
手头上有两台思科交换机,编号暂且一台命名为 21
,另一台命名为 22
。
交换机 21
级联到了主交换机上,而交换机 22
则级联到了 21
上,也就是说,它们之间相当于是串联关系。
并且,两者之间配置为 port-channel
的冗余连接,交换机 21
的23号和24号端口分别连接到交换机 22
的23号和24号端口上。
如图:
整个网络中存在多个VLAN,而这次需要在交换机 22
上划分一个端口用于 vlan11
的通讯。
在划分端口前需要先说明一点的是,网络中已经统一了 vtp
配置信息。
啥叫 VTP ?
VTP就是思科的
VLAN TRUNK PROTOCOL
协议,也就是说,只要在网络中主交换机上设定vlan
信息,那么网络中所有的交换机会自动学习和转发这些vlan
配置信息,相当简便省力的设计啊。
所以配置操作没得说很简单,直接在交换机 22
上把某个端口划分给 vlan11
即可,命令如下:
Switch[conf]#Switchport access vlan 11
命令挺简单,但是设定好交换机后,发现分配的这个端口无法通讯,恶梦开始了!
一、先从基本配置入手,检查 vtp
配置信息
在出现问题之前一切都是那么的正常,没有听说过任何故障。
不过在此之前,这台交换机上的确没有分配过其他 vlan
信息,也就是说,都是跑的默认 vlan1
的通讯,所以也不能说它的配置就一定是正确的。
看样子得排查一下,会不会是 vlan
配置有问题呢,遂查看并对比各交换机上的 vtp
同步信息。
Switch#show vtp status
主交换机上是这样。
交换机 21
上是这样。
交换机 22
上是这样。
很明显可以看出,交换机 22
并没有成功同步到 vtp
信息。
怎么就没成功同步呢?
至少有两点。
你看哈,首先,配置信息最后的修改记录和时间没有统一。
Configuration last modified by x.x.x.x at xx-xx-xx xx:xx:xx
其次,是修订版本,前两者都是4,而有问题的后者则是2,显然也没有统一。
Configuration Revision:xx
看来还真有问题,怎么会这样,那是不是配置不对呢?
于是逐一确认各个交换机的配置。
1、VTP域名
swith#vtp domain XXXX
检查结果:统一设定,已经区分了大小写,名称OK没有问题。
2、VTP密码
Switch#show vtp password #查看密码
Switch[conf]#vtp password xxxxxx #设定密码
检查结果:通过查看密码命令,对比确认密码也是相同的,没有问题。
3、VTP模式
VTP模式一共有三种 Server/Client/Transparent
。
通过命令 show vtp status
也确认了除主交换机设定为 Server
外,其余交换机均设定为 Client
,同时也确认没有设定为 Transparent
。
4、修订版本
以上配置一切OK,而且修订版本也算正确(Server
版本号大于等于 Client
版本号)。
此时此刻我有些冒汗,抓了抓脑袋上仅有的几根秀发,心想这特喵究竟是哪里出了问题呢?!
二、检查 Trunk
链路是否正常允许通过 VLAN
既然 vtp
设定一切正常,那么会不会是 vlan11
信息没有被允许通过 trunk
呢?
我们都知道 vlan1
作为默认 vlan
,是允许通过任何链路的,而除了它之外手动建立的其他 vlan
就可能会有被限制通行的可能。
这怎么可能,之前都用得很正常啊,呵呵哒,但问题摆在这儿了啊!
想到这儿,我被自己怼了,于是赶紧开始了检查。
登录到交换机 22
上,输入查看命令。
Switch#show interfaces trunk
没问题啊!
port-channel
端口可以通过 vlan
的 1
和 11
。
通过输入相同的命令来对照其他交换机的输出,结果出奇的一致,并没有什么特殊之处。
为什么?为什么?为什么?
我的头上出现了,哦别误会那不是我的头发,是三个大问号!
难道说 trunk
链路设定有问题?不能吧?
又通过一番命令检查级联配置,虽说是按照双线做成两个冗余端口的相对复杂一些的方式,但其配置并无任何不妥之处。
我低下了高昂的头颅,再次陷入了迷茫的我并没有屈服,只是想找块板砖!
三、揭晓谜底,保你大跌眼镜
某位哲人说过,迷茫解决不了任何问题,就是干!
很快,我重新冷静了下来(可能是头发少的缘故吧),再一次反复推演排除,最后判断应该是上一级交换机 21
之所以没有把VTP信息正确传递/同步到下一级交换机 22
上,就是因为两者之间的连接出了问题!
怎么感觉都像是废话,之前的链路检查不是已经看过了?
嗯,不过只能是死马当活马医吧,试试看就知道了!
于是我在这两台交换机上各打了一条神奇的命令:查看邻居设备。
Switch#show cdp neighbors
交换机 22
,也就是出现问题的这台交换机上,输出这样的结果。
交换机 21
,就是上一级交换机,它的结果是这样的。
我的天,看到结果的那一刹那,我和我的小伙伴们都惊呆了!!
为啥?
因为交换机的线,它...它根本就是接错了嘛!
从图中可以看到,交换机 22
连接到了上一级交换机 21
的12号端口,而不是23号或24号端口!
而12号端口只是个普通端口,并非 trunk
链路端口!
我去!难怪 vtp
信息无法同步,原因正是没有正确连接到 trunk
链路的端口上,而连接非 trunk
端口是无法转发除 vlan1
以外的 vlan
信息的,作为下一级的交换机 22
自然也就无法同步 vtp
配置信息了。
至此云开雾散、水落石出、真相大白于天下!
后记
我来不及感谢XXTV,一路小跑,来到了交换机 21
的那个网络柜旁。
打开柜子这么一看,果不其然,23号和24号两个端口空荡荡的,而12号端口指示灯却欢快地闪烁着,似乎嘲笑着我说,哥儿们你来迟了。
我嘴角微微苦笑,用了一招力拔山兮气盖世,拨下12号端口的网线,转而插到了23号端口上。
最后回头确认 vtp
等信息已经全都OK了!
事情就是这么惊悚、刺激、辣眼睛,小伙伴们,你们Get到了没?
而这个问题的出现给了我一个深刻而惨痛的教训:柜子一定要上锁!!
WeChat @网管小贾 | www.sysadm.cc