数据包的封装结构:

  • 四层:源端口号 目标端口号
  • 三层:源IP地址 目标IP地址
  • 二层:源MAC地址 目标MAC地址

ARP原理:

当路由器从接口接收到比特流后,首先解封装查看目标MAC地址,若该地址是自己的地址或者是自己所在组的组播地址或者广播地址,都说明该数据是发给自己的,可以继续向上解封装,查看目标IP地址。若目标MAC地址不是自己,路由器直接丢弃。

1、广播请求,目标地址MAC地址为FFFF-FFFF-FFFF。

2、单播回应

ARP的触发条件:

1、访问的目标地址,跟自己的接口在同一网段,会触发ARP请求,如果自己的ARP表中已经存在该地址的映射表项,不会触发ARP请求。

2、如果访问的目标地址,跟自己接口不在同一网段,则使用网关MAC地址作为目标MAC的封装,如果没有网关,无法完成数据报的封装

一、免费ARP(无故ARP)

  • 设备主动使用自己的IP地址作为目的IP地址发送ARP请求,此种方式称之为免费ARP
  • 免费ARP有如下作用:
    • 1、 IP地址冲突检测:当设备接口的协议状态变为Up时,设备主动对外发送免费ARP报文。正常情况下不会收到ARP应答,如果收到,则表明本网络中存在与自身IP地址重复的地址。如果检测到IP地址冲突,设备会周期性的广播发送免费ARP应答报文,直到冲突解除。
    • 2、用于通告一个新的MAC地址:发送方更换了网卡,MAC地址变化了,为了能够在动态ARP表项老化前通告网络中其他设备,发送方可以发送一个免费ARP。
    • 3、在VRRP备份组中用来通告主备发生变换:发生主备变换后,MASTER设备会广播发送一个免费ARP报文来通告发生了主备变换
  • 当设备收到免费ARP报文时,进行如下判断:
    • 如果免费ARP报文中源IP地址和自己的IP地址相同,则周期性的广播发生免费ARP应答报文,告知此IP地址在网络中存在冲突,直到冲突解除
    • 如果免费ARP报文中源IP地址和自己的IP地址不相同,免费ARP报文是在VLANIF接口收到的,并且设备上已经有免费ARP报文中源IP地址对应的动态ARP表项,则进行ARP学习,即根据收到的免费ARP报文更新该ARP表项。其余情况收到免费ARP后均不进行ARP学习。

二、代理ARP(由于路由器隔离广播域)

  • 路由器代替终端发送广播ARP请求,默认关闭。开启命令:[R1-GE0/0/0]arp-proxy enable
  • 如果ARP请求是从一个网络的主机发往同一网段但不在同一物理网络上的另一台主机,那么连接这两个网络的设备(通常是路由器或者三层交换机)就可以回答该arp请求,这个过程称之为ARP代理。通过代理ARP,本地设备获得的远端主机地址不是其真正的MAC,而是本地直连设备接口的MAC地址(主机网关的MAC地址)。
  • 触发条件
    • 代理ARP开启
    • 目标IP地址可达,并且本地到达目标地址的出接口和接受ARP请求报文的入接口不一致
  • 三种Proxy ARP方式
    • 1、路由式Proxy ARP:需要互通得到主机(主机上没有配置缺省网关)处于相同的网段但不在同一物理网络(即不在同一广播域)的场景
    • 2、VLAN内Proxy ARP:需要互通的主机处在同网段,并且属于相同VLAN,但是VLAN内配置的端口隔离的场景
    • 3、VLAN间Proxy ARP:需要互通的主机处在相同网段,但属于不同VLAN的场景

1、路由式代理ARP实例 :

当Host_1需要与Host_2通信时,由于目的IP地址与本机的IP地址为同一网段,因此Host_1以广播形式发送ARP请求报文,请求Host_2的MAC地址。但是,由于两台主机处于不同的物理网络(不同广播域)中,Host_2无法收到Host_1的ARP请求报文,因此也就无法应答。
        通过在Router上启用路由式Proxy ARP功能,可以解决此问题。启用路由式Proxy ARP后,Router收到ARP请求报文后,Router会查找路由表。由于Host_2与Router直连,因此Router上存在到Host_2的路由表项。Router使用自己的MAC地址给Host_1发送ARP 应答报文。Host_1将以Router的MAC地址进行数据转发。此时,Router相当于Host2的代理。如图所示,Host_1上的AR表项中到目的地址Host_2的IP地址对应的MAC地址为Router的VLANif10接口的Ac地址。

2、VLAN内代理ARP实例

由于在Router上配置了VLAN内不同接口彼此隔离,因此Host_1和Host_2不能直接在二层互通。
若Router的接口使能了VLAN内Proxy ARP功能,可以使Host_1和Host_2实现三层互通。Router的接口在接收到目的地址不是自己的ARP请求报文后,Router并不立即丢弃该报文,而是查找该接口的ARP表项。如果存在Host-2的ARP表项,则将自己的MAC地址发送给Host_1,并将Host_1发送给lost_2的报文代为转发。实际上此时Router相当于Host_2的代理。

3、VLAN间代理ARP实例

由于Host_1和Host_2属于不同的Sub-VLAN,Host_1和Host_2不能直接实现二层互通。
如果Router上使能了VLAN间Proxy-ARP功能,可以使Host_1和Host_2实现三层互通。Router的接口在接收到目的地址不是自己的ARP请求报文后,并不立即丢弃该报文,而是查找ARP表项(包括动态学习的ARP表项和静态配置的ARP表项),如果存在Host_2的ARP 表项,则将自己的MAC地址发送给Host_1,并将Host-1发送给Host_2的报文代为转发。实际上此时Router相当于Hoat_2的代理。

华为技术之ARP-地址解析协议相关推荐

  1. 《TCP/IP详解 卷1:协议》第4章 ARP:地址解析协议

    4.1 引言 本章我们要讨论的问题是只对TCP/IP协议簇有意义的IP地址.数据链路如以太网或令牌环网都有自己的寻址机制(常常为48 bit地址),这是使用数据链路的任何网络层都必须遵从的.一个网络如 ...

  2. ARP地址解析协议与RARP逆地址解析协议

    这里写目录标题 区分ARP与RARP ARP:地址解析协议 ARP高速缓存 ARP高速缓存超时设置 用户输入命令时ARP操作流程 ARP的分组格式 ARP代理 免费ARP RARP逆地址解析协议 RA ...

  3. 3、以太网基础知识——ARP地址解析协议原理

    返回目录 上一篇 下一篇 概述 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议.网络层以上的协议用IP地址来标识网络 ...

  4. 【实施工程师】ARP——地址解析协议(高清版本)

    完整的[ARP--地址解析协议]图 希望对大家有所帮助

  5. ARP地址解析协议原理

    概述 网络层以上的协议用IP地址来标识网络接口,但以太数据帧传输时,以物理地址来标识网络接口.因此我们需要进行IP地址与物理地址之间的转化. 对于IPv4来说,我们使用ARP地址解析协议来完成IP地址 ...

  6. 【ARP地址解析协议(完整解析过程、ARP欺骗、免费ARP、ARP代理)】-20211125【下】

    目录 一.ARP地址解析协议 ARP地址解析协议:将IP地址解析为Mac地址 ARP地址解析过程 1)pc1首先会查询自身的ARP缓存表,是否存在目标ARP缓存条目. ARP请求报文(原理) 2)由于 ...

  7. 【计算机网络学习笔记09】ARP地址解析协议

    [计算机网络学习笔记09]ARP地址解析协议 ARP地址解析协议 在实际应用中,我们常会遇见这样的问题:已知一个机器(主机或路由器)的IP地址,需要找出其相应的硬件,这时就需要使用到地址地址解析协议( ...

  8. ARP地址解析协议详解

    ARP地址解析协议详解 网络层的ARP协议完成IP地址与物理地址的映射.首先,每台主机都会在自己的ARP缓冲区中建立一个ARP缓存表,以表示IP地址和MAC地址的对应关系.当源主机需要将一个数据包发送 ...

  9. 什么是ARP(地址解析协议)?(Powercert animated videos)

    什么是ARP(地址解析协议)?IP地址和MAC地址如何连接起来 本篇文章源自以下视频链接的字幕: [IT硬核动画搬运/中英双字]什么是ARP(地址解析协议)?IP地址和MAC地址如何连接起来(Powe ...

  10. 广播地址的作用_跟百哥学网络16:ARP地址解析协议分析

    百哥的第17篇原创 前言:我们知道,数据在网络中传输,和快递包裹一样,必须写上源地址和目标地址.数据包的地址又分为ip地址和mac地址.ip地址是互联网地址,标识了这个数据包的最终目的地.mac地址是 ...

最新文章

  1. Java数据结构与算法(一) 数组
  2. iOS 关于第三方键盘
  3. MFC中的资源视图和如何打开资源视图
  4. cacti-0.8.7d安装
  5. SPUtility.ParseDate使用问题
  6. 分布式全局ID生成器设计
  7. Web应用开发平台 OpenJWeb
  8. 字节回应阿里涉侵犯男员工曾面试并通过一面;HarmonyOS 2.0用户数升至5000万|极客头条...
  9. 阿里专家与你分享:你必须了解的Java多线程技术
  10. oracle sql 拆分字符串,oracle 拆分字符串
  11. 用计算机画频率分布直方图,频率分布直方图
  12. windows PE结构解析
  13. 小米手机线刷USB3.0的问题
  14. 了解计算机软件系统教学设计,认识计算机教学设计及反思
  15. NIXIE_TUBE
  16. 基于Python、scrapy爬取软考在线题库
  17. 如何减少万兆以太网线外部串扰
  18. MySQL 数据库管理之 --- 日志查询
  19. Ubuntu系统 USB设备端口绑定
  20. 量子计算机与低温,逼近绝对零度,和外太空一样的低温_服务器评测与技术-中关村在线...

热门文章

  1. vue 多层双层全选_vue2.0 实现全选和全不选
  2. Spring Boot 实现配置文件加解密原理
  3. ElasticSearch编程--基本的创建与查询操作
  4. 大教育时代,微淼如何打造符合时代需求的高质量财商教育?
  5. 唯众高职物联网应用技术专业解决方案
  6. 【金猿案例展】搜狐畅游——《小浣熊百将传》买量营销升级
  7. 强烈建议收藏的JS工具函数大全
  8. 了解JESD204B规范的各层—— 从高速ADC的角度出发
  9. 文件移动renameTo()与move()
  10. Linux 休眠,挂起(待机),关机等几个命令的区别及如何实现;如何启用Ubuntu的休眠模式...