在升级过程中,网络中心路由器保持不变,而大部分接入级交换机被替换为Cisco Catalyst 3550或Cisco Catalyst 2950。然而,升级完成后,我们遇到了一些问题:一些计算机在启动或重启时无法通过DHCP服务器获得IP地址。奇怪的是,只有在手动设置IP地址后,这些计算机才能正常工作。
经过观察,我发现这个问题只出现在使用Windows 98操作系统的计算机上。最初,我怀疑可能是这些计算机感染了专门针对Windows 98的病毒,但使用诺顿和金山毒霸进行扫描后,并没有发现病毒的存在,因此排除了病毒的可能性。
接下来,我开始怀疑dhcp服务器可能出了问题。然而,对DHCP服务器进行了全面的检查后,确认它运行正常。这让我更加困惑:为什么只有连接到Cisco交换机的Windows 98计算机出现这个问题,而使用Windows 2000或Windows XP的计算机却没有任何问题?在使用3Com交换机时,这些Windows 98计算机都能正常工作。
为了进一步排查问题,我选择了一台Cisco Catalyst 3550-48交换机,详细检查了它的配置、ARP表、MAC地址表和日志,但并没有发现任何异常。考虑到使用Windows 98的计算机并非完全无法获得IP地址,只是在开机时无法获得,我认为问题可能出现在交换机端口初始化的过程中。
Cisco交换机的端口并非一连接上计算机就立即处于转发状态。它需要经历一个从阻断、监听、学习到转发状态的转换过程。这让我意识到,可能正是在这个过程中,Cisco交换机与Windows 98的网络初始化产生了冲突。
为了解决这个问题,我尝试在Cisco Catalyst 3550交换机的端口配置中添加了一个配置语句“SPANning-tree portfast”。这个命令可以让交换机的端口在加电后立即进入转发状态。令人欣慰的是,这一修改成功解决了问题。
看来,Windows 98的网络启动过程确实与Cisco交换机的生成树协议存在冲突。不过,这种冲突只在计算机使用DHCP动态获取IP地址时才会表现出来。值得注意的是,“spanning-tree portfast”命令只能用于交换机端口直接连接到计算机的情况。如果端口级联到其他交换机,这个命令可能会导致生成树协议运行出错。
在这种情况下,一般不需要进行其他配置,因为生成树协议默认是在Cisco交换机上启用的。不过,如果需要在Cisco接入层交换机端口减少收敛速度,可以尝试添加“spanning-tree uplinkfast”命令。通过这些调整,我们可以确保网络升级后的稳定性,同时避免类似问题的再次发生。
最近单位决定升级网络设备,原来所采用的均为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”命令,以减少它的收敛速度。