精华内容
下载资源
问答
  • 2022-04-24 10:59:52

    实验一 wireshark基本操作及ARP协议分析

    一、实验目的

    1、熟悉并掌握Wireshark的基本使用;

    2、了解网络协议实体间进行交互以及报文交换的情况

    3、分析以太网帧,MAC地址和ARP协议。

    二、实验环境

    与因特网连接的计算机,操作系统为Windows,安装有Wireshark、IE等软件。

    三、预备知识

    (1)wireshark安装

    下载地址:https://www.wireshark.org/#download

    注意操作系统版本,特别是32位操作系统和64位操作系统的区别。

    安装时选择默认设置即可。

    2)分组嗅探器

    要深入理解网络协议,需要观察它们的工作过程并使用它们,即观察两个协议实体之间交换的报文序列,探究协议操作的细节,使协议实体执行某些动作,观察这些动作及其影响。这种观察可以在仿真环境下或在因特网这样的真实网络环境中完成。

    观察正在运行的协议实体间交换报文的基本工具被称为分组嗅探器(packet sniffer),又称分组捕获器。顾名思义,分组嗅探器捕获(嗅探)你的计算机发送和接收的报文。

    图1显示了一个分组嗅探器的结构。

    图1

    图1右边是计算机上正常运行的协议和应用程序(如:Web浏览器和FTP客户端)。分组嗅探器(虚线框中的部分)主要有两部分组成:第一是分组捕获器,其功能是捕获计算机发送和接收的每一个链路层帧的拷贝;第二个组成部分是分组分析器,其作用是分析并显示协议报文所有字段的内容(它能识别目前使用的各种网络协议)。

    3)wireshark简介

    Wireshark是一种可以运行在Windows, UNIX, Linux等操作系统上的分组嗅探器,是一个开源免费软件。

    运行Wireshark程序时,其图形用户界面如图2所示。最初,各窗口中并无数据显示。Wireshark的界面主要有五个组成部分:

    图2

    命令菜单(command menus):命令菜单位于窗口的最顶部,是标准的下拉式菜单。

    协议筛选框(display filter specification):在该处填写某种协议的名称,Wireshark据此对分组列表窗口中的分组进行过滤,只显示你需要的分组。

    捕获分组列表(listing of captured packets):按行显示已被捕获的分组内容,其中包括:分组序号、捕获时间、源地址和目的地址、协议类型、协议信息说明。单击某一列的列名,可以使分组列表按指定列排序。其中,协议类型是发送或接收分组的最高层协议的类型。

    分组首部明细(details of selected packet header):显示捕获分组列表窗口中被选中分组的首部详细信息。包括该分组的各个层次的首部信息,需要查看哪层信息,双击对应层次或单击该层最前面的“+”即可。

    分组内容窗口(packet content):分别以十六进制(左)和ASCII码(右)两种格式显示被捕获帧的完整内容。

    四、实验步骤

    1、wireshark基本操作

    (1)查看自己的IP地址和MAC地址。Windows系统用命令提示符查看,在运行中输入CMD,或在开始菜单“Windows附件”/“Windows系统”中打开命令提示符。在命令提示符中输入ipconfig  -all,查看本机物理地址和IP地址。MAC系统在系统更偏好设置-网络-选择已连接网络查看本机物理地址和IP地址。

    (2)启动wireshark软件,选择准备捕获数据包的网卡接口。

    (3)过几秒钟后停止捕获,观察捕获到的数据包。

    (4)在过滤条件中,选择查看自己IP地址发出的数据包,使用过滤条件“ip.src==步骤2中查看到的IP地址”,并在数据包详情窗口查看源MAC地址是否是步骤2中查看到的本机的物理地址。

    (5)重新设置过滤条件,选择查看由自己MAC地址接收的数据包,使用过滤条件“eth.dst == 步骤2中查看到的物理地址”( 注意地址内16进制以冒号隔开),并在数据包详情窗口查看目的IP地址是否是自己的IP地址。

    (6)思考

    • 每次自己发出或接收的数据包,自己的IP地址和MAC是否总是对应的?
    • 尝试写一条规则,查找所有的HTTP协议的数据包。
    • 尝试写一条规则,查找所有自己的IP地址发出的DNS数据包。

    2、ARP协议的分组结构

    (1)在命令提示符输入arp,查看arp工具的参数。输入arp –a,查看本地的arp缓存表,并记录下表(不够可添加行):

    Internet地址

    物理地址

    类型

    1. 输入arp –d(若不能运行,则在C:/windows/system32中找到cmd.exe,单击右键选择“以管理员身份运行”),删除本地的arp缓存表,使用arp –a再次查看arp缓存表,发生了什么变化。

    ARP的包减少了

    1. 输入“ping 网关地址”,再次查看arp缓存表,说明发生了什么变化。通过以上实验的结果,尝试分析arp缓存表的工作模式。

    (4)运行wireshark抓包分析工具,开始进行捕获,捕获前或者捕获中运行arp –d清除arp缓存表然后在命令提示符输入“ping 网关地址”,过一段时间后停止捕获,观察捕获到的数据包。

    说明:很多时候不需要“ping 网关地址”,系统很快也会自动运行ARP协议,获得网关物理地址。因此往往在删除缓存表后再查看缓存表时,会发现网关的ARP项目仍然存在。

    (5)在过滤栏中,设置过滤条件为arp数据包。

    (6)查看从本机mac地址发出的arp数据包,查看捕获数据包的第一个分组的链路层帧结构及arp协议分组结构,截图并记录下表

    目的MAC地址

    源MAC地址

    类型

    90:e7:10:b8:13:3e

    c8:d9:d2:19:fe:c8

    ARP

    硬件类型

    上层协议类型

    MAC长度

    IP长度

    操作类型

    Ethernet(1)

    IPv4

    6

    4

    Request(1)

    源MAC地址

    源IP地址

    c8:d9:d2:19:fe:c8

    10.0.132.22

    目的MAC地址

    目的IP地址

    90:e7:10:b8:13:3e

    10.0.132.254

    根据捕获的数据包信息思考并回答以下问题

    • arp分组结构中的目的MAC地址是多少?为什么是这个取值?

    90:e7:10:b8:13:3e  目的主机收到了该ARP请求之后,会发送一个ARP应答,里面包含了目的主机的MAC地址。 

    • arp分组结构中的硬件类型、上层协议类型、操作类型分别是起什么作用的?

    硬件类型:该字段2个字节,用于表明ARP分组是跑在什么类型的网络上的,例如如果是我们最常用的以太网值是1。

    协议类型:该字段2个字节,用于表明使用ARP分组的上层协议是什么类型,例如如果是我们最常用的IPv4协议值是32。

    操作类型:该字段2个字节,用于表明该ARP分组的类型。现在已经有的类型只有2中:ARP请求(值是1),ARP应答(值是2)

    1. 查看从网关MAC地址发出的arp数据包,查看捕获数据包的数据链路层帧结构及arp协议分组结构,截图并记录下表

    目的MAC地址

    源MAC地址

    类型

    c8:d9:d2:19:fe:c8

    90:e7:10:b8:13:3e

    ARP

    硬件类型

    上层协议类型

    MAC长度

    IP长度

    操作类型

    Ethernet(1)

    IPv4

    6

    4

    Request(2)

    源MAC地址

    源IP地址

    90:e7:10:b8:13:3e

    10.0.132.254

    目的MAC地址

    目的IP地址

    c8:d9:d2:19:fe:c8

    10.0.132.22

    根据捕获的数据包信息回答以下问题

    • 从帧头中的MAC地址来看这个数据帧是谁发给谁的?

    主机发送给本机

    • arp分组结构中的操作类型字段与步骤7)中的对应字段有何变化?

    Request(1)→Request(2)

    源IP地址和MAC地址与目的IP地址和MAC地址交换

    (6)思考:请根据今天实验的所有实验结果

    • 说明arp协议工作的触发条件是什么?

    在以太网中,一个主机和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

    • 分析arp协议在主机中工作的完整工作过程是如何进行的?

    1、每个主机都会有自己的ARP缓存区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系
    2、当源主机要发送数据时,首先检测ARP列表中是否对应IP地址的目的主机的MAC地址如果有,则直接发送数据如果没有,就向本网段所有主机发送ARP数据包

    3、当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包如果是,则首先从数据包中取出源主机的IP和mac地址写入到ARP列表中,如果以存在,则覆盖然后将自己的mac地址写入arp响应包中,告诉源主机自己是它想要找的mac地址
    4、源主机收到ARP响应包后,将目的主机的IP和mac地址写入arp列表,并利用此信息发送数据如果源主机一直没有收到arp响应数据包,表示arp查询失败。

    • arp协议可能存在的安全风险是什么?

    1. 假冒ARP应答

    2. 点对点的假冒查询

    3. 自动定时ARP欺骗

    4. 对网关的干扰

    5. 推测ARP解析时间

    更多相关内容
  • 校内实验 0积分共享 若自动添加积分可私信 仅供学习参考使用,不得商用(凑字数) 抓包分析ARP协议
  • ARP协议就是用来获取目标IP地址所对应的MAC地址的,也就是说,ARP协议可以动态地在三层IP地址和二层MAC地址之间建立一种映射关系。可以用如下示意图来形象表示其作用: 可以看到上面的图示是把ARP协议划分到网络...

    在同一个网络(无特别说明,均指以太网络)中进行通信的主机,必须要拥有目标主机的MAC地址才能够正确地将数据发送给目标主机,那么如何知道目标主机的MAC地址呢?可以通过ARP协议。ARP协议就是用来获取目标IP地址所对应的MAC地址的,也就是说,ARP协议可以动态地在三层IP地址和二层MAC地址之间建立一种映射关系。可以用如下示意图来形象表示其作用:

    wKioL1cHdYrzdFoQAABCVOaI8VA489.png

    可以看到上面的图示是把ARP协议划分到网络层,也既是认为它是一个网络层的协议,这是出于它为网络层的IP协议提供服务而考虑的。但实际上,由于ARP协议用以解析出IP地址(逻辑地址)所对应数据链路层中的地址(物理地址/硬件地址),所以把其划分在数据链路层也是没有问题的,这并没有严格的定义。

    我们下面将通过具体的实践过程来分析四种常见的ARP包:ARP请求包、ARP响应包、无偿ARP包与IP地址冲突检测,同时也会分析一下ARP代理的发生过程。

    这里会使用的环境如下:

    网络设备模拟器:GNS3

    抓包软件:Wireshark


    1.网络环境搭建

    为了简洁起见,这里不设置一个较大的网络环境来满足前面四种情况ARP包分析的需要,而是在分析不同的ARP情况时分别搭建较小的网络环境,这样可以使我们的分析更有针对性。


    2.ARP包报文格式

    如下:

    wKiom1cGFGHRkO7MAAB5efhRsBY432.jpg

    注意我们关注的是28字节的ARP包,只不过上面的图还包含了以太网首部字段信息(显然以太网首部的帧类型为ARP,在分析IP协议时提到过,这是一个数据分用的概念)。

    因为对于ARP包的分析,其实我们更关心的应该是ARP请求包、ARP响应包、无偿ARP包或者ARP代理相关的知识,而后面的实践也主要是分类地进行讨论。所以下面先给出一个普通ARP包(请求包)的实际结构,然后再给出每一个字段的具体含义(参考了《TCP/IP详解 卷1:协议》的部分内容),先作一个基本的了解,最后再详细分析这些包产生的过程:

    • 一个普通ARP包(请求包的实际结构)

      wKioL1cHfA6QwK28AACIULqKkL8900.png

      • ARP包各字段具体含义(对比上面实际抓到的包)

        字段含义
        硬件类型

        占16位

        表示硬件地址的类型,值为1即表示以太网地址,也就是MAC地址

        协议类型

        点16位

        表示要映射的协议地址类型,值为0x0800即表示IP地址,因为本文都是在IP协议的基础上进行分析的(即网络层逻辑地址为IP地址),所以所抓到的包的该字段类型都为0x0800

        硬件地址长度

        占8位

        指出硬件地址的长度,单位为字节,因为本文针对的是以太网,而以太网地址为MAC地址,占48位,即6字节,所以后面抓到的包中该字段的值都为6,不再作特别说明

        协议地址长度

        占8位

        指出三层逻辑地址的长度,单位为字节,因为本文针对的是以太网地址和IP地址的映射,而IP地址占32位,即6字节,所以后面抓到的包中该字段的值都为4,不再作特别说明

        操作字段

        指出操作类型,对应的值如下:

        ARP请求:1

        ARP响应:2

        RARP请求:3

        RARP响应:4

        但因为RARP现在已经很少使用了,所以本文不会讨论

        发送端以太网地址

        占48位

        准确上说是“发送端硬件地址”,但因为本文只针对以太网进行讨论,所以表述为“发送端以太网地址”

        发送端IP地址

        占32位

        准确上说是“发送端网络层逻辑地址”,但因为本文只针对的是以太网地址和IP地址的映射的讨论,所以表述为“发送端IP地址”

        目的以太网地址占48位
        目的IP地址占32位


        3.在实践中分析ARP的实现过程:ARP请求、ARP响应

        (1)网络环境搭建

        本节主要是抓取ARP请求包和ARP响应包来分析ARP请求与响应的一个详细过程,以及对应ARP包中相关字段的含义,这个实践的网络环境比较简单,如下:

        wKioL1cH9t3A3IpcAAAYFDS8dzg450.png

        在R1路由器上做如下配置:

        R1#conft
        R1(config)#intf0/0
        R1(config-if)#noshu
        R1(config-if)#ipadd192.168.1.1255.255.255.0
        R1(config-if)#dowr

        在R2路由器上做如下配置:

        R2#conft
        R2(config)#intf0/0
        R2(config-if)#noshu
        R2(config-if)#ipadd192.168.1.2255.255.255.0
        R2(config-if)#dowr

        然后在R1路由器上查看arp缓存表:

        R1#showarp
        ProtocolAddressAge(min)HardwareAddrTypeInterface
        Internet192.168.1.1-cc01.127f.0000ARPAFastEthernet0/0

        可以看到arp缓存表中并没有192.168.1.2的MAC地址,所以如果待会R1发送数据给R2,必然会有ARP请求发生,所以这里请确保R1中确实没有192.168.1.2的MAC地址,如果有的话,建议重启两个路由器。(虽然可以在路由器上执行clear arp-cache来清除arp缓存表,但是清除过后又会马上生成,所以这里建议直接重启)

        (2)抓取并分析ARP请求包和ARP响应包

        首先在R1和R2的链路上启动Wireshark,监测R1的接口。(这是GNS3的功能,可以直接抓取通过两个路由器之间链路的数据包)

        在R1上执行如下命令:

        Router#ping192.168.1.2
        
        Typeescapesequencetoabort.
        Sending5,100-byteICMPEchosto192.168.1.2,timeoutis2seconds:
        .!!!!
        Successrateis80percent(4/5),round-tripmin/avg/max=44/62/76ms

        !表示数据发送成功,可以看到第一个是".",则表示数据发送失败,这是因为,第一个包在发送时,R1中并没有192.168.1.2的MAC地址,于是就去发送ARP请求来获得其MAC地址,但是当获得MAC地址之后,第一个包已经超时了(等待MAC地址超时),并没有发送出去,可以看下面抓到的包:

        wKioL1cH-e3xXuGhAADU7E7LgVU534.png

        可以看到已经有2个ARP包(1个请求和1回答)和8个ICMP包(4个请求和4个回答),这里我们主要分析的是ARP包。

        • ARP请求包

          数据包结构如下:

          wKiom1cH-kLC3NwiAABfmtjo-0M195.png

          字段分析如下:

          a.硬件类型、协议类型、硬件地址长度、协议地址长度

          这几个字段的内容跟前面讨论的一样,因为针对的是以太网和IP地址

          b.操作字段Opcode

          可以看到Opcode的值为request(1),所以这是一个ARP请求包。

          c.发送端以太网地址

          我们是从R1向R2发送数据的。

          从前面的命令执行结果:

          R1#showarp
          ProtocolAddressAge(min)HardwareAddrTypeInterface
          Internet192.168.1.1-cc01.127f.0000ARPAFastEthernet0/0

          这确实是R1的MAC地址(配置了192.168.1.1 IP地址的接口的MAC地址)。

          d.发送端IP地址

          发送端也确实是192.168.1.1,也就是R1。

          e.目的以太网地址

          可以看到这里为全0,在ARP请求包中,会把目的以太网地址字段的值置为全0,因为此时并不知道目的以太网地址是什么(也就是不知道192.168.1.2的MAC地址是多少)。

          f.目的IP地址

          数据包是从R1发送给R2的,所以目的IP地址就是192.168.1.2,R2收到这个ARP请求包之后,如果看到这个字段的内容是自己的IP地址,就会回复这个ARP包,也就是会发送一个ARP响应包。

          其实字段内容并不难理解,不过这里需要注意一点是,查看这个ARP请求包的数据链路层的目的MAC地址:

          wKioL1cH_3eSuNofAABuEHLgQXk437.png

          会发现其是一个广播地址,这也就意味着,发送一个ARP请求包,以太网中的所有主机都能够收到该ARP请求包,但是并不是所有的主机都会回复这个ARP请求包,只有当接收者的IP地址与ARP请求包中的Target IP address中标识的目的IP地址一致时才会进行回复。

          • ARP响应包

            数据包结构如下:

            wKiom1cIAIjD5WhMAABfYHDqc2M769.png

            对比ARP请求包来分析,其实发现并没有相关多少,只是有以下几点区别:a.ARP响应包的操作字段Opcode值为reply(2)

            b.ARP响应包的二层目的MAC地址为ARP请求包发送者的MAC地址

            也就是说,ARP请求包是以广播的形式发送的,但ARP则是以单播的形式发送的,那么发给谁呢?ARP请求包是谁发送的,ARP响应包就发给谁,对应的二层目的MAC地址就是ARP请求包发送者的MAC地址

            c.发送端以太网地址、发送端IP地址、目的以太网地址、目的IP地址

            跟ARP请求包的内容相反,只不过ARP响应包中的所有地址字段的值都是已知的,这个很容易理解,不过需要注意的是,在这个时候,ARP响应包到底要发给谁,已经很明确了,所以ARP响应包是一个单播包。

            正如上面看到的,理解常规的ARP请求包和ARP响应包的过程并不复杂,只要知道了网络通信的基本原理,各个字段的值也就很容易理解了。


            4.在实践中分析ARP的实现过程:无偿ARP与IP地址冲突检测

            • 有偿ARP

              前面在获取某个IP地址对应的MAC地址是,都需要先发送一个ARP请求包,然后再通过接收一个ARP响应包来知道该IP地址所对应的MAC地址,因为需要发送ARP请求包,我们可以认为这是“有偿”的,即要付出一些代价。

              • 无偿ARP

                而所谓无偿ARP,指的就是,我不需要发送一个ARP请求包,对方就会“无偿”地把一个ARP响应包发给我(其实也主是主动发送过来),以此来告诉我它的MAC地址。

                (1)网络环境搭建

                但是在总结什么时候对方会主动把一个ARP响应包发送过来之前,我们先实践一下,网络环境还是用上面的那个:

                wKioL1cH9t3A3IpcAAAYFDS8dzg450.png

                不过我们需要修改一下R2的IP地址,修改为192.168.1.252(在这个过程中抓包软件Wireshark要打开),如下:

                R2>en
                R2#conft
                R2(config)#intf0/0
                R2(config-if)#ipadd192.168.1.252255.255.255.0

                (2)抓取并分析ARP请求包和ARP响应包

                这样做之后打开Wireshark软件,会发现抓到下面这样一个包:

                wKioL1cIBo6T_ObPAAAgd1QXSaA867.png可以看到Info一列,有个Gratutous的标识,中文意思就是“无偿,免费”的意思,我们可以查看一下数据包的结构:

                wKiom1cIBo7w_G8_AABrB1Dg3DE060.png

                通过查看操作字段Opcode的值,其实可以发现,无偿ARP其实也是一个ARP响应包(不过普通的ARP响应包是以单播的形式发送的,而无偿ARP是以广播的形式发送的),只不过这个ARP响应包比较特别,它是主动发送的,即它是gratuitous,无偿的。

                另外需要注意的是,发送端IP地址和目的IP地址是一样,这正是无偿ARP有别于普通ARP响应包的地方,当这个数据包被网络中的其他主机(显然我们这里的网络环境比较简单,所以只有R1)接收到之后,它会让这些主机使用新的IP和MAC地址关系更新它们的ARP缓存表。因为这个ARP数据包是未经请求的,即导致客户端更新ARP缓存,所以会称为无偿ARP。

                在分析了无偿ARP之后,给出下面的几种情况,都会有无偿ARP过程的发生:

                a.更改了设备的IP地址

                b.某些操作系统在启动完成之后就会发送无偿ARP(Windows和Linux都会)

                (3)IP地址冲突检测

                再分析一下,无偿ARP有什么好处呢?如下:

                a.可以让以太网中的主机及时地更新其ARP缓存表,这样可以确保在数据发送时可以准确地封闭正确的地址信息

                b.检测IP地址是否有冲突

                关于这一点,可以给R2重新配置一个IP地址,并且与R1的相同:

                R2>en
                R2#conft
                R2(config)#intf0/0
                R2(config-if)#ipadd192.168.1.1255.255.255.0

                几乎马上就可以在R1和R2的控制台上看到错误日志的输出:

                R1>
                *Mar100:54:39.007:%IP-4-DUPADDR:Duplicateaddress192.168.1.1onFastEthernet0/0,sourcedbycc02.1a18.0000
                *Mar100:55:09.043:%IP-4-DUPADDR:Duplicateaddress192.168.1.1onFastEthernet0/0,sourcedbycc02.1a18.0000
                *Mar100:55:39.739:%IP-4-DUPADDR:Duplicateaddress192.168.1.1onFastEthernet0/0,sourcedbycc02.1a18.0000
                *Mar100:56:10.011:%IP-4-DUPADDR:Duplicateaddress192.168.1.1onFastEthernet0/0,sourcedbycc02.1a18.0000
                *Mar100:56:40.715:%IP-4-DUPADDR:Duplicateaddress192.168.1.1onFastEthernet0/0,sourcedbycc02.1a18.0000
                *Mar100:57:10.947:%IP-4-DUPADDR:Duplicateaddress192.168.1.1onFastEthernet0/0,sourcedbycc02.1a18.0000
                
                R2(config-if)#
                *Mar100:45:48.135:%IP-4-DUPADDR:Duplicateaddress192.168.1.1onFastEthernet0/0,sourcedbycc01.127f.0000
                *Mar100:46:18.623:%IP-4-DUPADDR:Duplicateaddress192.168.1.1onFastEthernet0/0,sourcedbycc01.127f.0000
                *Mar100:46:48.927:%IP-4-DUPADDR:Duplicateaddress192.168.1.1onFastEthernet0/0,sourcedbycc01.127f.0000
                *Mar100:47:19.651:%IP-4-DUPADDR:Duplicateaddress192.168.1.1onFastEthernet0/0,sourcedbycc01.127f.0000
                *Mar100:47:49.959:%IP-4-DUPADDR:Duplicateaddress192.168.1.1onFastEthernet0/0,sourcedbycc01.127f.0000
                *Mar100:48:21.623:%IP-4-DUPADDR:Duplicateaddress192.168.1.1onFastEthernet0/0,sourcedbycc01.127f.0000
                *Mar100:48:51.919:%IP-4-DUPADDR:Duplicateaddress192.168.1.1onFastEthernet0/0,sourcedbycc01.127f.0000

                这里因为在修改了R2的IP地址时,它发送了无偿ARP包,R1通过检查发现其IP地址跟自己的一样,于是就会在控制台上报错,但是R2为什么又会报错呢?因为在R1发现地址有冲突时,也发送了表示IP地址冲突的无偿ARP包,如下:

                wKiom1cIDHXA6ONRAAAiRKTdoDQ454.png注意这是一个广播包,所以R2必然也能收到,查看它的包结构:

                wKioL1cIDbfy14eCAACn4FWd_YA806.png

                根据数据包的内容,R2也知道发生了IP地址冲突,所以也就会在控制台上输出错误日志了。


                4.在实践中分析ARP的实现过程:ARP代理

                如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答这个请求,这个过程就称为ARP代理。这是非常精简和通俗易懂的解释,我们可以通过下面的实践来进行体会。

                (1)网络环境搭建

                如下:

                wKiom1cID2miLu1zAAA2DvoUiiU886.png

                在前面的基础上,R1增加如下配置:

                R1>en
                R1#conft
                R1(config)#iproute0.0.0.00.0.0.0f0/0

                R2增加如下配置:

                R2>en
                R2#conft
                R2(config)#intf1/0
                R2(config-if)#noshu
                R2(config-if)#ipadd192.168.2.2255.255.255.0
                R2(config-if)#dowr

                R3则配置如下:

                R3>en
                R3#conft
                R3(config)#intf0/0
                R3(config-if)#noshu
                R3(config-if)#ipadd192.168.2.3255.255.255.0
                R3(config-if)#iproute0.0.0.00.0.0.0f0/0
                R3(config-if)#dowr

                (2)抓取ARP包并分析ARP代理过程

                在R1和R2的链路上启动Wireshark,然后在R1上执行如下命令:

                R1#ping192.168.2.3
                
                Typeescapesequencetoabort.
                Sending5,100-byteICMPEchosto192.168.2.3,timeoutis2seconds:
                ...!!
                Successrateis40percent(2/5),round-tripmin/avg/max=36/50/64ms

                即R1给R3发送数据,我们查看抓到的包:

                wKioL1cIFBqD1BVYAAAsVzmbz4c606.png再分别查看详细的包结构:

                • ARP请求包

                  wKiom1cIE7KhNZgoAABfyXIa4cY502.png

                  可以看到ARP请求包跟平常一样,并没有什么区别,即R1希望知道192.168.2.3的MAC地址。

                  • ARP响应包

                    wKioL1cIFLjAqjNgAABfrw-cHVk558.png

                    看起来普通的ARP响应包也没有什么区别,其实真的是没有什么区别,但不妨在R2上执行下面的命令,查看一下ARP缓存表:

                    R2#sharp
                    ProtocolAddressAge(min)HardwareAddrTypeInterface
                    Internet192.168.1.13cc01.127f.0000ARPAFastEthernet0/0
                    Internet192.168.2.2-cc02.1a18.0010ARPAFastEthernet1/0
                    Internet192.168.2.33cc03.2327.0000ARPAFastEthernet1/0
                    Internet192.168.1.2-cc02.1a18.0000ARPAFastEthernet0/0

                    在这个ARP缓存表中,192.168.2.3对应的MAC地址是cc03.2327.0000,并不是上面看到的数据包结构中的cc02.1a18.0000!!!cc02.1a18.0000是192.168.1.2对应的MAC地址!!!可以分析如下:

                    R1想要知道192.168.2.3的MAC地址,于是发送ARP请求包,但很显然,192.168.2.3跟192.168.1.1并不在同一个网络中;当192.168.1.2接口接收到这个ARP请求包时,R2发现虽然192.168.2.3并不是自己,但是它可以到达192.168.2.3所在的网络,即192.168.2.0/24这个网络,于是它就向R1发回了一个ARP响应包,告诉R1,192.168.2.3的MAC地址是自己(即配置了192.168.1.2的接口的MAC地址)。虽然这是一种“谎言”,但由于这样做确实是可以帮R1把数据发送到R3,所以有时候我们也把ARP代理称作“善意的谎言”。

                    那么通过上面的实践过程和分析之后也就非常清楚什么是ARP代理了。即如果ARP请求是从一个网络的主机发往另一个网络上的主机,那么连接这两个网络的路由器就可以回答这个请求,这个过程就称为ARP代理。

                    上面这个过程需要体会一下,这样一来的话,相信对计算机网络通信又会有了更深入的了解。


                    5.下一步要做什么

                    首先有时间当然是自己也尝试把上面的实践完成一遍,好好分析一下ARP协议,其实ARP协议所涉及到的重要的内容,上面的实践过程基本上都已经全部给出,真的不能错过。

                    如果觉得自己已经掌握了的话,可以尝试去了解一下ARP欺骗的原理,看看其实是不是很简单。

    展开全文
  • 实验3.利用Wireshark分析ARP协议

    千次阅读 2020-05-11 13:15:49
    学会利用Wireshark抓包分析ARP协议 实验环境 Wireshark软件 Windows 计算机 两人共同完成 实验预备知识 1.IP地址与物理MAC地址 图1 IP地址与物理地址的区别 地址解析协议ARP 是解决同一个局域网上的主机...
    • 实验目的
    1. 掌握Wireshark软件简单的过滤语法
    2. 掌握ARP的工作原理
    3. 学会利用Wireshark抓包分析ARP协议
    • 实验环境
    1. Wireshark软件
    2. Windows 计算机
    3. 两人共同完成
    • 实验预备知识
    • 1.IP地址与物理MAC地址
    • 图1 IP地址与物理地址的区别

    • 地址解析协议ARP 是解决同一个局域网上的主机或路由器的 IP 地址和MAC地址的映射问题
    • 其基本思想是:

      图2 ARP协议的基本思想

       

      3.ARP的工作过程

    • 3.ARP报文格式

    • 实验内容
    • ARP命令练习
    • 使用ipconfig/all命令查看自己的IP地址和MAC地址
    • (同时记录自己和同组成员的IP地址和MAC地址)

      Mac下查看IP命令 ifconfig

    • 使用arp -a查看ARP缓存表(截图)
    •     

    • 通过ping同组成员IP添加动态ARP表项(截图)
    •  

    • 通过arp -s IP地址 MAC地址添加动态表项(截图)
    •  

    • 删除所有表项arp -d *(截图)
    • Mac下 arp -ad  需要sudo -i 回车输入密码改为root 权限下进行

       

      2.抓包分析ARP协议

      2.1当ARP表项为空时抓包分析

      (1)清空本机ARP缓存信息,运行Wireshark,设置过滤捕获所有属于ARP协议或ICMP协议的包

      (2)ping同组成员IP

      (3)arp请求mac地址分析(广播)

      分析当ARP缓存表为空时,数据发送时的请求数据报信息,截图并记录具体的ARP字段数据

      字段名

      以太网目的MAC地址

      ff:ff:ff:ff:ff:ff

      以太网源MAC地址

      d4:61:9d:34:1e:76

      帧类型

      0x0806

      硬件类型

      1

      协议类型

      0x0800

      硬件地址长度

      6

      协议地址长度

      4

      Op代码

      1

      发送方MAC地址

      d4:61:9d:34:1e:76

      发送方IP地址

      192.168.0.104

      目的MAC地址

      00:00:00:00:00:00

      目的IP地址

      192.168.0.110

      (4)arp应答mac地址分析,截图并记录具体的ARP字段数据。

      字段名

      以太网目的MAC地址

      d4:61:9d:34:1e:76

      以太网源MAC地址

      90:f0:52:5e:c9:be

      帧类型

      0x0806

      硬件类型

      1

      协议类型

      0x0800

      硬件地址长度

      6

      协议地址长度

      4

      Op代码

      2

      发送方MAC地址

      90:f0:52:5e:c9:be

      发送方IP地址

      192.168.0.110

      目的MAC地址

      d4:61:9d:34:1e:76

      目的IP地址

      192.168.0.104

      2.2当ARP表项不为空时抓包分析(单播)

       

    • 清空ARP表项,再ping同组成员,通过arp -a查看,保证表中有同组成员的记录
    • (2)再次运行Wireshark,设置过滤捕获所有属于ARP协议或ICMP协议的包,并ping 同组成员IP地址

      (3)arp请求mac地址分析(只截图,写出目的MAC地址和源MAC地址)

      目的MAC地址 d4:61:9d:34:1e:76   源MAC地址 90:f0:52:5e:c9:be

    • ARP应答MAC地址分析(只截图,写出目的MAC地址和源MAC地址)
    • 目的MAC地址 90:f0:52:5e:c9:be  源MAC地址 d4:61:9d:34:1e:76

       

      .实验心得

      Linux 下语法

      -a<主机>:显示arp缓冲区的所有条目;-H<地址类型>:指定arp指令使用的地址类型;-d<主机>:从arp缓冲区中删除指定主机的arp条目;-D:使用指定接口的硬件地址;-e:以Linux的显示风格显示arp缓冲区中的条目;-i<接口>:指定要操作arp缓冲区的网络接口;-s<主机><MAC地址>:设置指定的主机的IP地址与MAC地址的静态映射;-n:以数字方式显示arp缓冲区中的条目;-v:显示详细的arp缓冲区条目,包括缓冲区条目的统计信息;-f<文件>:设置主机的IP地址与MAC地址的静态映射。

      空ARP

      28个字节

       

       

      视频讲解

    展开全文
  • 计算机网络实验利用wireshark分析ARP协议实验实验报告.pdf
  • 实验三 ARP 协议分析实验

    千次阅读 2021-12-15 16:14:41
    1、ARP 协议分析实验 1.ARP 协议介绍 ARP 是地址解析协议(Reverse Address Resolution Protocol)的缩写,负责实现从IP 地址到物理地址(如以太网MAC 地址)的映射。在实际通信中,物理网络使用硬件地址进行...

    1、ARP 协议分析实验

        1.ARP 协议介绍

        ARP 是地址解析协议(Reverse  Address   Resolution   Protocol)的缩写,负责实现从IP 地址到物理地址(如以太网MAC 地址)的映射。在实际通信中,物理网络使用硬件地址进行报文传输。IP报文在封装为数据链路层帧进行传送时,就有必要把 IP地址转换为对应的硬件地址,ARP正是动态地完成这一功能的。

         (1)ARP 报文格式

                                    图1 ARP 报文格式

        ARP 协议报文是定长的,其格式如图1 所示,报文中每一字段的含义如下:

        * 硬件类型:表示物理网络的类型,“0X0001”表示以太网;

        * 协议类型:表示网络网络协议类型,“0X0800”表示IP 协议;

        * 硬件地址长度:指定源/ 目的站物理地址的长度,单位为字节;

        * 协议地址长度:指定源/ 目的站IP 地址的长度,单位为字节;

        * 操作:指定该报文的类型,“1”为ARP 请求报文,“2”为ARP 响应报文;

        * 源端硬件/IP 地址:由ARP 请求者填充;

        * 目的站物理地址:在请求报文中为0,在响应报文中,由由发送响应报文的主机填写接收该报文的目的主机的物理地址;

        * 目的站IP 地址:由ARP 请求者填充,指源端想要知道的主机的IP 地址。只有IP 地址等于该IP 地址的主机才向源主机发送相应报文。

         (2)ARP 的工作方式

        在以太网中,每台使用ARP 协议实现地址解析的主机都在自己的高速缓存中维护着一个 地址映射表,这个ARP表中存放着最近和它通信的同网络中的计算机的 IP                     地址和对应的MAC 地址。

        注意:不同网络中的IP地址将对应网关。  

        当两台计算机通信时,源主机首先查看自己的ARP表中是否有目的主机的 IP 地址项,若有则使用对应的MAC 地址直接向目的主机发送信息;否则就向网络中广播一个ARP请求报文,当网络中的主机收到该ARP请求报文时,首先查看报文中的目的IP 地址是否与自己的IP 地址相符,若相符则将请求报文中的源IP 地址和MAC 地址写入自己的ARP表中;然后,创建一个ARP响应报文,将自己的MAC 地址填入该响应报文中,发送给原主机。

        注意:ARP响应报文不再广播,而是直接发送给请求者。 

        源主机收到响应报文后,取出目的IP 地址和 MAC 地址加入到自己的 ARP 表中,并利用获得的目的MAC 地址向目的端主机发送信息。

        在实际中,为了节省内存空间和ARP 表的查询时间,若某一个ARP 地址项很久没有使用,则会从地址映射表中删除。

        2.Arp 命令简介

        本次实验使用的Windows自带的Arp命令提供了显示和修改地址解析协议所使用的地址映射表的功能。

        Arp 命令的格式要求如下:

        ARP -s inet_addr eth_addr [if_addr]

        ARP -d inet_addr [if_addr]

        ARP -a [inet_addr] [-N if_addr]

        其中:

        * -s在ARP 缓存中添加表项:将 IP地址 inet_addr 和物理地址ether_addr关联,物理地址由以连字符分隔的6个十六进制数给定,使用点分十进制标记指定IP地址,添加项是永久性的;

        * -d删除由inet_addr指定的表项;

        * -a显示当前ARP表,如果指定了inet_addr则只显示指定计算机的IP和物理地址;

        * inet_addr以点分十进制标记指定IP地址;

        * -N显示由if_addr指定的ARP表项;

        * if_addr指定需要选择或修改其地址映射表接口的IP地址;

        * ether_addr指定物理地址;

     3.实验环境与说明

         (1)实验目的

        分析ARP 协议的报文格式,理解ARP 协议的解析过程。

         (2)实验设备和连接

        实验设备和连接图如图2所示,一台S2126G交换机连接了2台PC机,分别命名为PC1、PC2,交换机命名为Switch。 

                                 图2   ARP 协议分析实验连接图

       4.实验步骤

    步骤1:按照如图2所示连接好设备,配置PC1和PC2的IP地址;

    步骤2:在:  PC1、PC2两台计算机上执行如下命令,清除ARP缓存: ARP –d

    步骤3:在PC1、PC2两台计算机上执行如下命令,查看高速缓存中的ARP地址映射表的内容: ARP –a

    步骤 4:在PC1和PC2上运行 Wireshark 截获报文

        步骤5:在主机PC1上执行Ping命令向PC2发送数据报;

    步骤6:执行完毕,保存截获的报文并命名为arp-1;

    步骤7:在PC1、PC2两台计算机上再次执行ARP–a命令,查看高速缓存中的ARP 地址映射表的内容:

        1)这次看到的内容和步骤3 的内容相同吗?结合两次看到的结果,理解ARP 高速缓存的作用。

     不同,ARP高速缓存里边保存了之前进行ARP会话时返回的ARP应答中的IP地址和MAC地址对应列表。一般一条记录保存20分钟左右。目的是:下次再要访问ARP高速缓存中的IP地址的主机时,不需要再次发送ARP请求去获取MAC地址。直接从高速缓存中读取就可以了。可以有效缓解链路的压力。

        2)把这次看到到的高速缓存中的ARP 地址映射表写出来。

        步骤8:重复步骤:4—5,将此结果保存为arp-2;

        步骤9:打开arp-1,完成以下各题:

        1)在截获的报文中由几个ARP报文?在以太帧中,ARP协议类型的代码值是什么?

    有两类ARP报文,ARP协议类型的代码值是0x0800

        2)打开arp-2,比较两次截获的报文有何区别?分析其原因。

    不需要在进行广播ARP了,因为第一次连接时已经广播过了,已经有了记录。

    3)分析arp-1中ARP报文的结构,完成表1。

                                   表1 ARP 报文分析

    ARP 请求报文

    ARP 应答报文

    字段

    报文信息及参数

    字段

    报文信息及参数

    硬件类型

    0x0001

    硬件类型

    0x0001

    协议类型

    0x0800

    协议类型

    0x0800

    硬件地址长度

    6

    硬件地址长度

    6

    协议地址长度

    4

    协议地址长度

    4

    操作

    Request(0x0001)

    操作

    Reply(0x0002)

    源站物理地址

    48:0f:cf:37:a7:90

    源站物理地址

    48:0f:cf:37:a2:6d

    源站IP 地址

    172.27.63.32

    源站IP 地址

    172.27.63.33

    目的站物理地址

    00:00:00_00:00:00

    目的站物理地址

    48:0f:cf:37:a2:6d

    目的站IP 地址

    172.27.63.33

    目的站IP 地址

    172.27.63.60

                                  

    展开全文
  • 使用Wireshark分析以太网帧与ARP协议,上机实验操作与解答
  • 网络协议实验四 ARP 协议分析实验

    千次阅读 2020-11-21 20:54:28
    实验四 ARP 协议分析实验 2.2 ARP 协议分析实验 1.ARP 协议介绍 ARP 是地址解析协议 (Reverse Address Resolution Protocol)的缩写,负责实现从IP 地址到物理地址 (如以太网MAC 地址)的映射。在实际通信中,...
  • 使用wireshark分析ARP协议

    千次阅读 2020-05-30 16:57:05
    Character is the ability to ...文章目录1, ARP协议2, ARP报文格式2.1 ARP部分2.2 以太网帧头2.3 ARP映射表3, 使用wireshark分析ARP3.1 搭建模拟环境3.2 登录路由器查看电脑和手机的IP3.2 管理者身份运行cmd3.3 pi
  • 计算机网络、实验实验报告 wireshark基本操作、ARP协议分析、TCP、ICMP、wireshark、ping、网关、MAC地址、ARP协议
  • 实验二使用wireshark分析arp协议.pdf
  • 计算机网络 实验报告 年级 姓名 学号_ 实验日期_ 实验名称 实验二利用Wireshark分析ARP协议实验项目名称及实验项目编号 ARP协议学习与分析 二课程名称及课程编号 计算机网络 三实验目的和要求 实验目的 通过本...
  • Wireshark数据抓包分析ARP协议

    千次阅读 2022-02-10 16:42:40
    目录预备知识1、知识储备2、什么是ARP3、ARP工作流程4、ARP缓存表实验目的实验环境实验步骤一实验步骤二实验步骤三 预备知识 1、知识储备 推荐两本好书: 《TCP/IP详解卷1》...
  • 实验1ARP协议分析实验《计算机网络》实验指导书实验一、实验目的理解ARP协议报文格式;理解ARP协议的工作原理与通信过程。二、实验内容同一子网内两台机器间的ARP协议的工作过程;不同子网上的两台机器间的ARP协议...
  • 计算机学院网络工程 2013 3班 实训四 利用 WireShark 分析路由协议 一实训目的 1.... 抓包工具 WireShark 三实训内容 一 RIP包分析实验 网络拓扑图 1. 启动 WireShark 打开 rip1.cap 2. 过滤器设置为
  • 计算机网络实验(一)使用Wireshark进行协议分析实验内容实验部分 实验内容 1.使用Wireshark软件俘获分组、设置过滤条件、查看各层次协议数据单元 2.ipconfig命令 3.arp命令 4.使用ping命令测试两台主机是否连通 ...
  • 实验2 ARP协议分析

    千次阅读 2021-03-25 09:36:05
    四.ARP协议的封装格式 Hardware type 硬件类型,标识链路层协议 Protocol type 协议类型,标识网络层协议 Hardware size 硬件地址大小,标识MAC地址长度 Protocol size 协议地址大小,标识IP地址长度 Opcode 操作...
  • ARP协议分析 使用 Wireshark 抓取局域网的数据包并进行分析: 1. 学习 Wireshark 基本操作:重点掌握捕获过滤器和显示过滤器。 2. 观察 MAC 地址:了解 MAC 地址的组成,辨识 MAC 地址类型。 3. 分析以太网帧结构:...
  • 计算机网络实验-使用wireshark分析以太网帧与arp协议.docx 实验4使用WIRESHARK分析以太网帧与ARP协议一、实验目的分析以太网帧,MAC地址和ARP协议二、实验环境与因特网连接的计算机网络系统;主机操作系统为WINDOWS...
  • 实验十四:Wireshark数据抓包分析ARP协议 一、实验目的及要求 1、熟悉并掌握Wireshark的基本操作。 2、通过对Wireshark抓包实例进行分析,进一步加深对常用网络协议的理解。 3、培养学生理论联系实践的研究兴趣...
  • 本关任务:在 Wireshark 下抓取 Ethernet 包。 相关知识 为了完成本关任务,你需要掌握: Ethernet 帧结构; 学会抓取一组以太帧结构。 以太帧类型 以太帧有很多种类型。不同类型的帧具有不同的格式和 MT
  • 实验二 使用Wireshark 分析以太网帧与ARP 协议实验目的 分析以太网帧MAC 地址和ARP 协议实验环境 与因特网连接的计算机网络系统主机操作系统为windows 使用Wireshark IE 等软件 三实验步骤 IP 地址用于标识...
  • wireshark抓包分析ARP协议 -------------------本文系个人知识理解总结,不一定标准,欢迎交流讨论--------------- 个人认为本实验的主要目的就是将理论实战化,具体看看一看真正的ARP包在网络中的样子,重点在于...
  • 编号_ 本资料为word版本可以直接编辑和打印感谢您的下载 计算机网络实验-使用Wireshark分析以太网帧与ARP协议 计算机网络实验-使用Wireshark分析以太网帧与ARP协议 甲 方_ 乙 方_ 日 期_ 说明 说明本合同资料适用于...
  • ARP协议有什么作用? 作用:把IP地址解析为MAC地址。 IP地址应用于网络,网卡地址MAC。 有了ip地址为什么还要MAC地址? 可以简单理解为,身份证和通行证的缘故。国内需要身份证,而世界有护照,通行证一说。 ...
  • 计算机网络课程实验项目2 Wireshark使用及ARP协议学习与分析 第一部分 Wireshark使用 一实验项目名称及实验项目编号 Wireshark使用 二课程名称及课程编号 计算机网络 三实验目的 通过本实验使学生 1了解数据包捕获的...
  • 实验1:ARP包的抓取 实验2:Ping数据包的抓取 实验3:抓取http包的实验 实验4:抓取traceroute信息
  • 实验二使用Wireshark分析以太网帧与ARP协议[归纳].pdf
  • 广工专用协议分析实训实验报告,内涵实训一、二、三、四; 实训一 网络分层及ARP、DNS协议分析 实训二 用WireShark分析IP、TCP、HTTP 实训三 用WireShark分析IP、TCP、FTP包 实训四 利用WireShark分析路由协议
  • 实验 4 使用分析以太网帧与协议实验目的 分析以太网帧地址和协议实验环境 与因特网连接的计算机网络系统主机操作系统为使用等软件 三实验步骤 地址用于标识因特网上每台主机 而端口号则用于区别在同一台主机上...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,018
精华内容 807
关键字:

wiresharkarp协议分析实验