ARP协议
ARP协议
广播与广播域概述
广播:将广播地址作为目的地址的数据帧
广播域:网络中能接收到同一个广播的所有节点的集合(越小越好)
MAC广播地址:FF-FF-FF-FF-FF-FF
IP广播地址:主机位全为255,即可作为该网段的广播地址,如192.168.255.255/16
概念
ARP(Address Resolution Protocol ):地址解析协议
将一个已知的IP地址解析成MAC地址
ARP缓存表
ARP缓存表内容:
- IP地址:目标的IP地址
- MAC地址:目标的MAC地址
老化时间:该记录在ARP缓存表中的保留时间,默认300秒(可修改)(类似于MAC地址表)
老化时间是动态ARP缓存表的,有静态ARP缓存表可手工配置,不会老化。
注:重启后,MAC地址表和ARP缓存表都会清空,开机后重新学习。
ARP报文内容:
我是10.1.1.1 我的MAC:AA
谁是10.1.1.2 你的MAC:?(等待目标填写)
工作过程
pc1想和pc2通信,但pc1不知道pc2的MAC地址,此时pc1会向外发送一个ARP广播请求,帧头的目标MAC地址为MAC广播地址(FF-FF-FF-FF-FF-FF),交换机1收到ARP广播请求包,会查看ARP请求包帧头中的目标MAC地址,发现是广播地址,就泛洪(交换机的工作过程省略:参考),数据帧到达pc2,pc2解封装,发现是ARP请求报文请求自己的MAC地址,先查看自己的ARP缓存表是否有pc1的ARP缓存,没有的话将pc1的相关内容记录到自己的ARP缓存表中,然后填写完整ARP请求报文,并给该报文封装一个有明确的目标MAC地址(pc1的MAC地址)的帧头,pc2进行ARP单播应答,将数据帧送到交换机1,交换机转发该数据帧到pc1,pc1解封装后成功获得目标MAC地址。
tips:同一网段,直接ARP请求目标MAC地址
不同网段:请求网关的MAC地址
路由器之间的原理类似。
注:
- ARP缓存表会将最后一次接收到的ARP广播请求覆盖ARP缓存表中的记录
- ARP协议没有验证机制
- 路由器不会路由ARP协议的包,下面的攻击欺骗只能用于同一网段中
ARP攻击
作用:使网络无法正常通信(断网)
攻击者不断向外(或者特定对象)发送虚假的ARP报文(MAC地址是伪造的,IP地址是受害者1的),受害者2接收到ARP报文时,会更新自己的ARP缓存表(不断向外发送可以保证自己的ARP记录不会被正主(受害者1)给重新覆盖)。此时,如果将IP地址设置为网关的IP地址,那么受害者的信息就无法通过路由器路由到其他地方。(个人想法:伪造一堆虚假ARP报文发送出去,就该网段就不仅仅只是不能和外界通信,内部也无法通信。)
ARP欺骗
作用:监听、窃取、篡改、控制流量(截获数据),但不中断通信
攻击者向特定对象发送虚假的ARP报文(IP地址是受害者的,但MAC地址是自己的),形成以下关系:
DD向A发送的ARP应答报文目标IP是10.1.1.2,对应MAC是DD,向BB发送类似ARP应答报文,这样当A向B发送的信息通过交换机到了中间人手中,中间人一顿操作后,又将该信息封装后发送给BB。
我觉得也可以广播虚假的ARP报文(所有的IP地址的报文都搞个,MAC地址是自己),这样整个网段的通信都被自己给监听了。但超容易被发现
ARP防御
1、静态ARP绑定
手工绑定/双向绑定(通信双方都得绑定)
Windows客户机上:
arp -a #显示arp缓存表
arp -d #清除arp缓存表,包括静态绑定
arp -s IP地址 MAC地址 #设置静态绑定
arp -s 10.1.1.254 00-20-2c-a0-e1-o9
2、ARP防火墙
自动绑定静态ARP
主动防御
防火墙开机绑定正确网关(用于用户对网关),防火墙使用ARP攻击类似原理,不断向网关发送正确ARP报文(用于网关对用户)。
3、硬件级ARP防御
交换机支持”端口“做动态ARP绑定(配合DHCP服务器)或做静态ARP绑定
动态ARP绑定:在做DHCP请求IP地址时,给请求的端口绑定对应的IP地址和MAC地址,当该接口向外发送ARP报文时,会被检查,不一样会被干掉。
静态ARP绑定:将该端口绑定固定的MAC地址