Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2243688
  • 博文数量: 230
  • 博客积分: 9346
  • 博客等级: 中将
  • 技术积分: 3418
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-26 01:58
文章分类

全部博文(230)

文章存档

2015年(30)

2014年(7)

2013年(12)

2012年(2)

2011年(3)

2010年(42)

2009年(9)

2008年(15)

2007年(74)

2006年(36)

分类: LINUX

2007-10-10 15:39:45

ARP欺骗
2007-07-19 16:58

这几天研究了windows对ARP的处理方式,便写了个ARP欺骗的程序,试验结果生效。

windows接收到一个ARP响应,便会更新本地ARP高速缓冲表,而接收到一个ARP请求,即使请求的IP地址已经记录在ARP高速缓冲表中,也不会更新ARP高速缓冲表,这一点让我对windows的ARP处理机制产生疑问,像Linux就不是这样处理。不同的操作系统更新ARP缓存的方式不同,现对Windows操作系统和linux操作系统对于接收到不同的ARP数据包更改ARP缓存的方式进行一下总结。

(1)windows xp


接收到ARP请求,源物理地址改变

接收到ARP响应,源物理地址改变

IP地址已记录在ARP缓冲表

不更新ARP缓冲表

依据ARP响应中记录的源物理地址来更新ARP缓冲表

IP地址未记录在ARP缓冲表

依据ARP请求中记录的源物理地址来更新ARP缓冲表

不更新ARP缓冲表

另外windows接收到目的物理地址为广播的ARP响应,如果该IP地址已记录在ARP缓冲表中,也会更新ARP缓冲表的。

如果接收到一个源IP地址和目的IP地址都为本地主机IP地址的ARP请求,不仅会提示用户有IP地址冲突,并且也会向发送方发送ARP响应。如果接收到只有源IP地址为本地主机IP地址的ARP请求,那么只会提示用户有IP地址冲突。

如果接收到一个源IP地址为本地主机IP地址的ARP响应,会提示用户有IP地址冲突,但是它不会向ARP响应中所记录的目的IP地址发送ARP响应。

(2)Windows 2003 server操作系统


接收到ARP请求,源物理地址改变

接收到ARP响应,源物理地址改变

IP地址已记录在ARP缓冲表

依据ARP请求中记录的源物理地址来更新ARP缓冲表

依据ARP响应中记录的源物理地址来更新ARP缓冲表

IP地址未记录在ARP缓冲表

依据ARP请求中记录的源物理地址来更新ARP缓冲表

不更新ARP缓冲表

(3)linux


接收到ARP请求,源物理地址改变

接收到ARP响应,源物理地址改变

IP地址已记录在ARP缓冲表

依据ARP请求中记录的源物理地址来更新ARP缓冲表

不更新ARP缓冲表

IP地址未记录在ARP缓冲表

依据ARP请求中记录的源物理地址来更新ARP缓冲表

依据系统配置,来判断是否更新ARP缓冲表

linux不接收目的物理地址为广播的ARP响应或目的物理地址为单播的ARP请求报文。它只接收目的物理地址为广播的ARP请求报文和目的物理地址为单播的ARP响应报文。在这一点上Linux做的比windows要好。

阅读(3008) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~