ARP协议在同网段和不同网段的工作原理

参考https://blog.csdn.net/xiaobai729/article/details/122501029

ARP(AddressResolution Protocol )地址解析协议,工作在数据链路层,他将网络层地址映射到物理层地址(已知IP地址,查MAC地址)

  • ARP缓存表
    • IP地址到MAC地址的映射表
    • 通常有过期时间
      • arp缓存表里的数据会自动更新,过几分钟后会删除,重新学习
    • 只要是配置了IP地址的设备都有arp缓存表:电脑、手机、路由器、三层交换机
原理(同网段)

host1查找自身缓存表(没有查到) --> 发送arp请求 --> 交换机对该广播帧进行泛洪操作并学习 --> host2查询到是询问自己,先学习再回复 --> 交换机转发单播帧并学习 --> host1收到回复后学习

ARP请求:帧封装的目的IP是12个F – 广播
交换机收到后会直接对该帧进行泛洪(广播)操作,并且学习该IP的MAC地址以及端口号到交换机自己的MAC缓存表

所有主机都接受到该ARP Request报文后,都会检查该帧的目的IP地址与自身的IP地址是否匹配,不匹配就直接丢弃,Host2发现与自己IP地址匹配,就会先把发送端的IP与MAC地址信息记录到自己的ARP缓存表之中,然后Host2就会发送ARP Reply报文

ARP响应:对应的某台电脑回应请求ARP请求包 – 单播
交换机收到单播数据帧以后,会对该帧进行转发操作,并且学习Host2的MAC地址和端口号到自己的MAC缓存表

Host1收到Host2的ARP Reply报文后会检查目的IP与自己IP地址字段是否相同,如果匹配就将回应报文的源IP地址与MAC地址学习到自己的ARP缓存表之中,然后就可以传输信息进行通信

host1有了host2的MAC地址后,将MAC地址封装到目的MAC地址,然后传输信息

在不同网段的原理
  1. host1在封装数据时发现自身没有host2的MAC地址,于是查询ARP,ARP缓存也没有该IP的MAC地址信息,而且通过子网掩码计算不是本网段,跨网段就需要找网关,查询ARP表内没有网关的MAC地址
  2. host1把要发送的数据放入缓存,发送ARP请求网关的MAC
  3. 交换机收到请求之后学习源MAC和端口并进行泛洪操作
  4. 路由器(网关)收到广播数据后,学习host1的MAC信息,发现请求的目的IP正是自己,回复一个ARP响应
  5. 交换机收到响应后学习网关的MAC和端口,转发
  6. host1收到响应后,将缓存的数据拿出,目的IP为host2的IP,目的MAC为网关MAC,发送
  7. 路由器(网关)收到这个数据包后发现IP不是自己,于是查询路由表,找通向另一个网段的地址,准备从对应的网关发送,查询MAC表,如果有就转发,没有就发送ARP请求询问host2的地址
  8. 交换机收到ARP请求之后学习MAC和端口并泛洪
  9. host2收到之后学习并响应
  10. 交换机收到响应后学习并转发
  11. 路由器(网关)收到后封装目的IP以及目的MAC,源IP为host1源MAC为路由器的出口MAC地址发送
  12. 交换机查询并转发
  13. host2收到解封装,回复给网关

同网段通过MAC地址进行通信,跨网段通过IP地址进行通信

路由器隔绝广播域,交换机隔绝冲突域

源IP地址和目的IP地址是始终不变的

  • ARP攻击
    • 攻击者向目标主机发送虚假的ARP响应,伪造IP和MAC地址之间的映射关系,主机会将数据包发送到错误的目标地址
    • 破解 – 静态绑定正确网关的MAC地址 arp -s <ip> <mac>
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ARP协议(地址解析协议)是一种用于将IP地址转换为MAC地址的协议,其工作原理如下: 在相同网段上: 1. 当主机A需要与主机B通信时,首先会检查本地ARP缓存表(ARP Cache)中是否已有主机B的MAC地址。 2. 若ARP缓存表中不存在主机B的MAC地址,则主机A会向本地网络广播一个ARP请求包(ARP Request),请求该网络上所有主机返回其对应的MAC地址。 3. 当主机B收到ARP请求包时,会向主机A回复一个ARP响应包(ARP Reply),包含其MAC地址。 4. 主机A收到ARP响应包后,将主机B的MAC地址存储到本地ARP缓存表中,并使用该地址向主机B发送数据包。 在不同网段上: 1. 当主机A需要与主机B通信时,首先会检查本地ARP缓存表中是否已有主机B的MAC地址。 2. 若ARP缓存表中不存在主机B的MAC地址,则主机A会查找其默认网关(Gateway)的MAC地址,通常是路由器的MAC地址。 3. 主机A向路由器发送数据包,并将目标MAC地址设置为路由器的MAC地址。 4. 路由器接收到数据包后,将其转发到目标主机B所在的网络,并向主机B发送ARP请求包,请求其MAC地址。 5. 主机B收到ARP请求包后,向路由器回复一个ARP响应包,包含其MAC地址。 6. 路由器收到ARP响应包后,将其转发给主机A,并将主机B的MAC地址存储到本地ARP缓存表中。 7. 主机A收到数据包后,会将主机B的MAC地址存储到本地ARP缓存表中,并使用该地址向主机B发送数据包。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值