ARP基础知识

作者: 耗子 分类: 渗透基础知识 发布时间: 2017-10-11 09:11

0x01 基本概念

Arp是地址解析协议,通过IP地址获取 物理地址(MAC)

 

0x02 出现缘由

OSI七层协议中,IP位于第三层网络层,MAC位于第二层数据链路层,发送数据包时候需要从上往下依次封装IP包头和MAC包头,封装到IP时候不知道MAC地址,只知道IP地址,所以要通过arp协议去通过IP地址获取MAC

 

0x03 工作原理

 

  • A和B在同一广播域

A向B通信之后,A会查询自己的arp缓存表,如果有B的MAC,直接通信。如果没有,像广播域发送arp请求到所有主机,如果不匹配直接丢低,如果匹配把A的MAC储存到B的arp缓存里,然后发送包含B的mac响应包给A,A收到后用B的IP和MAC映射缓存。主机B的地址确定后,A和B就可以通信。

 

  • A和B不在同一广播域

A发现B不在同一个子网上,此时A会将数据送入网关(默认路由),由网关转发。这个时候这条消息实际上是发给网关的,网关收到了之后才会根据它自己的路由表继续做转发。

假如A和B之间有2个路由器R1、R2

消息实际是这样的:

A->R1 二层目标地址:R1的MAC;三层目标地址:B的IP

R1->R2 二层目标地址:R2的MAC;三层目标地址:B的IP

R2->B 二层目标地址:B的MAC;三层目标地址:B的IP

每一次转发,路由器都会把原来的二层数据包剥下来,换上自己的。

 

3.A在外网B在内网

假设A(公网IP)–R1–NAT(公网IP,路由器)–B(内网IP),消息的实际传递过程:

A->R1 二层目标地址:R1的MAC;三层目标地址:NAT的IP

R1->NAT 二层目标地址:NAT的MAC;三层目标地址:NAT的IP

NAT->B 二层目标地址:B的MAC;三层目标地址:B的IP

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注