地址解析协议(ARP)

地址解析协议(ARP)


在同一局域网内,主机需要访问其他网络设备,但是只知道目标IP地址但是并不知道对方的MAC地址,这样是无法进行通信的。IP数据必须封装成帧才能通过物理层,所以要有IP地址到物理地址存在映射,换句话讲就是必须有目的MAC才可以进行数据传输。

ARP协议基本信息

ARP作用:将IP地址解析为以太网MAC地址。
ARP报文结构:

  • 目标IP——(手动:ping、自动:DNS)
  • 源IP——(手动:静态配置、自动:DHCP)
  • 源MAC——(手动:手动分配、自动:厂商分配)
  • 目的MAC——(手动:静态绑定ARP、自动:ARP)
  • DATA
  • FCS

特点

  • ARP包可能是网络中的第一个包
  • 其他协议的辅助协议

ARP解析过程

同网段通信

  • 将源IP和目标IP与掩码相与,判断是否在同一个网段
  • 主机先查看自己的ARP表,如果有对应的ARP条目,则会利用表中MAC地址,直接对IP数据包进行封装,并将数据包转发给目标主机
  • 若没有查找的相应的ARP表项,那么就会进行以下步骤
    1、主机A发送ARP Request广播报文,源MAC为自身的MAC,目的MAC为全F的广播MAC。Target IP为目的IP,Target MAC为全0的MAC。
    2、主机B收到ARP Request 报文,发现Target IP是自己接口的IP,会发送一个ARP Reply 报文,并通过ARP Request报文中的sender IP和sender MAC来更新自己的ARP表项。
    3、主机A收到ARP Reply 报文发现Target IP是自己的接口IP并且自身ARP缓存表中存在相应的ARP请求信息,并通过ARP Reply报文中的sender IP和sender MAC来更新自己的ARP表,同时将数据包进行二层封装后发送出去。

跨网段通信
在这里插入图片描述

  1. PC1先将目标IP与自身掩码相与,发现该网段与自身网段不同,且自身ARP缓存表中无网关缓存条目,此时就会发送一个ARP Request广播报文,请求网关的MAC地址,并且在本地ARP缓存中生成一条MAC全为0的临时条目。
  2. 路由器收到ARP Request的广播报文,发现Target IP是自己的接口IP,回应一个ARP Reply的单播报文,通过Request报文中sender IP和sender MAC来更新自己的ARP表,然后开始发送icmp的请求报文。
  3. PC1收到ARP Reply报文,发现Target IP是自己的接口IP,并且自己的ARP缓存表中有相应的ARP请求信息,通过ARP Reply报文中的信息来对自己的ARP缓存表进行更新,建立连接之后会开始发ICMP报文。
  4. 路由器收到了ICMP请求报文之后解封装该报文,根据目的IP查找本地路由表,结果发现是直连路由,但是本地ARP缓存中并没有PC2的MAC地址,此时有需要发送ARP Request 请求,在本地生成一条全0的TargetMAC的临时条目。
  5. pc2收到arp request报文后,发现target ip是自己 接口的ip,发送一个arp reply单播报文,并且根据arp request中的sender ip和sender mac来更新自己的arp表
  6. 路由器收到arp reply报文,发现target ip是自己的 ip,通过arp request报文中的sender ip和sender mac 来更新自己的arp表,开始发送去往pc2的icmp请求报文
  7. pc2收到报文后,解封装该报文,发现目的ip是自 己,接受该报文,发送icmp的回应报文,源ip与自己的 掩码相与,发现与自己是不同网段,所以要把该报文发给 网关,通过自己的arp表中的条目来封装二层头部,并发 送该报文
  8. 路由器收到icmp回应报文,解封装该报文,发现目 的ip不是自己,查路由表发现是直连网段,并且arp表中 有pc1的条目,根据arp表来封装icmp报文并从直连接口 发送出去
  9. pc1收到icmp的回应报文,解封装该报文,发现目的 ip是自己,并接收该报文

一次路由,多次交换,源目ip不变,源目MAC逐跳变, ARP帮助路由打通下一跳

ARP缓存

静态ARP表项

静态ARP表项通过手工配置和维护不会老化,不会被动态ARP表项覆盖

短静态ARP表项

在配置静态ARP表项时,除了配置IP地址和MAC地址外,还必须配置ARP表项所在VLAN和出接口。

长静态ARP表项

在配置短静态ARP表项时,只需要配置IP地址和MAC地址项。如果出接口是三层以太网接口,短静态ARP表可以直接用于报文转发,如果出接口是VALN虚接口,短静态ARP表项不能直接用于报文转发,当要发送IP数据包时,先发送ARP请求报文 ,如果收到响应报文中的IP源地址和源MAC地址与配置的IP地址和MAC地址相同,则将接受ARP响应报文的接口加入静态ARP表项中,之后用于IP数据包的转发。

动态ARP表项
动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的
ARP报文更新,可以被静态ARP表项覆盖。当到达老化时间、接口down时会删除相应的动态ARP表项。(缺省老化时间120s)

代理ARP(Proxy ARP)

普通代理ARP
启用代理ARP之后,Router可以应答Host A的ARR请求。同时Router相当于Host B的代理,把从其他主机发送过来的报文转发给他

代理ARP可以只被应用在一个设备上(作用相当于网关)不会影响到网络中其他设备的路由表。代理ARP功能可以在IP主机没有配置缺省网关或者IP主机没有任何路由能力的情况下使用

静态路由的下一跳和出接口的区别
出接口
不开代理ARP:无法进行通信
开代理ARP:(出口路由器)会产生大量的ARP条目对设备CPU和表项压力过大。
下一跳IP:无论多少个人上网,ARP请求只有一个。

免费ARP

如何判断是否为免费ARP:
当ARP报文中Target IP和Sender IP一样时即为免费ARP。
若存在ARP表项:设备会根据免费ARP报文中携带的信息来更新对应的ARP表项。
若不存在ARP表项:设备会根据该免费ARP中携带的信息来新建ARP表项。

定时发送免费ARP功能的作用:

  • 防止仿冒网关ARP攻击
  • 防止主机ARP表项的老化
  • 防止VRRP虚拟IP地址的冲突
  • 及时更新模糊终结VLAN内设备的MAC地址表

设备通过对外发送免费ARP报文来确定其他设备的IP地址是否与本机IP地址冲突,当其他的设备收到免费ARP报文之后,如果发现报文中的IP地址和自己的IP地址相同,则会给发送免费ARP的设备发送一个arp应答,告知该设备IP地址冲突。若设备改变了硬件地址,通过发送免费arp报文来通知其他设备更新arp表项。

正常情况下的ARP表

ARP表变化

arp request报文更新ARP表的条件: arp报文中target IP为自己,且用arp报文中的sender IP和sender MAC地址来更新自己的ARP表。

arp reply报文更新ARP表的条件:arp报文中target IP是自己,且arp表中存在sender ip的表项,用arp报文中的sender IP和sender MAC来更新自己的ARP表。

免费ARP报文更新ARP表的条件:免费arp是一种特殊的arp request/reply报文即senderIP和target IP一致。当arp表中已经存在target IP/MAC表项,用ARP中的sender IP和sender MAC来更新自己的ARP表。

ARP报文

ARP广播
在这里插入图片描述
ARP Request

在这里插入图片描述
ARP Reply
在这里插入图片描述

ARP防范技术

接入设备攻击防范:
针对仿冒网关攻击
对arp报文的合法性进行检查,如果合法则进行后续处理,如果非法直接丢弃报文。

  • ARP过滤保护功能
  • ARP网关保护功能
  • ARP Detection功能:在vlan下开启arp Detecting,该vlan收到的所有arp报文应答将被重新定向到cpu进行报文合法性和 有效性检查,合法转发,反之则丢弃。

针对仿冒用户攻击
对arp报文的合法性进行检查,如果合法则进行后续处理,如果非法直接丢弃报文。

针对ARP泛洪攻击:ARP报文限速功能

网关设备攻击防范

针对仿冒网关攻击
通过合法方式建立正确的ARP表项,并阻止攻击者修改

  • 授权ARP功能
  • ARP自动扫描和固化功能
  • 配置静态ARP表项

动态学习ARP表前进行确认,保证学习到的是真实的正确的映射关系。

  • ARP主动确认功能:开启主动确认功能后,设备在新建或更新前需要去进行主动确认,防止产生错误ARP表项
  • ARP报文源MAC一致性检查功能

针对ARP泛洪攻击

  • 源MAC地址固定的ARP攻击检测功能
  • 限制接口学习动态ARP表项的最大条目
  • ARP防IP报文攻击功能
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ACHAI:)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值