摘要:本文介绍了IP地址与MAC地址的关系,比较深入地分析了Windows对IP地址冲突的自动检测过程,提出了IP地址冲突的解决方案。
关键词:IP地址;MAC地址;冲突;解决方案
中图分类号:G434 文献标识码2B
随着校园网应用的深入和终端用户的增加,在用户管理和安全管理上的问题凸现出来,其中乱设IP现象特别明显,使合法用户不能使用网络资源,造成网络工作不正常。解决IP冲突,实现用户的唯一性确定,成为维护网络健康、安全运行的重要任务。
一、IP地址与MAC地址的关系
IP地址是根据现在的IPv4标准指定的,不受硬件限制比较容易记忆的地址,长度4个字节。而 MAC地址却是用网卡的物理地址,保存在网卡的EPROM里面,与硬件有关系,比较难于记忆,长度为6个字节。
虽然在TCP/IP网络中,计算机往往需要设置IP地址后才能通讯,然而,实际上计算机之间的通讯并不是通过IP地址,而是借助于网卡的MAC地址。IP地址只是被用于查询欲通讯的目的计算机的MAC地址。
ARP协议是用来向对方的计算机、网络设备通知自己IP对应的MAC地址的。在计算机的 ARJ缓存中包含一个或多个表,用于存储IP地址及其经过解析的以太网MAC地址。一台计算机与另一台IP地址的计算机通讯后,在ARP缓存中会保留相应的MAC地址。所以,下次和同一个IP地址的计算机通讯,将不再查询MAC地址,而是直接引用缓存中的MAC地址。
在交换式网络中,交换机也维护一张MAC地址表,并根据MAC地址,将数据发送至目的计算机。
二、windows对IP地址冲突的自动检测过程
重复IP地址(duplicate IP address)可以导致网络上的严重破坏,因而对重复IP地址的检测是Windows TCP/IP的一个重要特性。计算机启动时,首次初始化TCP/IP,广播ARP请求,以便为IP地址请求IP地址解析。如果另一个主机回答此ARP请求分组中的任何一个,就表示该主机已经在使用此IP地址。这称为重复地址测试(Dupli-cate Address Test,DAT)。检测到重复地址时,Windows计算机照样引导,但禁用此广播ARP请求的计算机上的重复IP地址,并显示一条IP地址冲突的错误信息。为修复其它计算机中的ARP缓存表可能出现的崩溃,发送ARP请求的计算机重新广播另外一个ARP,但用发送ARP应答的计算机的硬件地址填充ARP请求的源硬件地址(Hardware Address,HA)字段。此技术很有希望可以修复其它计算机的ARP缓存表的崩溃问题,以使正在使用该IP地址的计算机能够正常工作。
在网络监视器中设置一个捕获过滤器,使之仅捕获与IP相关的流量,指定捕获过滤器文件的名字为test.cap。下面通过捕获到的分组信息进行分析。正常情况下,计算机广播一个带有目标IP地址的ARP请求,其分组中包含以下字段:
Sender’s Hardware Address=0060083671DE
Sender’s Protocl Address=192.168.3.10
Target’s Hardware Address=000000000000
Target’s Protocol Address=192.168.3.18
ARP回答直接发送到ARP请求方,其分组中包含以下字段:
Sender’s Hardware Address=00A024ABDlE6 Answer)
Sender’s Protocol Address=192.168.3.18
Target’s Hardware Address=0060083671DE
Target’s Protocol Address=192.168.3.10
这样,发送ARP请求的计算机,找到了目标计算机的MAC址。计算机启动时,发送一个ARJ请求以解析自己的IP地址。其分组中包含以下字段:
Sender’s Hardware Address=0060083671DE
Sender’s Protocol Address=192.168.3.10
Target’s HardWare Address=000000000000
T明et’s ProtocolAddress=192.168.3.10
如果其它站没有设为192.168.3.10的IP地址,则没有ARP应答。当网络中存在一个重复IP地址为192.168.3.10,则此站会发送一个ARP应答。其分组中包含以下字段:
Sender’s Hardware Address=00A024ABDlE6 (/hnswer)
Sender's ProtocolAdd ress=192.168.3.10
Target’s Hardware Address=000000000000
Tagrgt’s Protocol Address=192.168.3.10
当一个站看到来自重复IP站的ARP应答时,此站在计算机屏幕上报告这一问题。在windows2000的系统日志上可查看到错误信息。
三、IP地址冲突的解决方案
通过IP地址与MAC地址绑定,MAC地址与交换机端口绑定,可有效地防止用户更改IP地址和MAC地址现象,较好地解决网络中IP冲突问题。
1.计算机IP地址与MAC绑定
ARP缓存表保存了MAC地址与IP地址之间的绑定,局域网用户通常通过代理服务的方式访问Internet,在代理服务器的ARP缓存表中保存了所有用户的MAC和IP信息。因此,可在代理服务器上将局域网用户的IP地址与MAC地址静态绑定,使得乱设IP址的计算机不能访问Internet。
在CMD方式下,键入以下命令:
ARP—s IP地址MAC地址
例:ARP—s192.168.3.1000—AB一4C一60—08—68 这样,就将静态IP地址192.168.3.10与网卡地址为00—AB—4C—60—08—68的计算机绑定在一起了,即使别人盗用您的IP地址192.168.3.10,也无法通过代理服务器上网。
另外,需要注意的是,通过“—s”参数添加的项属于静态项,不会造成ARP缓存超时。只有终止TCP/IP协议后再启动,这些项才会被删除。通常编辑一批处理文件,包含所有IP与MAC绑定的命令,当系统重启或终止TCP/IP协议后再启动时,运行该批处理文件即可。
2.交换机端口与MAC绑定
交换机工作在数据链路层的MAC子层,传输的是帧,通常用于连接两个或多个以太网段。交换机在接收到以太帧后,从以太帧的源MAC地址字段“逆向”学习到去源站的路径,并生成、完善和维护着一个MAC地址与端口的映射表,在这个表中记录着交换机每个端口绑定的MAC地址。交换机以帧中的目的地址查找MAC地址表各项,如有匹配项则按该表项指定的端口路径转发帧,如无相应表项则向除源端口以外的所有端口广播转发帧。帧中的源和目的地址都是物理地址,即MAC地址。
将交换机的MAC地址与端口绑定,终端用户如果擅自改动本机网卡的MAC地址,该机器的网络访问将因其MAC地址被交换机认定为非法而无法实现,自然也就不会对局域网造成干扰了。
以思科2950—A交换机为例、登录进入交换机,输入管理口令进入全局配置模式,键入命令:
(config) #mac—address—table static<MAC地址>vlan<VLAN号>interface<模块号/端口号表> 该命令可分配一个静态的MAC地址给某些端口,即使重自交换饥,这个地址也仍然会存在。从此。该端口只允许这个MAC地址对应的设备连接在该端口上送行通信。用户通过注册表等方式更改MAC地址后,交换机拒绝为其通信。
四、IP地址和MAC地址的获取
校园网IP地址可以由学校网络管理部门强制进行分配,但MAC地址必须从本机或借助一些软件获取。一是从本机获取。对于Windows98/Me,运行“winipcfg”,在对话框就可看到IP地址,而“适配器地址”就是网卡的MAC地址。对于windows NT/2000/XP,需在命令提示符下输入“ipconfig/all”,显示列表中的“Physical Address”就是MAC地址,“IP Address”就是IP地址。
二是通过一些网管软件获取。如“MAC扫描器”“NetSuper”等。另外在同一局域网内的,可以用ping IP或者ping主机名,然后用arp—a来获得其它计算机的MAC地址。
作者:王存祥,樊婷婷 来源:电教网管中心