ARP协议/ARP攻击与防御
ARP协议
目录
2)、ARP攻击者通过发送虚假伪造的arp报文对受害者进行ARP缓存投毒
1、ARP协议概述
“Address Resolution Protocol”(地址解析协议)
当网络设备要发送数据给另一台设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须包含目的MAC地址,因此发送端还必须获取到目的MAC地址。通过目的IP地址而获取目的MAC地址的过程是由ARP协议来实现的。
ARP协议是TCP/IP协议簇中的重要组成部分,ARP能够通过目的IP地址发现目标设备的MAC地址,从而实现数据链路层的可达性
2、ARP协议作用:
将IP解析为MAC地址
3、ARP协议原理:
1)发送ARP广播请求
ARP报文内容:我是10.1.1.1 我的MAC:AA-AA-AA-AA
谁是10.1.1.3 你的MAC:?
2)接受ARP单播应答
4、ARP的工作过程
ARP之简单请求应答
当两台计算机在同一个局域网通信,我们以ping命令为例,该命令使用的ICMP协议
PC1依据OSI模型①依次从上至下对数据进行封装,包括对ICMP Date加IP包头的封装,但是到了封装MAC地址的时候,②PC1首先查询自己的ARP缓存表,发现没有IP2和他的MAC地址的映射,这个时候MAC数据帧封装失败。我们使用ping命令的时候,是指定PC2的IP2的,计算机是知道目的主机的IP地址,能够完成网络层的数据封装,因为设备通信还需要对方的MAC地址,但是PC1的缓存表里没有,所以在MAC封装的时候填入不了目的MAC地址。
那么PC1为了获取PC2的MAC地址,③PC1要发送询问信息,询问PC2的MAC地址,询问信息包括PC1的IP和MAC地址、PC2的IP地址,这里我们想到一个问题,即使是询问信息,也是需要进行MAC数据帧的封装,那这个询问信息的目的MAC地址填什么呢,规定当目的MAC地址为ff-ff-ff-ff-ff-ff时,就代表这是一个询问信息,也即使后面我要说的广播。
PC2收到这个询问信息后,将这里面的IP1和MAC1(PC1的IP和MAC)添加到本地的ARP缓存表中,然后④PC2发送应答信息,对数据进行IP和MAC的封装,发送给PC2,因为缓存表里已经有PC1的IP和MAC的映射了呢。这个应答信息包含PC2的IP2和MAC2。PC1收到这个应答信息,理所应当的就获取了PC2的MAC地址,并添加到自己的缓存表中。
经过这样交互式的一问一答,PC1和PC2都获得了对方的MAC地址,值得注意的是,目的主机先完成ARP缓存,然后才是源主机完成ARP缓存。之后PC1和PC2就可以真正交流了。
ARP之广播请求单播回应
5、ARP代理
上图中,主机A需要与主机B通信时,目的IP地址与主机的IP地址位于不同网络,但由于主机A未设置网关,所以他将会以广播的形式发送ARP Request报文,请求B的MAC地址,但是广播报文无法被路由器转发,所以主机B无法收到主机A的请求报文。
在路由器上启用代理ARP功能,就可以解决这个问题。启用代理后,路由器接收到这样的请求,会查找路由表,如果存在主机B的路由表项,路由器会将自己的G0/0/0接口的MAC地址回应该ARP Requestrian。主机A收到ARP Reply后,将一路有油漆的G0/0/0接口MAC地址作为目的MAC地址进行数据转发。
小结:1如果两台主机在同一个网段,则直接发送ARP Request报文就好。
2 如果在不同网段,
(1)主机A设置了网关,ARP协议可以正常使用。
(2)主机A没有设置网关,这种情况下,我们要开启ARP代理,路由器来重新封装,转发报文
6、ARP攻击或欺骗的原理是:
通过发送伪造虚假的ARP报文(广播或单播),来生实现的攻击或欺骗!
如虚假报文的mac是伪造的不存在的,实现ARP攻击,结果为中断通信/断网!
如虚假报文的mac是攻击者本身的mac地址,实现ARP欺骗,结果可以监听、窃取、篡改、控制流量、但不中断通信!
1)、ARP协议没有验证机制,所以容易被arp偷渡攻击
2)、ARP攻击者通过发送虚假伪造的arp报文对受害者进行ARP缓存投毒
7、ARP攻击防御:
1、静态ARP绑定
手工绑定/双向绑定
windows客户机上:
arp -s 10.1.1.254 00-01-2c-a0-e1-09
arp-a 查看ARP缓存表
路由器上静态绑定:
Router(config)#arp 10.0.0.95 0013.240a.b219 arpa f0/0
优点:配置简单
缺点:工作量大、维护量大
2、ARP防火墙
自动绑定静态ARP
主动防御
优点:简单易用
缺点:当开启人数较多时,会增大网络负担
3、硬件级ARP防御:
交换机支持“端口”做动态ARP绑定(配合DHCP服务器)
或做静态ARP绑定
配置命令:
conf t
ip dhcp snooping
int range f0/1-48
switch(config-range-if)#
下一篇: swagger2 基本使用