论文部分内容阅读
【摘要】 本文探讨了利用ARP协议解决校园网中常见的IP地址盗用问题。利用ARP协议不仅可以把被盗用的IP地址取回来,在网络安全的领域,也可以使用ARP欺骗的技术,结合sniff软件,进行网络的监听,辅助做好网络安全工作。
【关键词】 ARP;IP;校园网;TCP/IP
如今很多学校都建设了校园网,并分配给每个部门一个IP地址段。但IP地址的匮乏总是会造成主机多而IP地址少的状况出现。于是,有一些没有分配到IP地址的用户就想方设法地盗用其它用户的IP地址。
对于这种情况,我们虽然可以通过在网关中绑定IP地址和MAC地址对的方法解决,但当用户没有权限或者不方便绑定IP地址时,盗用IP地址仍然会给我们带来很多的麻烦。
本文阐述ARP协议的工作原理,并利用ARP的高速缓存,提出一种可以取回被盗用的IP地址的方案,并使用一种简单的方法来防范IP地址被盗用。
1 ARP协议原理和作用
地址解析协议ARP属于TCP/IP协议族中的网络层,它在网络层中的位置如图1所示。ARP协议提供IP地址到硬件地址之间的动态映射。
ARP协议工作原理如图2所示。
①:传输层将数据段交给IP层。
②:IP层收到数据段后,由IP协议包构建IP数据报,并查找本机路由表,决定该IP数据报应该发往的下一站路由。对于向因特网的访问,通常主机将IP数据报发往默认网关。
IP数据报的发送需要将硬件地址(数据链路层地址,对于以太网来说是MAC地址)封装在数据链路层的帧头中才能够发送。而以太网驱动程序并不知道下一站路由所对应的MAC地址是什么。
③:IP协议要求ARP提供下一站路由的IP地址所对应的MAC地址。
④:ARP协议通过以太网驱动程序,使用以太网广播的形式发送ARP请求,向全网段广播查询下一站路由所对应的MAC地址。
⑤:所有位于同一网段的主机和路由器都收到了该ARP请求。
⑥:下一站路由(被查问主机)收到ARP请求后,通过以太网驱动程序,使用单播形式向发起请求的主机发送ARP应答,告知本机的MAC地址。
⑦:发送方主机根据该ARP应答,通过以太网的封装,将IP数据报以单播形式发往下一站路由。
⑧:下一站路由收到该IP数据报后,查看IP数据报中的目的IP地址,若本机是接收方则将数据提交传输层,否则,根据路由表转发或丢弃该IP数据报。
用于以太网的ARP请求和应答分组格式如图3所示。
其中OP字段为1的是ARP请求报文,OP字段为2的是ARP的应答报文。另外,我们注意到ARP的请求和应答分组不仅包含要查询的目的端的IP地址和MAC地址,而且包含有发送端的IP地址和MAC地址。这是ARP协议的一个优化。
为了避免每次发送一个IP数据报,都进行一次ARP的请求和应答交互,ARP协议采用了高速缓存机制。
ARP的高速缓存按以下两个原则工作:
1)在图2的第⑤步中,任何收到ARP请求的主机或路由器,都将该ARP请求中的发送方IP地址和MAC地址对存储到ARP的高速缓存中。
2)在图2的第④步发送ARP请求之前,先查找ARP的高速缓存,如果找到所需的IP地址和MAC地址对,则不再发送ARP请求;如果没有所需要的信息,才按照图2所示步骤进行ARP的请求操作。
2 IP地址盗用和解决的方法
当局域网内的计算机通过网关连接到外部网络,网关内的ARP高速缓存会保存有正在通信的内网主机的IP地址和MAC地址对,因此,每次有IP数据报从外网进来,网关不需使用ARP请求,直接将IP数据报经过以太网封装发往目标主机。在这个过程中,如果某个用户恶意盗用了IP地址,由于网关中保存的是被盗用IP地址和恶意用户的MAC地址的对应关系,就会造成合法用户不能收到从外网进来的IP数据报。
我们可以采用IP地址绑定的方法解决IP地址被盗用的问题。这种方法将合法的IP地址和用户登记的MAC地址的对应关系静态的添加到网关的ARP高速缓存中,ARP高速缓存中的静态条目不会由于收到ARP请求而修改,因此,恶意用户即使盜用了IP地址,由于他的MAC地址和网关中静态保存的不同,他也不能够使用该IP地址和外网连通。
IP地址绑定的方法虽然可以解决IP地址盗用的问题,但考虑到网关是重要的网络设备,大多数用户没有权限进行IP地址绑定,或者内网主机经常变化造成MAC地址变化频繁,这样,绑定IP地址会有很多的不便。因此,很多局域网内部没有绑定IP地址。
在不绑定IP地址的情况下,如果IP地址被盗,我们可以利用ARP高速缓存的工作机制,采用一种简单的方法,取回被盗用的IP地址。也就是说,我们利用ARP请求,来改变网关内的ARP高速缓存,使它保存合法的IP地址和MAC对。
通常,网关经常会发送ARP请求,询问内网中的某个IP地址所对应MAC地址,这样,内网所有主机都收到了这样的ARP请求,因而,所有主机内的ARP缓存就总是会有网关的IP地址和MAC地址对。为了能够从内网主机向网关发送ARP请求,首先我们要删除自己主机内的相关ARP缓存条目,然后向网关发送IP数据报,这样,根据图2解释的ARP工作的原理,内网主机就会产生ARP请求,继而使网关中保存合法的IP地址和MAC地址对。
假定我们的默认网关地址是202.196.73.1,windows环境下,我们可以在本机中使用以下命令删除ARP高速缓存中的202.196.73.1对应的条目。
arp -d 202.196.73.1
然后使用ping命令,产生IP数据报发送给网关。
ping 202.196.73.1
使用这样的方法就可以取回被盗用的IP地址。
3 进一步的改进
在使用过程中,为了防范IP地址被盗用,可以编写批处理文件,不断的重复上述过程。并将ping的包数减小到1。批处理如下:
:start
@echo off
arp -d 202.196.73.254
ping 202.196.73.254 -n 1
goto start
这个批处理不断的发送IP数据报,会给主机和网络带来较大的负担。为了改善这种情况,可以利用windows98提供的choice.com程序,在每次循环前进行一次选择,这样既可以在每次操作前等待一段时间,又可以在需要的时候随时退出。Windows2000环境不提供choice.com程序,可以从windows98拷贝一份过来。批处理程序如下:
@echo off
:start
echoA Run again
echoB Exit
choice.com /c:AB /t:A,30
if errorlevel 2 goto end
if errorlevel 1 goto run
:run
@echo on
arp -d 202.196.73.1
ping 202.196.73.1 -n 1
@echo off
goto start
:end
这个批处理程序运行后,会显示提示信息,要求用户输入A或者B,输入A则发送ARP请求和IP数据报给网关,输入B则程序退出,没有输入的情况下,程序等待30秒后自动选择A。
4 结束语
以上仅仅阐述了ARP协议应用的一个方面,利用ARP协议不仅可以把被盗用的IP地址取回来,在网络安全的领域,也可以使用ARP欺骗的技术,结合sniff软件,进行网络的监听,辅助做好网络安全工作。
总之,TCP/IP协议族中的很多知识都可以应用来解决网络应用中的各种难题。
参考文献
[1] Douglas E. Comer. 林瑶等译.用TCP/IP进行网际互联 第一卷:原理、协议与结构(第四版)[M].北京:电子工业出版社,2001: 53-59
[2] 谢希仁.计划机网络(第四版).北京:电子工业出版社[M], 2003: 183-185
收稿日期:2008-3-14
【关键词】 ARP;IP;校园网;TCP/IP
如今很多学校都建设了校园网,并分配给每个部门一个IP地址段。但IP地址的匮乏总是会造成主机多而IP地址少的状况出现。于是,有一些没有分配到IP地址的用户就想方设法地盗用其它用户的IP地址。
对于这种情况,我们虽然可以通过在网关中绑定IP地址和MAC地址对的方法解决,但当用户没有权限或者不方便绑定IP地址时,盗用IP地址仍然会给我们带来很多的麻烦。
本文阐述ARP协议的工作原理,并利用ARP的高速缓存,提出一种可以取回被盗用的IP地址的方案,并使用一种简单的方法来防范IP地址被盗用。
1 ARP协议原理和作用
地址解析协议ARP属于TCP/IP协议族中的网络层,它在网络层中的位置如图1所示。ARP协议提供IP地址到硬件地址之间的动态映射。
ARP协议工作原理如图2所示。
①:传输层将数据段交给IP层。
②:IP层收到数据段后,由IP协议包构建IP数据报,并查找本机路由表,决定该IP数据报应该发往的下一站路由。对于向因特网的访问,通常主机将IP数据报发往默认网关。
IP数据报的发送需要将硬件地址(数据链路层地址,对于以太网来说是MAC地址)封装在数据链路层的帧头中才能够发送。而以太网驱动程序并不知道下一站路由所对应的MAC地址是什么。
③:IP协议要求ARP提供下一站路由的IP地址所对应的MAC地址。
④:ARP协议通过以太网驱动程序,使用以太网广播的形式发送ARP请求,向全网段广播查询下一站路由所对应的MAC地址。
⑤:所有位于同一网段的主机和路由器都收到了该ARP请求。
⑥:下一站路由(被查问主机)收到ARP请求后,通过以太网驱动程序,使用单播形式向发起请求的主机发送ARP应答,告知本机的MAC地址。
⑦:发送方主机根据该ARP应答,通过以太网的封装,将IP数据报以单播形式发往下一站路由。
⑧:下一站路由收到该IP数据报后,查看IP数据报中的目的IP地址,若本机是接收方则将数据提交传输层,否则,根据路由表转发或丢弃该IP数据报。
用于以太网的ARP请求和应答分组格式如图3所示。
其中OP字段为1的是ARP请求报文,OP字段为2的是ARP的应答报文。另外,我们注意到ARP的请求和应答分组不仅包含要查询的目的端的IP地址和MAC地址,而且包含有发送端的IP地址和MAC地址。这是ARP协议的一个优化。
为了避免每次发送一个IP数据报,都进行一次ARP的请求和应答交互,ARP协议采用了高速缓存机制。
ARP的高速缓存按以下两个原则工作:
1)在图2的第⑤步中,任何收到ARP请求的主机或路由器,都将该ARP请求中的发送方IP地址和MAC地址对存储到ARP的高速缓存中。
2)在图2的第④步发送ARP请求之前,先查找ARP的高速缓存,如果找到所需的IP地址和MAC地址对,则不再发送ARP请求;如果没有所需要的信息,才按照图2所示步骤进行ARP的请求操作。
2 IP地址盗用和解决的方法
当局域网内的计算机通过网关连接到外部网络,网关内的ARP高速缓存会保存有正在通信的内网主机的IP地址和MAC地址对,因此,每次有IP数据报从外网进来,网关不需使用ARP请求,直接将IP数据报经过以太网封装发往目标主机。在这个过程中,如果某个用户恶意盗用了IP地址,由于网关中保存的是被盗用IP地址和恶意用户的MAC地址的对应关系,就会造成合法用户不能收到从外网进来的IP数据报。
我们可以采用IP地址绑定的方法解决IP地址被盗用的问题。这种方法将合法的IP地址和用户登记的MAC地址的对应关系静态的添加到网关的ARP高速缓存中,ARP高速缓存中的静态条目不会由于收到ARP请求而修改,因此,恶意用户即使盜用了IP地址,由于他的MAC地址和网关中静态保存的不同,他也不能够使用该IP地址和外网连通。
IP地址绑定的方法虽然可以解决IP地址盗用的问题,但考虑到网关是重要的网络设备,大多数用户没有权限进行IP地址绑定,或者内网主机经常变化造成MAC地址变化频繁,这样,绑定IP地址会有很多的不便。因此,很多局域网内部没有绑定IP地址。
在不绑定IP地址的情况下,如果IP地址被盗,我们可以利用ARP高速缓存的工作机制,采用一种简单的方法,取回被盗用的IP地址。也就是说,我们利用ARP请求,来改变网关内的ARP高速缓存,使它保存合法的IP地址和MAC对。
通常,网关经常会发送ARP请求,询问内网中的某个IP地址所对应MAC地址,这样,内网所有主机都收到了这样的ARP请求,因而,所有主机内的ARP缓存就总是会有网关的IP地址和MAC地址对。为了能够从内网主机向网关发送ARP请求,首先我们要删除自己主机内的相关ARP缓存条目,然后向网关发送IP数据报,这样,根据图2解释的ARP工作的原理,内网主机就会产生ARP请求,继而使网关中保存合法的IP地址和MAC地址对。
假定我们的默认网关地址是202.196.73.1,windows环境下,我们可以在本机中使用以下命令删除ARP高速缓存中的202.196.73.1对应的条目。
arp -d 202.196.73.1
然后使用ping命令,产生IP数据报发送给网关。
ping 202.196.73.1
使用这样的方法就可以取回被盗用的IP地址。
3 进一步的改进
在使用过程中,为了防范IP地址被盗用,可以编写批处理文件,不断的重复上述过程。并将ping的包数减小到1。批处理如下:
:start
@echo off
arp -d 202.196.73.254
ping 202.196.73.254 -n 1
goto start
这个批处理不断的发送IP数据报,会给主机和网络带来较大的负担。为了改善这种情况,可以利用windows98提供的choice.com程序,在每次循环前进行一次选择,这样既可以在每次操作前等待一段时间,又可以在需要的时候随时退出。Windows2000环境不提供choice.com程序,可以从windows98拷贝一份过来。批处理程序如下:
@echo off
:start
echoA Run again
echoB Exit
choice.com /c:AB /t:A,30
if errorlevel 2 goto end
if errorlevel 1 goto run
:run
@echo on
arp -d 202.196.73.1
ping 202.196.73.1 -n 1
@echo off
goto start
:end
这个批处理程序运行后,会显示提示信息,要求用户输入A或者B,输入A则发送ARP请求和IP数据报给网关,输入B则程序退出,没有输入的情况下,程序等待30秒后自动选择A。
4 结束语
以上仅仅阐述了ARP协议应用的一个方面,利用ARP协议不仅可以把被盗用的IP地址取回来,在网络安全的领域,也可以使用ARP欺骗的技术,结合sniff软件,进行网络的监听,辅助做好网络安全工作。
总之,TCP/IP协议族中的很多知识都可以应用来解决网络应用中的各种难题。
参考文献
[1] Douglas E. Comer. 林瑶等译.用TCP/IP进行网际互联 第一卷:原理、协议与结构(第四版)[M].北京:电子工业出版社,2001: 53-59
[2] 谢希仁.计划机网络(第四版).北京:电子工业出版社[M], 2003: 183-185
收稿日期:2008-3-14