小组首页
分 类
我的小组
建立小组
帮助中心
排行榜
小组精华
您现在的位置:
首页
›
小组
›
通信网络
›
通信之VOIP
huanan_
小组等级:
E币:
986
(E币换礼)
#1
楼主:
ARP协议分析
文章发表于:2008-07-11 10:42
ARP(AddressResolutionProtocol)地址解析协议用于将计算机的网络地址(IP地址32位)转化为物理地址(MAC地址48位)[RFC826]。ARP协议是属于链路层的协议,在以太网中的数据帧从一个主机到达网内的另一台主机是根据48位的以太网地址(硬件地址)来确定接口的,而不是根据32位的IP地址。内核(如驱动)必须知道目的端的硬件地址才能发送数据。当然,点对点的连接是不需要ARP协议的。
ARP协议的数据结构:
typedefstructarphdr
{
unsignedshortarp_hrd;/*硬件类型*/
unsignedshortarp_pro;/*协议类型*/
unsignedchararp_hln;/*硬件地址长度*/
unsignedchararp_pln;/*协议地址长度*/
unsignedshortarp_op;/*ARP操作类型*/
unsignedchararp_sha[6];/*发送者的硬件地址*/
unsignedlongarp_spa;/*发送者的协议地址*/
unsignedchararp_tha[6];/*目标的硬件地址*/
unsignedlongarp_tpa;/*目标的协议地址*/
}ARPHDR,*PARPHDR;
为了解释ARP协议的作用,就必须理解数据在网络上的传输过程。这里举一个简单的PING例子。
假设我们的计算机IP地址是192.168.1.1,要执行这个命令:ping192.168.1.2。该命令会通过ICMP协议发送ICMP数据包。该过程需要经过下面的步骤:
1、应用程序构造数据包,该示例是产生ICMP包,被提交给内核(网络驱动程序);
2、内核检查是否能够转化该IP地址为MAC地址,也就是在本地的ARP缓存中查看IP-MAC对应表;
3、如果存在该IP-MAC对应关系,那么跳到步骤9;如果不存在该IP-MAC对应关系,那么接续下面的步骤;
4、内核进行ARP广播,目的地的MAC地址是FF-FF-FF-FF-FF-FF,ARP命令类型为REQUEST(1),其中包含有自己的MAC地址;
5、当192.168.1.2主机接收到该ARP请求后,就发送一个ARP的REPLY(2)命令,其中包含自己的MAC地址;
6、本地获得192.168.1.2主机的IP-MAC地址对应关系,并保存到ARP缓存中;
7、内核将把IP转化为MAC地址,然后封装在以太网头结构中,再把数据发送出去;
使用arp-a命令就可以查看本地的ARP缓存内容,所以,执行一个本地的PING命令后,ARP缓存就会存在一个目的IP的记录了。当然,如果你的数据包是发送到不同网段的目的地,那么就一定存在一条网关的IP-MAC地址对应的记录。
知道了ARP协议的作用,就能够很清楚地知道,数据包的向外传输很依靠ARP协议,当然,也就是依赖ARP缓存。要知道,ARP协议的所有操作都是内核自动完成的,同其他的应用程序没有任何关系。同时需要注意的是,ARP协议只使用于本网络。
ARP协议的利用和相关原理介绍。
一、交换网络的嗅探
ARP协议并不只在发送了ARP请求才接收ARP应答。当计算机接收到ARP应答数据包的时候,就会对本地的ARP缓存进行更新,将应答中的IP和MAC地址存储在ARP缓存中。因此,在上面的假设网络中,B向A发送一个自己伪造的ARP应答,而这个应答中的数据为发送方IP地址是192.168.10.3(C的IP地址),MAC地址是DD-DD-DD-DD-DD-DD(C的MAC地址本来应该是CC-CC-CC-CC-CC-CC,这里被伪造了)。当A接收到B伪造的ARP应答,就会更新本地的ARP缓存,将本地的IP-MAC对应表更换为接收到的数据格式,由于这一切都是A的系统内核自动完成的,A可不知道被伪造了。
ARP欺骗的主要用途就是进行在交换网络中的嗅探。有关交换网络的嗅探不是本文的讨论内容。
二、IP地址冲突
我们知道,如果网络中存在相同IP地址的主机的时候,就会报告出IP地址冲突的警告。这是怎么产生的呢?
比如某主机B规定IP地址为192.168.0.1,如果它处于开机状态,那么其他机器A更
改IP地址为192.168.0.1就会造成IP地址冲突。其原理就是:主机A在连接网络(或更改IP地址)的时候就会向网络发送ARP包广播自己的IP地址,也就是freearp。如果网络中存在相同IP地址的主机B,那么B就会通过ARP来reply该地址,当A接收到这个reply后,A就会跳出IP地址冲突的警告,当然B也会有警告。
因此用ARP欺骗可以来伪造这个ARPreply,从而使目标一直遭受IP地址冲突警告的困扰。
三、阻止目标的数据包通过网关
比如在一个局域网内通过网关上网,那么连接外部的计算机上的ARP缓存中就存在网关IP-MAC对应记录。如果,该记录被更改,那么该计算机向外发送的数据包总是发送到了错误的网关硬件地址上,这样,该计算机就不能够上网了。
这里也主要是通过ARP欺骗进行的。有两种办法达到这样的目的。
1、向目标发送伪造的ARP应答数据包,其中发送方的IP地址为网关的地址,而MAC地址则为一个伪造的地址。当目标接收到该ARP包,那么就更新自身的ARP缓存。如果该欺骗一直持续下去,那么目标的网关缓存一直是一个被伪造的错误记录。当然,如果有些了解的人查看ARP-a,就知道问题所在了。
2、这种方法非常狠,欺骗网关。向网关发送伪造的ARP应答数据包,其中发送方的IP地址为目标的IP地址,而MAC地址则为一个伪造的地址。这样,网关上的目标ARP记录就是一个错误的,网关发送给目标的数据报都是使用了错误的MAC地址。这种情况下,目标能够发送数据到网关,却不能接收到网关的任何数据。同时,目标自己查看ARP-a却看不出任何问题来。
四、通过ARP检测混杂模式节点
在混杂模式中,网卡进行包过滤不同于普通模式。本来在普通模式下,只有本地地址的数据包或者广播(多播等)才会被网卡提交给系统核心,否则的话,这些数据包就直接被网卡抛弃。现在,混合模式让所有经过的数据包都传递给系统核心,然后被sniffer等程序利用。
通过特殊设计的ARP请求可以用来在一定程度上检测处于混杂模式的节点,比如对网络中的每个节点都发送MAC地址为FF-FF-FF-FF-FF-FE的ARP请求。对于网卡来说这不是一个广播地址(FF-FF-FF-FF-FF-FF),所以处于普通模式的节点就会直接抛弃该数据包,但是多数操作系统核心都认为这是一个广播地址,如果有一般的sniffer程序存在,并设置网卡为混杂模式,那么系统核心就会作出应答,这样就可以判断这些节点是否存在嗅探器了。
可以查看,很多基于ARP的攻击都是通过ARP欺骗实现的。至于ARP欺骗的防范,还是尽可能使用静态的ARP。对于WIN,使用arp-s来进行静态ARP的设置。当然,如果能够完全使用静态的IP+MAC对应,就更好了,因为静态的ARP缓存只是相对的。
当然,可以有一些方法来实现ARP欺骗的检测。设置一个ARP的嗅探器,其中维护着一个本地网络的IP-MAC地址的静态对应表,查看所有经过的ARP数据,并检查其中的IP-MAC对应关系,如果捕获的IP-MAC对应关系和维护的静态对应关系对应不上,那么就表明是一个欺骗的ARP数据包了。
【添加到收藏夹】
【回复】
快速回复主题--如果想加入编辑器功能,建议使用
[高级回复]
您目前还不是小组成员,请先加入
回复贴子区
用户名:
您没有注册?
密码:
忘记了密码?
主题:
内容:
Design
HTML
浏览该小组的用户还看过...
小 组
文 章
论 坛
博 客
• “串行”为什么会走红?
• 单片机编程经验
• iPhone拆解:不仅仅是个电话
• PCB软件不为人知的技巧
• Linux市场一直没有超越Windows的五大原因
• 华为的天花板:从价格战到“用土地换和平”
• EDNCHINA博客精华
• “设计代工”:智芯科技与IC设计公司双赢的支点——访智芯科技(上海)有限公司总裁余楚荣
• 加入EDN抗震救灾爱心捐助小组 捐E币 献爱心
• 赠送3块电脑圈圈的电容计PCB
• 老师是这么教我们单片机的(原创)
• C语言进阶——嵌入式系统高级C语言编程,很不错,强烈推荐
• 绝对精品的硬件设计方面资料!!!
• 华为内部模拟电子电路教程上、下册
• 一位牛人对模拟电路的理解
• EDNCHINA实验板全套资料!!!
• 51单片机助学小组开通,最新100人名单已经确定,9月18日前支持本贴调查的朋友下次活动优先
• RF发射机免费赠送PCB活动,套件还剩最后5套!(结束)
• 这18条背下来没人敢和你忽悠CPU!(ZT)
• 关于can总线的助学活动,EDN免费送板,感兴趣的请来报名。
电子竞赛交流区
USB专区
EDN助学小组之51单片机
单片机proteus仿真学习
电子制作交流区
单片机殿堂
EDN助学小组之RF实验板
STM32团队
《匠人手记》书友会
·申请免费芯片的感受
·FM调频数显锁相环发射电路全套资料!!!(免费申请PCB)
·一个不错的ARM入门建议
·圈圈收集的一些关于USB的资料,搞USB的有点用
·51做的以太网板
·N73原理图...
·我的新书《圈圈教你玩USB》的目录已经整理出来了
·洗手间里的疯狂ps(真实故事)
·SPI通信原理及通信协议
·不得不说:周某某 2300开发板之一
设计资源与分销
•
12,000张电路图
,
30,000个下载资料
,
3,000,000条Datasheet文档
,EDN资源中心为您的设计提供有力支持。
赞助商链接
• 安费诺TCS推出XCede平行扣板连接器:
是一款可实现平行板对板设计的高速连接器,传输速度达20 Gb/s,并具有高可靠性。同时这款连接器的模块结构和多种导向选择,使它具备更强的设计灵活性。
• LatticeECP2™和LatticeECP2M™系列:
集成了以前只有高成本、高性能FPGA才有的特点和性能,在更低的成本下拥有更多更佳特性。极大地扩展了低成本FPGA的应用范围。
该小组其它话题
·
网关呼叫流程
·
VoIP协议标准浅析
·
高密度VoIP解决方案(英飞凌)
·
RTP协议栈
·
设计PCB时抗静电放电(ESD)的方法
·
呼叫中心启用VoIP有哪些优势?
·
用51单片机控制RTL8019AS实现以太网通讯
·
软交换技术的详细介绍及其实际应用说明(6)
·
软交换技术的详细介绍及其实际应用说明(5)
·
软交换技术的详细介绍及其实际应用说明(4)
工程师商城
热门商品
最新商品
STM32开发套件
¥
199.00
RF发射板PCB+整套元件
¥
99.00
51单片机开发板(1602液晶...
¥
144.00
单片机读写U盘方案-SL811...
¥
361.00
XC2S100E 超值FPGA...
¥
360.00
USB+单片机+CPLD开发板...
¥
370.00
SDB-51E增强型51学习板...
¥
395.00
PIC Pro K150 编程...
¥
140.60
EDN China
登录
|
注册
|
网站地图
|
帮助
首页
|
新闻
|
设计实例
|
经理人
|
视频
|
论坛
|
博客
|
小组
|
下载
|
电路图
|
DataSheet
|
在线研讨会
|
商城