• ARP协议也分好几种,其中一种叫无故ARP(免费ARP),是在主机配好ip时发送的,为了防止局域网内主机ip冲突。利用这个机制可以攻击其他主机(相同ip同归于尽)。
  • 目的地址ff:ff:ff:ff:ff:ff和00:00:00:00:00:00的区别?
  • 全f是以太网帧头的目的mac(表示广播),全0是ARP报文的目的mac(表示未知)
  • ARP报文不是直接在网络层上发送的,它还是需要向下传输到数据链路层,所以当ARP报文传输到数据链路层之后,需要再次进行封装。以以太网为例,ARP报文传输到以太网数据链路层后会形成ARP帧。ARP帧如下图所示,他就是在ARP报文前面加了一个以太网帧头。

网络工程实训笔记---day1
目的地址为ff-ff-ff-ff-ff-ff,所以所有设备都可以拆掉二层的封装,然后解读ARP报文中需要解析的目的IP。

  • ARP报文
    ARP是一个独立的三层协议,所以ARP报文在向数据链路层传输时不需要经过IP协议的封装,而是直接生成自己的报文,其中包括ARP报头,到数据链路层后再由对应的数据链路层协议(如以太网协议)进行封装。ARP报文分为ARP请求和ARP应答报文两种,它们的报文格式可以统一为下图所示。网络工程实训笔记---day1
  • 同一个网段的ARP过程:
    当源主机需要将一个数据包要发送到目的主机时,会首先检查自己 ARP列表中是否存在该 IP地址对应的MAC地址,如果有,就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。

目的ip地址和主机不是同一个网段,则去找网关

  • ARP跨网段
    1、主机将数据包先放到缓存中,然后发送ARP查询报文:封装自己的mac地址为源mac,目标mac地址写全F的广播地址,请求网关的mac地址。然后以广播方式发送出去。
    2、获取到网关mac再直接将数据包发到网关(跨网关通信,其他网段IP地址的mac地址均为网关mac)。
    3、路由收到数据包,检查目的IP地址,发现不是给自己的,决定要进行路由,然后查询路由表,找到目的网段的端口。路由准备从相应端口上发出去,然后查询mac地址表。若没有,则广播ARP。
  • ARP欺诈
    伪造成网关给一个或多个主机发一条ARP报文,使主机以为网关的mac地址变更而更新网关的ip和mac的映射关系,导致上网时的数据包都发往了错误的mac地址。
  • ARP抓包
    网络工程实训笔记---day1
    ● Hardware type(硬件类型):连的是何种设备(以太网代号是1)
    ● Protocol Type(协议类型):指的上层协议用的什么(IPv4是0x0800)
    ● Hardware Size(硬件大小,其实就是地址长度):6个字节(指mac地址48位)
    ● Protocol Size(协议大小,指的是三层地址长度):4个字节(指ip地址32位)
    ● Opcode(操作码):指明这个数据包的作用。1代表request(请求)
    ● Sender MAC Address(发送者的mac地址):自己的mac地址
    ● Sender IP Address(发送者的IP地址):自己的IP地址
    ● Target MAC Address(目标MAC地址):全0是因为在请求中,目标MAC地址是未知的。又不能不写。所以暂时用全0代替。
    ● Target IP Address(目标IP地址):你请求的IP

相关文章: