我们都知道,在Internet和Intranet网络上,使用TCP/IP协议时每台主机必须具有独立的IP地址,有了IP地址的主机才能与网络上的其它主机进行通讯,对此应该不用我罗嗦了。不过我想你肯定碰见过IP地址发生冲突的情况,至少我就遭遇过。
那一天我发现我的网络客户不能正常工作,只要电源打开,都会频繁出现地址冲突的提示。可是前一天还是好好的,而且也没有做任何新的设置呀!仔细想了想,唯一有所区别的是机房的人员有所调整,可能是新来的人设置的IP地址和我的冲突了,一问果然如此。要不是他和我都打开机器了,我还发现不了问题呢!
可见网络上即使存在冲突的机器,有时也不能及时发现问题,只有在相互冲突的网络客户同时都在开机状态时才能暴露出来,看来它还有一定隐蔽性的,下面我就来给你揭揭秘。
发生IP冲突主要有以下几个原因。有些人可能对TCP/IP并不了解,不知道\"IP地址\"、\"子网掩码\"、\"默认网关\"这些参数怎么设置(不要笑话他们,毕竟我们也是这样一步一步走来的),有的时候他们得到的参数信息可能并不是管理员告诉的,也有可能开始设置时是正确的但后来又无意地不小心修改了这些信息。即使是管理员给出了正确的参数数据,我们也总有失误,因为老虎还有打盹的时候呢,把参数输错也是在所难免的。另外在让人维修调试机器的时候,维修人员可能会用一些临时的IP地址,如果忘了改过来也有可能出现冲突。另外还有一种我们深恶痛绝的情况,就是有人窃用他人的IP地址。
接到冲突报告后,要做几件事情,首先要确定冲突发生的VLAN。通过IP规划的vlan定义以及冲突的IP地址,可以找到冲突地址所在的网段。这对成功地找到网卡MAC地址非常关键,因为有些网络命令不能跨网段存取。
下面先把客户机与网络隔离,对于有非法的IP地址的微机,权且容它运行去吧,这样我们倒有机会设法找到它了。再对网络做一些简单的测试,主要的命令有ping命令和arp命令。使用ping命令,假设冲突的IP地址为146.127.35.3,在msdos窗口,命令格式如下:
C:\\WIDOWS\\〉ping 146.127.35.3
Request timed out
Reply from 146.127.35.3 : bytes=32 time〈1ms TTL=128 〉
Reply from 146.127.35.3 : bytes=32 time〈1ms TTL=128 〉
Reply from 146.127.35.3 : bytes=32 time〈1ms TTL=128 〉
其实最初我打算用\"开始\"-\"运行\"来执行ping命令的(在实际操作中我更习惯于用这种方法),不过它走得实在太快,看不过来,只好求助于msdos了。
我们之所以要ping这台机器,有两个目的,首先我必须肯定要找的那台机器确实在网络上,其次,我想知道这台机器的网卡的MAC地址,那么下面怎么才能知道它的MAC地址哪?这就需要使用第二个命令arp:arp命令只能在某一个VLAN中使用有效,它是低层协议,而且不能跨路由。
C:\\WIDOWS\\〉arp -a
Interface: ...... on Inerface ......
Internet Address/Physical Address/Type
146.127.35.3/00-00-22-35-62-53/ dynamic
这就说明冲突IP地址146.127.35.3 处网卡的MAC地址是00-00-22-35-62-53。接下来我们要找的是MAC地址为00-00-22-35-62-53的网卡的具体物理位置。
每台客户机的网卡都直接连接到第二级交换机上,接下来面对大量的以太网交换机,我们要查找是冲突MAC所对应交换机端口。因为我所在的网络中与客户连接的设备是Bay的303/304,我就以303为例来看一看如何查找某一个MAC地址所在的端口位置。Bay303的网管有很多种方式,下面只利用Web浏览器方式来说明查找非法MAC的方法。
在查找之前,先要搞清楚VLAN内的交换机位置,查出这些交换机的IP地址,使用交换机地址可以访问到交换机的网管信息。我们要做以下工作,先在在网管员的机器上启动浏览器,把交换机的IP地址敲进去,在看到提示的登录信息之后输入用户名和密码,再进入\"MAC Address Table\"选项,这样就可以得到下面的信息:
??index/mac address/learned on port/learning method/filter packets to this address
??1 00:00:21:34:63:56 13 dynamic no
??2 00:00:81:65:c3:a0 n/a static no
??3 00:00:a2:f7:c3:e4 25 dynamic no
??4 00:00:22:35:62:53 2 dynamic no
哈哈,可以看到索引的第4项,它正是我们要查找的MAC地址,它的端口号为2。根据综合布线资料,就能够准确地找出相应的信息点的物理位置,进一步我们就能定位到所连接的微机位置。当然,你在解决这个问题的时候可能没有这么方便,往往还需要查找很多台交换机,最终找到MAC地址的时候可能会有一种\"如释重负\"的感觉。VLAN中存在大量的交换机时,我们就需要在这些交换机中逐个去查找。
如果一个交换机的端口中存在下联交换机,对于这种情况,因为交换机支持多个MAC地址,它会在上级的MAC表中保存下级MAC的记录,所以要先查找上级交换机MAC表,确定较具体位置后再去查找下一级交换机,这样就能大幅度地缩小查找范围。
在局域网里,我们常常会遇到这种IP地址冲突的问题,特别是用户规模非常大的情况下,就会使得查找工作越发困难,所以网络管理员必须对此仔细行事才能最终得以解决。目前有两种方案,一是使用动态IP地址分配(DHCP),另一种方案是使用静态地址分配,但必须加强MAC地址的管理。
用动态IP地址分配(DHCP)的最大优点是客户端网络的配置非常简单,这样,即使没有管理员的帮助和干预,我们也可以自己对网络进行连接设置。但是,因为IP地址是动态分配的,网管员不能从IP地址上鉴定客户的身份,相应的IP层管理就起不到作用。另外它还有一个弊端,使用动态IP地址分配还需要设置额外DHCP服务器。
如果采用静态IP地址分配,我们就可以先对各部门进行合理的IP地址规划,这样能够在第三层上方便地跟踪管理,与此同时如果加强对MAC地址的管理,就能有效的解决这个问题。
再说一些技术之外的话题,实际上网络要正常运行相应的管理是必不可少的。要谨记,在我们连网的同时,最好建立IP地址和MAC地址的信息档案,这样就可以自始至终地对局域网客户执行严格的管理和登记制度,在网络管理员的数据库中把每个用户的IP地址、MAC地址、上联端口、物理位置和用户身份等信息记录保存起来。可以考虑一下,知道了非法用户的MAC地址后,如果能够从管理员数据库中进行查寻,我们就可以立即找到\"罪魁祸首\",这样我们可以节省多少宝贵的时间呀