升级交换机导致无法获得IP的解决方法


最近单位决定升级网络设备,原来所采用的均为3Com交换机,所有计算机被划归到了两个VLAN中,除部分计算机采用固定IP外,其他计算机均通过一台DHCP服务器获得地址 。实施网络升级后,网络中心路由器不变,大部分接入级交换机更换为Cisco Catayst 3550或Cisco Catayst 2950,但是升级后出现了以下情况:部分计算机刚启动或重启时不能获得IP地址,但在手动设定后又可获得IP地址 。
通过观察,笔者发现只有使用Windows 98的计算机才会出现这种情况,笔者认为可能是计算机感染了专门针对Windows 98的病毒,但是用诺顿和金山毒霸均未查出病毒,所以就排除了病毒的原因 。
难道是DHCP服务器出了问题,再次对DHCP服务器进行检查,确认DHCP服务器运行正常 。经过仔细观察,笔者发现只有Cisco交换机所连接的使用Windows 98的计算机出现此类问题,而使用windows 2000或Windows XP的计算机却没有出现问题,而且在使用3Com交换机的时候,采用Windows 98的计算机都能正常工作 。
笔者挑选出一台Cisco Catayst3550-48交换机,仔细检查它的配置、ARP表、Mac-Add表以及Log,没有发现任何异常 。笔者想到使用Windows 98的计算机也不是完全不能获得IP地址,只是在开机时无法获得,那么,可能就是在交换机端口初始化的时候出现了问题 。
Cisco交换机的端口并不是连接上计算机就立即处于转发状态的,它有一个从Bloking(阻断)、Listening(监听)、Learning(学习)到Forwarding(转发)状态转换的过程 。那么,极有可能就是在这个过程中,Cisco交换机和Windows 98的网络初始化发生了冲突 。
假如让Cisco交换机改变端口转发方式,也就是让它的端口一旦加电,就处于转发状态,应该就可以解决问题 。于是笔者在Cisco Catayst 3550的端口配置中添加了配置语句“spanning-tree portfast”后便解决了这一问题 。
看来,Windows 98的网络启动过程确实和Cisco交换机的生成树协议有冲突,不过只是在采用DHCP的情况下才会表现出来,但是“spanning-tree portfast”命令只能用于交换机端口直连计算机的情况下,假如端口级联其他交换机,这个命令会使生成树协议运行出错 。在这种情况下,一般不需要进行其他配置,因为生成树协议默认是在Cisco交换机上启用的,当然也可以在Cisco接入层交换机端口加上“spanning-tree uplinkfast”命令,以减少它的收敛速度 。

    推荐阅读