ARP协议
0x0 ARP封装和报文格式
- ARP被Ethernet 2 封装
- ARP没有IP头部,只是ARP报文内部有send IP和target IP
- 类型号为0x0806
- 其实在操作码后只有四个字段
0x0-1抓包分析
-
arp请求方
- 注解
- 当操作码为1时,tagert mac address应该为全0,可能应为模拟器不同变成全1
- 为啥tagert mac address应该为全0,因为此时发送ARP请求的主机并不知道ip为192.168.1.4这个主机的mac地址
- arp应答方
- 注解
- 操作码为2时,表示这个包是一个ARP应答包
- 冷知识
- ARP为ip层协议,因为需要二层的Ethernet将它封装
- 每个新加入互联网的设备想要访问其他设备,都要先进行ARP请求
- ARP包没有IP包头
0x1 ARP的使用场景?
- 当我 IP 192.168.1.1 想要向 IP 192.168.1.2 的设备进行通信。我在封装完了 数据、源IP、目的IP、源MAC后,我发现我没有192.168.1.2这个设备的MAC地址,所以我的数据帧无法完成封装,就无法进行数据发送。
0x2 ARP是什么?
- ARP叫做地址解析协议,用来将IP地址解析成MAC地址
0x3 ARP如何工作的?
- 请求方发送的ARP报文为广播帧,局域网内的每个设备都可以收到这个广播帧,当一台设备收到了ARP帧后,会拆开第二层数据帧的头部查看第三层网络层的数据包内的内容,比对tagert ip与自己是否相同,相同就回一个ARP应答包
- 应答方,发送APR应答包会把数据帧的源MAC写为自己,目的MAC写为请求方的MAC,ARP报文的sender ip 和tagert ip 对调,MAC对调。
0x4 无故ARP(免费ARP)?
- 请求型无故ARP(请求自己IP的MAC地址)用于重复IP地址检测。
- 应答型无故ARP (请求自己IP的MAC地址)
- 用于刷新其他主机或设备的ARP表。
- 用于刷新交换机的MAC表。
0x5 代理ARP?
- 代理ARP可以实现什么?
- 可以实现跨网段实现ARP解析
- 代理ARP是一种欺骗手段,当路由器开启了ARP代理功能后,PC机会认为自己和想要获取MAC地址的PC处于同一局域网(会把路由器认为是想要通信的PC机)
0x6 RARP?
- 已知mac地址获取ip地址。早期应用在无盘工作站上。