地址解析协议ARP
网络层四大协议:ARP协议,IP协议,ICMP协议,IGMP协议。
ARP(Address Resolution Protocol)协议:地址解析协议:根据IP地址获取物理地址的一个TCP/IP协议。
-
工作原理:
- 每个主机设有一个ARP高速缓存(ARP cache),里面有本局域网上的各主机和路由器的IP地址到硬件地址的映射表,这些是该主机目前知道的一些地址。
- 当主机A需要向主机B发送ip数据报时,在ARP cache上映射表里找目的ip。
- 如果有,就获取对应的硬件地址,再把硬件地址写入MAC帧,然后通过局域网把该MAC帧传入此目的地址。
- 如果ARP cache上映射表中没有目的ip,则可能是主机B才入网,也可能是主机A刚加电,缓存还是空的,则执行以下步骤。
- 主机A的ARP进程在局域网广播(目的地址为FF-FF-FF-FF-FF-FF)ARP请求分组,内容是"我的IP是xxx,硬件地址是xxx,我想知道IP地址为xxx的主机的硬件地址"
- 所有主机ARP进程收到此ARP请求分组
- 局域网内所有主机查询此ARP请求分组内的ip,如果与自身ip一致,向主机A发送ARP响应分组,如果不一致,则忽略(丢弃)
- 主机A在ARP cache上映射表内加一项,主机B和硬件地址。
- 一些特点
- 主机A向主机B发arp请求分组时,把自己的IP和硬件地址的映射也带上,主机B就可以直接往自己的映射表里加A的关系,就不用重新给A发ARP请求分组了。
- ARP解决的是同一个局域网上的问题。
- ARP缓存映射表是有生存时间(比如几分钟)的,某条信息过了生存时间就会将信息删除掉。
-
windows可以用 arp -a ,linux用apr -g查询ARP缓存映射表中的信息
-
ARP欺骗
地址解析协议是建立在网络中各个主机互相信任的基础上的,它的诞生使得网络能够更加高效的运行,但其本身也存在缺陷:
ARP地址转换表是依赖于计算机中高速缓冲存储器动态更新的,而高速缓冲存储器的更新是受到更新周期的限制的,只保存最近使用的地址的映射关系表项,这使得攻击者有了可乘之机,可以在高速缓冲存储器更新表项之前修改地址转换表,实现攻击。ARP请求为广播形式发送的,网络上的主机可以自主发送ARP应答消息,并且当其他主机收到应答报文时不会检测该报文的真实性就将其记录在本地的MAC地址转换表,这样攻击者就可以向目标主机发送伪ARP应答报文,从而篡改本地的MAC地址表。 [5] ARP欺骗可以导致目标计算机与网关通信失败,更会导致通信重定向,所有的数据都会通过攻击者的机器,因此存在极大的安全隐患。