ARP概述学习笔记

1.了解数据链路层

数据链路层位于网络层和物理层之间,可以向网络层的IP、IPv6等协议提供服务。数据链路层的PDU(ProtocolDataUnit-协议数据单元)被称为Frame(帧),也可称为数据帧。

以太网(Ethernet)是最常见的数据链路层协议

以太网通常封装的是MAC:

例如:以太网封装---实验PC1 ping PC2

(1)配置PC1和PC2。

(2)在R1路由器上配置PC1和PC2的网关信息。

(3)右击PC1的Ethernet0/0/1端口,点击“开始抓包”,接着在PC1上去ping PC2,抓取到的报文显示二层的以太网通过封装MAC进行下一步通信的。

但并不是所有的二层封装的是MAC。

例如:二层使用PPP协议通信

实验R1与R2通过配置PPP协议进行ping抓包分析

(1)配置R1和R2,并且在Serial 0/0/0接口上启用ppp协议。

(2)右击R1的Serial0/0/0接口,点击“开始抓包”,弹窗出来选择链路类型PPP,接着点击“确定”,回到R1上去ping R2,抓取到的报文显示二层为PPP协议而不是以太网,因此封装的内容也不是MAC。

2.以太网与MAC地址

2.1以太网的定义

(1)以太网是一种广播式数据链路层协议,支持多点接入

(2)个人电脑的网络接口遵循的就是以太网标准。

(3)一般情况下,一个广播域对应着一个IP网段

2.2以太网MAC地址

(1)MAC (Media Access Control)地址在网络中唯一标识一个网卡每个网卡都需要且会有唯一的一个MAC地址

(2)MAC用于在一个IP网段内,寻址找到具体的物理设备。

(3)工作在数据链路层的设备。例如以太网交换机,会维护一张MAC地址表,用于指导数据帧转发。

3.地址解析协议(ARP)

ARP (Address Resolution Protocol)地址解析协议:

根据已知的IP地址解析获得其对应的MAC地址

主机A知道主机B的IP地址,但是不知道主机B的MAC地址,如果想要和主机B进行通信,需要知道主机B的MAC地址,前提是主机A和主机B要在同一个网段,如果不在同一个网段的话,主机A就要找网关,请求到网关的MAC就可以了。

4.ARP实验

4.1通过Cisco Packet Tracer实验环境去模拟理解ARP的工作原理

(1)拓扑搭建

(2)配置PC0、PC1、PC2和PC3的网卡信息,设置的IP都在同一个网段内,因此不需要配置网关。

(3)配置完之后,通过PC0访问PC1,检查ping是否联通。

结果ping通了,ARP只有在第一次访问的时候才能产生,一旦得到了对方的MAC地址,它就会缓存在自己的本地ARP缓存表里面。下次要去访问PC1的时候就可以直接在缓存表里面找到PC1的MAC。

查看ARP缓存表可以使用命令arp -a

删除ARP缓存表信息可以使用命令arp -d

(4)通过模拟状态去查看ARP工作过程

接着让PC0访问PC2,PC2和PC0没有进行过通信,PC2的ARP缓存表默认是空的。

在PC0 ping PC2

把鼠标悬停在第一个报文上,可以看到是ICMP的报文

接着把鼠标悬停在第二报文上,可以看到是ARP的报文

Ping包为什么不能直接发出去?在同一网段的PC0和PC2通信,PC0知道PC2的IP地址,但是不知道PC2的MAC,所以需要先发送ARP报文去获得目标的目的MAC。

点击“播放按钮”,PC0会把报文发送到交换机上,到达交换机上,点击“暂停”。

点击交换机上的报文,可以看到这个是ARP的请求包,这个包最大的特点就是广播,它的目的MAC是全F。也就是说,会先发送一个ARP request。

因此,交换机会将这个包进行泛洪处理。点击“播放”,等报文到达PC1、PC2和PC3之后,点击“暂停”。泛洪后,PC1、PC2和PC3得到报文,PC1和PC3得到后会丢弃掉,PC2则会进行响应。

为什么PC2能响应呢?因为这个请求包里面,它指明了要192.168.1.3的MAC,所以不是192.168.1.3的MAC就会被丢弃。

PC2收到ARP请求报文之后,回复一个响应。点击PC2回到交换机的包,可以看到出站PDU详细信息回给PC0它的MAC信息。

PC0收到PC2发送回来的报文,就会缓存PC2的MAC地址。这个时候ping包就组建好了。

这样一来Ping包的二层目的MAC就封装了PC2的MAC,接着就行了ping

在ARP响应之后,就会缓存到对方的MAC

注意:ARP Request 报文是目的MAC为全F的广播报文

ARP Reply 报文是单播

4.2 eNSP上模拟抓包分析ARP工作

PC1访问PC2

(1)拓扑搭建

(2)配置PC1、PC2和PC3

(3)点击PC1的Ethernet0/0/1接口抓取报文

首先ARP会在目的MAC封装一个广播地址,到交换机进行泛洪,找192.168.1.2目的MAC。

找到192.168.1.2的MAC之后,ARP回复一个单播的响应报文,PC1也就知道PC2的目的MAC,之后就可以建立ping联通。

5.ARP工作原理

5.1在发送数据前,设备会先查找ARP缓存表。

如果缓存表中存在对方设备的MAC地址,则直接采用该MAC地址来封装帧,然后将帧发送出去。如果缓存表中不存在相应信息,则通过ARP来获取。

5.2主机1通过发送ARP Request报文来获取主机2的MAC地址。

 由于不知道目的MAC地址,因此ARP Request报文内的目的端MAC地址为0。

    

5.3 ARP Request是广播数据帧,因此交换机收到后,会对该帧执行泛洪操作。

5.4所有的主机接收到该ARP Request报文后,都会检 查它的目的端IP地址字段与自身的IP地址是否匹配。

 主机2发现IP地址匹配,则会将ARP报文中的发送 端MAC地址和发送端IP地址信息记录到自己的ARP 缓存表中。

5.5主机2通过发送ARP Reply报文来响应主机1的请求。

 此时主机2已知主机1的MAC地址,因此ARP Reply是 单播数据帧。

5.6交换机收到该单播数据帧后,会对该帧执行转发操作。

5.7主机1收到ARP Reply以后,会检查ARP报文中目的端IP地址字段是否与自己的IP地址匹配。

如果匹配,会将ARP报文中的发送端MAC地址和发送端IP地址信息记录到自己的ARP缓存表中。

6.免费ARP

设备主动使用自己的IP地址作为目的IP地址发送ARP请求,此种方式称免费ARP。

更换主机IP也会产生免费ARP。

免费IP抓包实验

在这里我的笔记本是连接WIFi的把原来自动获取的地址改为固定的172.18.157.219,这时候需要打开wireshark,接着把固定的IP地址更改为自动获取变为原来的172.18.157.218,等待抓包一段时间,过滤出arp的报文即可抓取到免费的ARP报文。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值