ARP复习

ARP的整个工作过程

当主机想要与另一个主机进行通信,当它仅仅知道它的IP地址,于是它就需要通过arp对它的mac地址进行查询。于是主机首先会查询自己的高速缓存,里面记录着相关的arp记录,如果找到的话,那么数据包的mac帧头部就可以使用这个mac地址进行数据包的发送。

但是如果没有找到的话,它就需要使用arp进行mac地址的查询。到这一步它还需要判断目的IP地址是不是与自己是同网段的,如果是那么就直接发送arp广播即可,但是如果不是,它就会先查询网关的mac地址,然后以后去往这个IP地址的数据包全部都交给路由器即可。

无论是网关还是被请求的主机,它们的arp回应都是单播。

上面只是arp请求的大致工作流程,下面是arp的包结构:
 

 arp是承载在数据帧上的,所以我主观认为它是一种二层的协议,在mac帧中的类型字段使用0x0806表示承载的是arp帧,然后就是硬件类型,其实就是物理地址的类型,常见的就是EthernetVII,其值为1,然后是协议类型表示使用的是IPv4还是IPv6,硬件地址长度表示了二层协议上用于标识主机的地址的长度,如果是EthernetVII,这里的长度就是6,这里是以字节为单位。协议地址长度就是三层中用于标识主机的标识符的长度,在TCP/IP中就是IP地址的长度,也就是4,同样这里的单位也是字节。op字段就是operation,标识操作类型,比如这个arp数据包请求还是应答。后面的四个字记录的就是发送者和回应者mac地址和IP地址的映射。

如果是arp请求,那么那么mac帧的目的mac地址是全f,同时arp包中的目的硬件地址是全0。其他字段都是已知的。

如果是arp回应,那么arp回应的目的mac是请求者的mac地址,因为在请求包中已经记录了请求者的mac地址,在回应的同时它会将自己的mac地址记录在arp回应包中,也就是arp请求包中全0的字段。

还有一点需要注意的是,被请求者在接受arp请求的时候也会将请求的相关mac-ip的映射记录在自己的高速缓存中。

免费ARP

这是arp中十分重要的一个机制,我们的主机或者其他网络设备的接口在接入到网络上后都会发出免费AR,让别人知道自己的存在。这样可以免去许多arp广播。免费arp的包结构也十分的有特点。它的发送者IP字段以及目标IP字段都是本身,发送者硬件地址字段的值为自己的mac地址,目标mac字段为全0。而且这是一个广播包,当其他主机收到这样的报文之后,它就知道这是一个免费arp,大家知道它的映射就好了。其实这个免费arp只是在arp请求的基础上,将目标IP地址字段修改为本身。

 上面是免费arp的抓包。

代理arp

这个从本质上应该不会出现这样的情况。但是确实是有。为什么说本质上不会有呢?

如图路由器上面连接着两个网段的主机,一个网段的掩码是24,另一个是16,。可以发现PC3所处的网段是包含左边的网段的。于是当PC3想要和左边任意一台主机通信的时候,它就会根据使用目的IP,然后跟它的掩码进行计算,会发现左边的任意一台主机都是与其是同网段的,于是它不会向网关发送arp请求,而是直接发送arp请求去请求主机的mac-ip映射。这个时候路由器虽然发现这个arp请求不是自己的,但是它知道它的arp请求的IP该怎么走,所以路由器会扮演目的主机的角色,将自己的mac-ip映射进行回送。于是PC3虽然一直认为它都是通过二层通信直接将数据发给目的主机,但是本质是路由器在中间帮忙进行转发。

RARP的介绍

RARP主要是为了让无盘工作站正常工作的时候设计的,因为无盘工作站一般需要从网络上获取操作系统然后再继续系统的引导和启动,于是它再启动的时候就需要发送RARP的广播报文,希望RARP服务器根据它发送RARP报文中的mac地址将对应的IP地址分配给它,这样无盘工作站一旦有了IP地址,于是它就可以进行正常的网络通信,然后将对应的系统文件下载下来并进行正常的系统引导。RARP的回应一般是单播回应。

ARP欺骗报文的构造

其实很简单,只要频繁的发送arp回应即可,我们知道高速缓存中的arp记录会过一段时间之后就会删除,然后重新获取,所以只要我们不断地针对某个主机发送arp回应,那么它就会将对应地arp记录记录到自己地高速缓存中。

而arp欺骗报文的构造也十分的简单,它只要在arp包中的目标硬件地址的字段进行修改即可。我们在arp回应的时候,修改二层头部中的源mac地址,以及arp包中的目标硬件地址字段,将这两个字段都修改为自己的mac地址,这样请求者上的arp记录就会记录一个错误的mac-ip映射。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mllllk

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

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

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

打赏作者

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

抵扣说明:

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

余额充值