HCIA-ARP

ARP的由来

ARP这一种协议它会是在我们HCIA中第一个需要完全掌握的一个协议,不然对于数据通讯来说大家都会一直觉得很绕圈

  • 协议栈,网线,网卡,它们组成了我们最小的数据通信的小脉络
  • 注:可以了解ARP攻击(冒充访问的目的设备给你错误的mac),需要内网中的攻击防范手段(需中级高级学习)
    在这里插入图片描述
  • S-IP:源IP
  • D-IP:目的IP

对于IP协议来说是能获取到对方IP的,但是怎么拿到对方的MAC
对于E2来说我知道源MAC(自己的MAC)
假设左边的MAC是00-00-01,右边的MAC是00-00-02
源mac我是知道的S-MAC:00-00-01但目的MAC我们不知懂。对于MAC来说是全球唯一,出厂自带,烧录进网卡芯片中。那我们怎么拿到这个MAC地址
我们1.1.1.1/241.1.1.2/24发报文,我们无法通过程序或者从上层的协议感知一下。

我们可以填写成全1以一个广播的形式,在我整个广播域下找对应的设备,当我们目的mac全为1(十六进制全为F)的时候,整个网络中所有的设备都能收到这样的一个报文
我不知道怎么到达主机2但是我知道我的数据如何让你收到(发个广播)
这种方式在我们整个通信中可以接入我们一个的交换机的,未来会有很多的设备通过交换机与主机相连,通过广播的形式,会对全部相连的设备都能收到数据(默认交换机是不做配置)这样主机2确实能收到,但是其他的设备也能收到,这样的网络通讯叫多点网络通信是无法满足我们单播通讯的条件的。没有办法跟设备2进行通信。
所以对我们TCP/IP通信设计的模型来说是无法仅仅依靠二层(数据链路层)完成mac地址的查询(填写/封装),数据仅仅放在E2这里MAC地址封装不了,所以得开发个协议帮助填写我们的mac字段;无法封装mac地址数据无法发送出去(不符合我们数据整体的通信方式)出现的新的协议就是ARP

同网段

ARP协议

ARP — 地址解析协议
概念:在已知IP地址的情况下,求与之对应的MAC地址
ARP是基于数据链路层封装的2.5层协议(数据链路层之上)
3层需要提供最基础的IP寻址包括路由的功能;ARP仅在数据封装时封装在我们数据链路层之上

  1. 当我数据(PC1,1.1.1.1/24)要进行数据通讯,要去访问PC2的时候(1.1.1.2/24)首先会检测对端IP是否在同一网段(对比网络地址:自己的IP+自己的掩码,比对对方的IP+自己的掩码)若网络地址相同,就会进行第二步,不同
  2. 1.5步: 查看本地的ARP缓存,在缓存中是否有该IP对应的MAC,如果有则直接进行数据封装,如果没有则再进行下一步
  3. 借用ARP协议实现获取对方IP对应的MAC
    对于ARP这个新协议来说它的数据帧是在这里插入图片描述
对于ARP而言有四个核心的参数
  1. sender-ip:发送者IP
  2. sendee-mac:发送者的MAC
  3. target-ip:目标IP
  4. target-mac:目标MAC

未来这个报文会发送到PC2上
target-mac是不能不填的,如果不填(封装)是不符合TCP/IP协议栈的封装标准(发不出去),我们不知道mac又要填MAC,其实我们可以填全0(未知)

我们不知道设备地址在哪,所以我们第一个报文包一定是广播报文(不怎么好,但是我们没有办法)

  1. E2这里的目的MAC(D-MAC)我们全填F
  2. 在接收中会有一个广播域
    广播域:指的是广播报文所传递的范围;
  • 对于交换机而言它所有的端口都处在同一个广播域(不划分VLAN的情况下)
  • 对于路由器来说所有接口都是一个广播域
  • 广播报文是无法穿透路由器的三层接口
    冲突域:在一定的范围内,我的数据在发送或者接收的范围中可能会产生数据的碰撞这样的范围就是冲突域

PC2收到广播报文后,首先看看报文是不是给自己的,如果是广播包PC2必须强制接收处理;其次要进行FCS/CRC校验,校验完后比对FCS字段,表示没问题交给上层。实际上我需要先把二层给拆了,是一个广播包(全F)可以看到对方mac地址给我发的一个报文(能够知道PC1的地址)看完二层就看二层之上的封装了,上层就是ARP,会看target-ip(目的IP地址)是不是我,如果是我,如果是则接下去走(想知道),如果不是则会丢弃报文,未来如果接了交换机,发送广播报文,所有连接交换机的设备都会收到,如果请求的IP是1.1.1.2而设备IP是1.1.1.3的设备会把报文丢弃。只有设备IP是1.1.1.2的拆分到ARP封装后会知道请求的是自己,那么就会回复ARP的应答

请求方发送的报文是ARP的请求(广播形式);接收方发的报文是ARP的应答(单播报文)

在这里插入图片描述
我们回去看E2,首先ARP应答端的D-MAC(目标MAC)00-00-01S-MAC(源MAC)是自己的00-00-02回复了后请求端就看到了00-00-02这个地址了,这个地址会填充到D-MAC里未来在进行数据通讯的时候就可以把这样的地址变成我们E2D-MAC的地址(拿到了对方的IP地址了)

但如果短时间内经常要发送报文。发一个报文就要发一次ARP,吗?
这样肯定是不优化的,所以避免以后去访问对端的一个需求时,我不希望每次访问都要去问,那我们这边会在本地会形成一些映射关系,这样的关系我们叫它ARP映射表

PC1的ARP映射表

IP地址MAC地址
1.1.1.200-00-02

PC2的ARP映射表

IP地址MAC地址
1.1.1.100-00-01

未来数据在我们的俩个PC互相有访问需求,就不需要发送ARP请求而是从ARP映射表中有相对应的MAC了,直接进行相应的封装(注意:设备重启后对应等等ARP映射表就没有了

ARP映射表表项如何形成?

  • 对于ARP请求端来说收到了ARP应答端的报文后H知道目标MAC地址,ARP映射就形成了
  • 对于ARP应答端来说当你接收到ARP的请求后本地ARP的映射表就形成了
    有了这个缓存后我们就可以通过这个ARP的缓存未来会直接执行数据封装了。

对于ARP缓存来说也是有一些特点的。我们把上述的ARP缓存定义为动态ARP缓存,会涉及到老化时间的概念。对于老化时间来说在ARP中有20分钟的老化时间,一过20分钟这个表项立刻删除,其实不是特别合理,所以对于ARP来说会有一个老化的探测机制(在20分钟时会有3次(默认)的ARP的老化探测,默认是单播单播广播的形式去执行)如果收到了对端的回复,那么就会延长自己的ARP映射表表项存在的时间

查看ARP缓存

arp -a

实践

ping目标地址后我们抓包
在这里插入图片描述
在icmp之前我们会发送ARP包

发送后PC2(接收端)就会有表项
在这里插入图片描述
PC1(发送端)也会有对应的表项
在这里插入图片描述
ARP映射表存在相应的IP和MAC时在去ping
在这里插入图片描述

黑色上面是第一次请求(ARP映射表里面没有此PING的IP);黑色下面是有ARP映射表中的IP再次进行ping

跨网段

在你没有给设备配置网关地址的情况下,设备是没有跨网段通讯能力的
在这里插入图片描述
根本发不出去,并且没有ARP的映射,你的报文根本就没有离开你的设备

当你配置了网关,进行发送ping时,此时你ping的地址不存在任何网段时
在这里插入图片描述
此时的ARP会去问
在这里插入图片描述
谁是1.1.1.254?去告诉1.1.1.1
在这里插入图片描述
同网段进行通讯的时候,请求的是同网段的

  1. 会检测对方IP和我是否在同一网段。自己S-IP+掩码;对方D-IP加自己的掩码
  2. 1.5步:查看本地的ARP缓存,在缓存中是否有网关IP所对应的MAC;如果有则直接进行数据封装,如果没有则再进行下一步
  3. 借用ARP协议实现该操作(获取网关的IP对应的MAC地址)

只有学到路由表才知道网关是如何进行转发的。现在只要知道对于我们终端设备来说网关是很重要的,如果不配就只能在同网段下进行通讯

回复的过程

  1. 当你(1.1.1.1)未来要去访问不同网段,你的网关地址是1.1.1.254,你会发现是不同网段。
  2. 看本地是否有网关IP,没有执行下一步借用ARP获取网关IP所对应的MAC
  3. 会发相对应的ARP广播的报文发到网关这去请求target-ip1.1.1.2541.1.1.254一看是给它发送的请求报文,会给一个单播的回复;未来进行跨网段通讯的时候,会由网关对你的数据进行相应的转发,至于怎么转发请你学习路由时在考虑

ARP代理

需要路由基础才能开始学懂
在这里插入图片描述
对于ARP代理来说有三种模式

  1. 路由式的ARP代理
  2. VLAN间的ARP代理(HCIP中的内容)
  3. VLAN内的ARP代理(HCIP中的内容)

免费ARP

又叫无故ARP,实际上是不经过任何行为去触发(ARP去请求得到相应的回复这种机制叫做触发机制)的(免费ARP不需要你进行任何的操作)

免费ARP怎么工作的
你只要给一个接口配置了一个新的IP地址那么它就会向外界发送免费的ARP(无论这个IP配置是人为配置的还是未来基于DHCP进行自动的获取到一个地址)
在这里插入图片描述
作用:DAD(重复地址检测):在一个网段中我们要保障整体网络通讯的精确性。IP地址可以看作是一个标识符用来标识一个设备在我现在的一个网络环境中唯一的一个定位到这台设备,那么它要求在一个网段内是不能有俩个相同的IP地址。配置完IP会发送免费ARP,源和目的地址都是自己,如果环境中没有这个配置的IP是没有IP会进行回复的,一旦自己配置的IP有冲突报文发出去对方接收到报文会对我进行回复的,此时发送端就会收到一个Reply告诉你IP被占用,此时你就要修改IP地址。并且关于免费ARP整体来说向外发送地址冲突后,只要工程师没有人为进行修改那么在你把它改成正确(不冲突)之前,免费ARP会一直进行发送的

DHCP会有一个现在已经分配出去等等IP地址的标识,所以尽可能保证我们网络中IP地址不会冲突

定向ARP

它会存放一个DLCI号(IP地址的对应关系)在帧中继的网络中DLCI是我们数据链路层中的一种标识符它类似于以太网下的MAC地址

反向ARP

以上的ARP我们都叫它正向ARP(未来接触最多的)(已知IP去求MAC);RARP:反向ARP,它是已知MAC去求IP,使用场景:对于早期来说我们整体的硬盘资源是要贵的,会有一个集中的一个服务器进行硬盘管理,其中一台设备开机,这个设备的可以向服务器去拿相应的系统,问题是设备每次启动后接口是没有IP的(没DHCP只有RARP)没有IP就无法进行数据的封装,没办法去访问服务器,现在网络上接入一台设备这个设备会记录很多的IP地址和MAC地址,当自己的设备开机后会发送RARP的报文会携带自己的MAC地址发送到网络中此时这个记录MAC地址的设备收到这个报文之后在本地的映射关系里寻找这个MAC地址对应的IP地址回复给相应的设备,有了IP地址以后,这个设备就可以向服务器发送请求,然后进行后续操作

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

结城明日奈是我老婆

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

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

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

打赏作者

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

抵扣说明:

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

余额充值