第四章ARP地址解析协议

  • 引言:
    • IP协议设计目标是为跨越不同类型物理网络的分组交换提供互操作.由硬件交换的帧需要使用正确的硬件地址定位到正确的接口.否则无法传输数据.
    • ARp地址接续是发现两个地址之间的映射关系的过程,对于使用IPv4的TCP/IP协议族,这是由运行的ARP来实现的.ARP是一个通用的协议,从这个意义上来看,它被设计为支持多种地址之间的映射.
    • ARP提供从网络层地址到相关硬件地址的动态映射,我们使用动态这个属于是因为它会自动执行和随时间编发,而不需要系统管理员配置,也就是说,如果一台主机改变它的网卡,从而改变了它的硬件地址,ARP可以在一定延时之后继续正常运作,ARP操作通常与用户或系统管理员无关
  • ARP帧格式

    • 长度或类型
      • ARP请求或应答的字段必须为0x0806
    • 发送方的硬件地址,发送方的协议地址,目的硬件地址,目的协议地址
      • 如字面意思,指相应方的IP地址和MAC地址
    • 硬件类型
      • 指出硬件地址类型,对于以太网,该值为1
    • 协议类型
      • 指映射的协议地址类型,对于IPv4地址,该值为0x0800
    • 硬件大小和协议大小
      • 分别指代硬件地址和协议地址的字节数,对于以太网中的IPv4地址的ARP请求或应答,两个值的大小分别为6和4
    • Op
      • 指该帧的操作类型
        • 1:ARP请求
        • 2:ARP应答
        • 3:RARP请求
        • 4:RARP应答
    • 简单过程
      • 当发出ARP请求时,将Op置为1表示该帧为一个ARP请求帧,并将目的硬件地址字段置为0(因为该字段就是我们发出ARP帧的最终目的,也就是查询IP对应的硬件地址,所以在发出时是未知的,所以置为0),其他字段进行填充后发出,当IP目标方接收到该帧时,将目的硬件地址填充,并交换发送地址和目的地址的数值,Op值填为2,生成应答.
  • ARP缓存超时
    • 一个完整的ARP缓存表内的每个条目都会有一个20分钟的计时,当超过这20分钟的计时时,该条目会被删除,如果需要重新链接,会重新发起ARP请求
    • 20分钟为可设定时间,可以设置为永不删除,
    • 每次使用条目后,该条目的计数时间会被重置,重置为设置时间,缺省值为20分钟
    • 当链接到一个不完整条目,如发出ARP请求后没有接收到ARP应答的条目,该条目仅保存3分钟的时间.
  • 代理ARP
    • 代理ARP主要的目的是隐藏两个物理网络内的相互关系,因为路由器不会转发广播,所以当ARP请求发出时,当开启代理ARP的路由器发现请求的目的协议地址属于自己另一个子网时,会代替子网的主机进行应答,隐藏了两个主机
  • 负面影响
    • 增加了某一网段上ARP流量
    • 主机需要更大的ARP table来处理IP地址到MAC地址的映射
    • 安全问题,比如ARP欺骗(spoofing)
    • 不会为不使用ARP来解析地址的网络工作
    • 不能够概括和推广网络拓扑
  • 免费ARP
    • 免费ARP会将目的地址填充为自己当前的协议地址进行广播,目的是查询当前广播域是否存在与自己相同协议地址的主机,免费ARP的广播帧往往不会收到应答消息,收到后即表示广播域有一个系统配制出错,存在拥有相同IP的系统
    • 当发送方的硬件地址被替换时,可以放松免费ARP,对当前广播域内的ARP表进行更新,当收到免费ARP时,会更新IP所关联的硬件地址
  • 地址冲突检测(ACD)
    • 分为ARP探测分组和ARP通告分组
      • ARP探测分组是一个ARP请求分组,发送协议地址为0,目的协议地址填写为检测地址(候选地址,希望查询是否冲突的目标地址)用于查看一个候选IPv4是否被其他系统占用,
      • ARP通告分组是用来通告当前广播域,发送方使用候选地址的意图.
  • 由于ARP查询是在一个广播域内以以太网地址ff:ff:ff:ff:ff:ff进行广播,所以首先要知道所谓的广播域的边界是什么?
    • 当一个主机发出广播消息时,能接受到该消息的所有集合称为一个广播域,通常以一个路由器(router)为分割的局域网内主机的集合就称为广播域
  • 问题一:
    • 当查询地址为外网IP时候,不在本地广播域,ARP该如何查询目标地址的物理地址?
      • ARP仅为本地广播域的地址解析协议,由于路由器(router)的隔离,无法查询外部的物理地址.需要通过其他的协议或者方法.
  • 问题二:
  • 免费ARP有什么作用?
    • 免费ARP会将目的地址填充为自己当前的协议地址进行广播,目的是查询当前广播域是否存在与自己相同协议地址的主机,免费ARP的广播帧往往不会收到应答消息,收到后即表示广播域有一个系统配制出错,存在拥有相同IP的系统
    • 当发送方的硬件地址被替换时,可以放松免费ARP,对当前广播域内的ARP表进行更新,当收到免费ARP时,会更新IP所关联的硬件地址
  • 问题三:
    • ARP相关的攻击?
      • ARP代理相关
        • 由于ARP代理是隐藏两个网络之间的互相关系,所以,利用这点可以假扮主机,对不存在的ARP请求进行应答,将流量导出到错误的目的地
        • 当一台主机被连接到多个网络,ARP条目被ARP表"遗漏"时,也会将流量引导到错误的网端上,linux可以修改/proc/sys/net/ipv4/conf/*/arp_filter 为1的值,可以解决该问题
        • ARP缓存中对重要主机使用静态条目,目的是提高运行效率,可是,静态条目可以通过ARP应答进行更新,可以利用这点,将静态条目的物理地址更改成错误的地址.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值