ARP详细介绍

ARP详细介绍

地址解析协议,根据IP地址获取MAC地址,还能检测地址是否有重复

动态ARP

广播ARP报文寻找目标IP的MAC地址

  1. 主机1通过发送ARP Request报文获取主机2的MAC地址

    ​ 由于不知道目的MAC地址,因此ARP Request报文內目的MAC地址为0

  2. ARP Request是广播数据帧,因此交换机收到后,会对该帧执行泛洪操作

  3. 所有主机接收到ARP Request报文后,都会检查他的目的IP与自身的IP地址是否匹配

  4. 主机2发现IP地址匹配,则会将ARP报文中的发送端MAC地址和发送端IP记录到自己的ARP缓存表中

  5. 主机2通过发送ARP Reply报文来响应主机1的请求,此时主机2已知主机1的MAC地址,因此ARP Replay是单播数据帧

  6. 交换机收到单播数据帧后进行转发

路由器在正常情况下不会执行ARP泛洪,因为ARP是工作在数据链路层(第二层)的协议,而路由器主要工作在网络层(第三层)
但是某些路由器支持ARP代理功能,或者某些网络故障或配置错误的情况下,路由器可能会意外地参与ARP泛洪,如果路由器的某个接口被错误地配置为同一子网内的两个不同IP地址的网关,或者网络中存在环路导致ARP请求被无限循环地广播

命令 用途
show ip arp 思科查看arp缓存表
show int e0/0 查看接口MAC地址
display arp brief 华为查看arp缓存表
arp -a PC查看ARP缓存表
arp -a -N ip PC查看某一个IP对应的MAC地址
为什么第一个包会ping不通?

因为第一个包是ARP协议在探测

动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,可以被静态ARP表项覆盖

缺省情况下,动态ARP表项的老化超时时间为1200秒(20分钟)

​ *被老化指动态ARP表项在一段特定的时间(即老化时间)内如果没有被再次使用或更新,将会被自动从ARP缓存表中删除的过程


静态ARP

静态ARP表项是由网络管理员手工建立的IP地址和MAC地址之间固定的映射关系

静态ARP表项不会被老化,不会被动态ARP表项覆盖

  • 短静态ARP表项:手工建立映射关系时,未同时指定VLAN和出接口
  • 长静态ARP表项:手工建立映射关系时,同时指定该ARP表项所在VLAN和出接口,可以直接用于报文转发
华为命令 用途
arp static ip mac 设置静态ARP
display arp all 查看arp表项
arp expire-time expire-time 设置动态ARP表项的老化超时时间

免费ARP

设备主动使用自己的IP地址作为目的IP地址发送ARP请求

  • IP地址冲突检测:当设备接口的协议状态变为Up时,设备主动对外发送免费ARP报文

    正常情况下不会收到ARP应答,如果收到,则表明本网络中存在与自身IP地址重复的地址

    如果检测到IP地址冲突,设备会周期性的广播发送免费ARP应答报文,直到冲突解除

  • 通告一个新的MAC地址:发送方更换了网卡,MAC地址变化了,为了能够在动态ARP表项老化前通告网络中其他设备,发送方可以发送一个免费ARP

  • 在VRRP备份组中用来通告主备发生变换:发生主备变换后,MASTER设备会广播发送一个免费ARP报文来通告发生了主备变换

设备收到免费ARP报文后,进行如下判断:

  1. 收到免费ARP报文,发现源IP地址和自己的IP地址相同:
    • 周期性的广播发送免费ARP应答报文,告知此IP地址在网络中存在冲突,直到冲突解除
  2. 收到免费ARP报文,源IP地址和自己的IP地址不同:
    • 免费ARP报文是在VLANIF接口收到的,并且设备上已经有免费ARP报文中源IP地址对应的动态ARP表项,则进行ARP学习,即根据收到的免费ARP报文更新该ARP表项
    • 其余情况收到免费ARP报文后均不进行ARP学习

路由式ARP代理

在上述例子的组网中,主机A需要与主机B通信时,目的IP地址与本机的IP地址位于不同网络,但是由于主机A未配置网关,所以它将会以广播形式发送ARP Request报文,请求主机B的MAC地址

但是,广播报文无法被路由器转发,所以主机B无法收到主机A的ARP请求报文,当然也就无法应答

在路由器上启用代理ARP功能,就可以解决这个问题

启用代理ARP后,路由器收到这样的请求,会查找路由表,如果存在主机B的路由表项,路由器将会使用自己的G0/0/0接口的MAC地址来回应该ARP Request

主机A收到ARP Reply后,将以路由器的G0/0/0接口MAC地址作为目的MAC地址进行数据转发

接口下开启arp :arp-proxy enable (默认关闭)

总结:

ARP代理:

  1. 当PC没有设置网关,路由器收到一个ARP请求,但是该请求包的目的地址与收到该ARP包的接口IP不一致,并且路由器的路由表中有去往该目的的网关则会把自己接口的MAC地址回复给请求者,PC本地会对每个去往目的条目都产生一条“目的IP+网关MAC”的缓存

  2. 当目的比较多时则产生的缓存条目也非常多,占用内存,所以建议PC一定要设网关

  3. ARP代理默认关闭

ARP 代理的条件

  1. 路由器拥有去往目标IP的路由
  2. 接收到arp查询的接口的IP地址和arp请求的目标IP本在一个网段
posted @   IwakuraLain  阅读(118)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
返回顶端
点击右上角即可分享
微信分享提示