网络攻防技术快速入门: ARP理解与实践

对ARP的理解

Address Resolution Protocol, 地址解析协议 (RFC826),是一个网络层 协议,在协议栈中处于IP协议之下
网络攻防技术快速入门: ARP理解与实践

1.为什么要引入ARP?
在TCP/IP网络模型的第2层(链路层)和第3层(网络层)之间,链路层用48bit的物理地址来标识主机或路由器,这个地址在局域网中是唯一的,但在互联网中却不一定。当发送数据时,发送端必须知晓这一物理地址。所以我们需要将链路层的48bit物理地址(MAC地址)和网络层的32bit逻辑地址(IP地址)绑定起来做映射。
静态映射: 简单地将所有映射关系都存储并且让所有主机都定期更新它,开销大。
动态映射: 包括了ARP(IP->MAC)和RARP(MAC->IP)

2.动态ARP高速缓存(Cache)
动态ARP表项Windows下的命令(centos linux下也可以用)有
arp -a 显示地址映射表项
arp -d 删除
arp -s ip phy 增加由 ip, phy 指定的静态表项
arp /? 帮助

3.ARP协议格式&过程
格式: 可参见wiki
Source IP
Source MAC
Destination IP
Destination MAC

假设发送端为A, 接收端为B,B和A处在同一个局域网中
A要发送IP数据包到B,
1.检查ARP Cache里是否有B的物理地址,有则将此地址写入Destination MAC发送,否则2
2.A向局域网中所有主机发送(也就是广播 )一个ARP Request,这里由于不知道目的地址,填入的是FF:FF:FF:FF:FF:FF,目的地址填B的Ip address
3.局域网中除了B之外的主机丢弃这一请求报文
4.B将ARP Request中的A的 Ip和mac写入自己的ARP Cache中,单播 返回ARP Reply报文给A,源MAC就是A需要的地址

ARP的应用

1.Proxy ARP
特点:将路由器作为其连接的子网的代理,所有发给这些子网的ARP都直接从路由器返回

2.Gratuitous ARP
特点:
Souce IP == Destination IP == 本机IP
Souce MAC == 本机MAC
Destination MAC == 00:00:00:00:00:00
作用:
检验IP地址的冲突
当发送端更新了自己的硬件地址之后,广而告之别的主机这一事实

3.RARP(Desolated, 逐渐被BOOTP/DHCP取代)

ARP欺骗

原理: 如果ARP Request 发送端的IP和MAC故意写错会怎样?…
假设

安装和使用网络封包工具

安装不多赘述,这里使用的Colasoft Packet Builder2.0版本,需要以管理员权限运行(win7需要,win10不确定),否则进入界面之后会遇到Not find Adapter 问题