交换机封装方式不能“默认”
网络设备
最近笔者所在公司对原来的老旧设备进行了升级,将不可管理的二层交换机用可管理交换机替代,然而在设备替换后却出现了网络崩溃的大问题。经过笔者反复调试,最终才发现出现问题的根源是交换机封装协议保持了默认设置。在此写出来和各位读者分享,希望大家在替换旧设备或升级设备时能够引以为戒。
网络结构
全公司不到一百个员工,每个人都有自己的电脑,而且都能上网。早期公司是通过两台48口的CISCO交换机将所有员工的计算机连接到一起的,其中还包括两台服务器。
公司主任级以上人员的计算机中保存着一些重要资料,而且为了防止普通员工窃取或黑客入侵,网管将主任级以上人员使用的计算机划分到了VLAN20中,而普通员工的计算机划分到了VLAN10中。这样不同VLAN中的计算机就不能互相访问了。由于主任和普通员工计算机分布较广,原来的两台交换机上各自都有部分端口属于VLAN10和VLAN20,所以笔者将两台交换机连接的端口设置为TRUNK模式,这样保证了不同交换机上同一个VLAN的计算机依然可以互相访问。
出现问题
最近公司对网络设备进行了升级,选择了华为的交换机替换了原来的一台CISCO交换机。笔者连接了两台交换机,网线两端的接口设置了TRUNK模式来传输多个VLAN数据包。
设置完毕后却发现连接到不同交换机上的同一个VLAN中的计算机无法互相访问了,而连接至同一台交换机下且划分到相同VLAN的两台计算机互访没有问题。
解决问题
既然在同一个交换机下没有问题,那么问题肯定出在交换机与交换机的连接处。
第一步:使用no shutdown将CISCO交换机的端口打开。
第二步:使用undo shutdown将华为交换机的端口打开。确认两台交换机端口都被打开了,但问题依旧存在。
第三步:为了保险起见,为两台交换机设置了各自的管理IP地址,分别在其中一台交换机上Ping另外一台的管理IP,发现不通。
第四步:对交换机端口进行了替换操作,确认交换机的端口没有任何问题。在新的端口上进行了TRUNK设置,问题仍然存在。
第五步:这时笔者突然想起TRUNK有很多种封装方式,像ISL就是CISCO专有的,802.1Q是各个厂商都支持的。于是笔者怀疑会不会是TRUNK的封装方式出了问题。于是赶紧查看两台交换机上的TRUNK封装方式。不看不知道一看吓一跳,原来两台交换机的封装方式还真是不一样。由于笔者没有修改这些默认值,所以两台交换机封装方式是不一样的,自然无法传输多个VLAN信息。
第六步:知道了两个设备默认封装方式不同后,就需要对它们进行修改了。进入CISCO交换机管理界面后使用switchport trunk encapsulation dot1q将该接口的封装方式修改为802.1Q,这样所有设备就都可以识别封装的数据了。
第七步:因为华为设备的默认TRUNK封装方式就是802.1Q,所以修改了CISCO的封装方式并保存后网络又恢复了正常。在同一个VLAN中的计算机即使连接不同的交换机也可以互相访问了。
总结
从本次故障的解决中,笔者得出了一些经验,对于公司设备都是CISCO的情况,在设置多台交换机互联且分配VLAN时应该选择ISL TRUNK封装方式,毕竟这是CISCO公司独有的封装技术,兼容性和稳定性较好。如果公司内部有其他品牌的设备,那么设置ISL TRUNK封装方式就是大大的错误了,造成的后果就和没有设置TRUNK一样。这个时候要么使用802.1Q方式进行封装,要么使用switchport trunk encapsulation negotiate进行自动协商,总之大家一定要高度重视封装问题。