Wireshark数据抓包分析之ARP协议

Wireshark数据抓包分析之ARP协议
⽬录
预备知识
1、知识储备
2、什么是ARP
ARP(Address Resolution Protocol,地址解析协议)是根据IP地址获取物理地址的⼀个TCP/IP协议。由于OSI模型把⽹络⼯作分为七层,IP地址在OSI模型的第三层,MAC地址在第⼆层,彼此不直接通信。在通过以太⽹发送IP数据包时,需要先封装第三层(32位IP地址)、第⼆层(48位MAC地址)的报头。但由于发送数据包时只知道⽬标IP地址,不知道其MAC地址,⽽⼜不能跨越第⼆、三层,所以需要使⽤地址解析协议。
使⽤地址解析协议后,计算机可根据⽹络层IP数据包包头中的IP地址信息对应⽬标硬件地址(MAC地址)信息,以保证通信的顺利进⾏。ARP的基本功能就是负责将⼀个已知的IP地址解析成MAC地址,以便主机间能正常进⾏通信。
3、ARP⼯作流程
感温元件ARP⼯作过程分为两个阶段,⼀个是ARP请求过程,⼀个是ARP响应过程,该⼯作流程如下⾯图⽰:
在上图中,主机PC1的IP地址为10.1.1.X;主机PC2的IP地址为10.1.1.Y。当主机PC1和主机PC2通信时,地址解析协议可以将主机PC2的IP地址(10.1.1.Y)解析成主机PC2的MAC地址。PC1和PC2的详细通信过程如下所⽰:
(1)当主机PC1想发送数据给主机PC2时,⾸先在⾃⼰的本地ARP缓存表中检查主机PC2匹配的MAC地址。
(2)如果主机PC1在缓存中没有到相应的条⽬,它将询问主机PC2的MAC地址,从⽽将ARP请求帧⼴播到本地⽹络上的所有主机。该帧中包括源主机PC1的IP地址和MAC地址。本地⽹络上的每台主机都接收到ARP请求并且检查是否与⾃⼰的IP地址匹配。如果主机发现请求的IP地址与⾃⼰的IP地址不匹配,它将会丢弃ARP请求。
(3)主机PC2确定ARP请求中的IP地址与⾃⼰的IP地址匹配,则将主机PC1的地址和MAC地址添加到本地缓存表。
(4)主机PC2将包含其MAC地址的ARP回复消息直接发送回主机PC1(这个数据帧是单播)。
(5)当主机PC1收到从主机PC2发来的ARP回复消息时,会将主机PC2的IP和MAC地址添加的⾃⼰的ARP缓存表。本机缓存是有⽣存期的,默认ARP缓存表的有效期是120s。当超过该有效期后,将再次重复上⾯的过程。主机PC2的MAC地址⼀旦确定,主机PC1将能向主机PC2发送IP通信了。
4、ARP缓存表
ARP缓存中包含⼀个或多个表,它们⽤于存储IP地址及其经过解析的MAC地址。在ARP缓存中的每个表⼜被称为ARP缓存表。下⾯将介绍ARP缓存表的由来、构成及⽣命周期等。
1.ARP缓存表的由来:
ARP协议是通过⽬标设备的IP地址,查询⽬标设备的MAC地址,以保证通信的顺利进⾏。这时就涉及到⼀个问题,⼀个局域⽹中的电脑少则⼏台,多则上百台,这么多的电脑之间,如何能记住对⽅电脑⽹卡的MAC地址,以便数据的发送呢?所以,这⾥就有了ARP缓存表。
2.ARP缓存表维护⼯具——arp命令
在计算机中,提供了⼀个ARP命令。该命令⽤于查询本机ARP缓存中的IP地址和MAC地址的对应关系、添加或删除静态对应关系等。⽤户
也可以通过使⽤arp命令验证ARP缓存条⽬的⽣命周期。ARP命令的语法格式如下所⽰:
在以前的Windows系列系统中,都可以直接执⾏arp -s命令绑定IP地址和MAC地址。但是在Windows 7下,如果不是以管理员⾝份运⾏时会提⽰:“ARP项添加失败:请求的操作需要提⽰”。但是有时候就算以管理员⾝份运⾏也会提⽰错误信息“ARP项添加失败:拒绝访问。”这时候就需要使⽤Netsh命令了。
Netsh实⽤程序是⼀个外壳,它通过附加的“Netsh帮助DLL”,可以⽀持多个Windows 2000组件。“Netsh帮助DLL”提供⽤来监视或配置特定Windows 2000⽹络组件的其他命令,从⽽扩展了Netsh的功能。每个“Netsh帮助DLL”都为特定的⽹络组件提供了⼀个环境和⼀组命令。每个环境中都可以有⼦环境。Netsh命令的语法格式如下所⽰:
以上命令中,各选项含义如下所⽰:
3.ARP缓存表的构成:
在局域⽹的任何⼀台主机中,都有⼀个ARP缓存表。该缓存表中保存中多个ARP条⽬。每个ARP条⽬都是由⼀个IP地址和⼀个对应的MAC 地址组成。这样多个ARP条⽬就组成了⼀个ARP缓存表。当某台主机向局域⽹中另外的主机发送数据的时候,会根据ARP缓存表⾥的对应关系进⾏发送。下⾯以例⼦的形式介绍,查看、添加、删除ARP缓存条⽬的⽅法。
实验⽬的
1.熟悉并掌握Wireshark的基本操作。
2.通过对Wireshark抓包实例进⾏分析,进⼀步加深对常⽤⽹络协议的理解。
3.培养学⽣理论联系实践的研究兴趣。实验环境
netsh [-a AliasFile] [-c Context] [-r RemoteMachine] [Command] [-f ScriptFile]-a Alias File
:指定使⽤⼀个别名⽂件。别名⽂件包含Netsh 命令列表和⼀个别名版本,所以可以使⽤别名命令⾏替换netsh 命令。可以使⽤别名⽂件将其他平台中-c Context :指定对应于已安装的⽀持DLL 的命令环境。
-r RemoteMachine :指定在远程计算机上运⾏netsh 命令,由名称或IP 地址来指定远程计算机。
command :指定要执⾏的netsh 命令。
-f ScriptFil :指定运⾏ScriptFile ⽂件中所有的netsh 命令。
服务器:windows 系统,IP地址:10.1.1.166
测试者:windows 系统,IP地址:10.1.1.142
实验步骤⼀
ARP协议属于TCP/IP协议族中的底层协议,与常见的应⽤层协议不同,其了解程度不是很⼴泛,要掌握ARP协议,需要先了解其常⽤命令,通过宏观的命令来知道其功能,在深层次分析其协议报⽂。为了更好的理解上述核⼼原理,本实验的步骤如下:
1.通过使⽤Netsh和ARP命令来绑定IP和MAC地址。
2.在测试环境使⽤Wireshark抓取ARP数据包。
3.详细分析ARP请求包和ARP应答包。
任务描述:使⽤Netsh和ARP命令来绑定IP和MAC地址。 1、使⽤netsh绑定IP和MAC地址: (1)查看接⼝的Idx号。执⾏命令如下所⽰: 从输出的结果中可以看到本地连接的Idx为12,Idx号将⽤在下⾯命令neighbors后⾯。 (2)添加IP-MAC地址绑定。执⾏命令如下所⽰: 执⾏以上命令没有任何输出信息。注意,此处需要使⽤管理员权限! (3)使⽤arp -a查看绑定的ARP条⽬。执⾏命令如下所⽰: 看到以上输出结果,红⾊区域表⽰IP-MAC地址已被绑定。 2、使⽤ARP进⾏相关的增加,删除,查看等操作: (1)使⽤arp命令查看ARP 缓存条⽬。执⾏命令如下所⽰: 输出信息显⽰了本机接⼝为10.1.1.142地址的ARP缓存表。每⾏表⽰⼀个ARP条⽬。 (2)将IP地址10.1.1.21和MAC地址00-aa-00-62-c6-09添加到缓存记录中。 执⾏以上命令后没有任何输出信息。如果要想查看添加的ARP缓存条⽬,可以使⽤arp -a命令查看。如下所⽰: 从输出的信息中,可以看到⼿动添加的ARP缓存条⽬。⼿动添加的条⽬默认被添加到第⼀⾏,⽽且⼿动添加的ARP条⽬类型为静态。 删除IP地址为10.1.1.21的ARP条⽬。执⾏命令如下所⽰: 执⾏以上命令后,接⼝地址为
10.1.1.21的ARP记录将被删除(此处不截图)。如果⽤户想要清空所有的ARP条⽬,执⾏如下所⽰的命令(或者arp -d *): 执⾏以上命令后,整个ARP缓存表将被删除。此时执⾏arp -a命令查看ARP缓存表,将显⽰如下所⽰的信息: 从输出的信息,可以看到当前该缓存表中没有任何ARP条⽬。 注意:使⽤arp命令在Windows和Linux下删除ARP缓存条⽬的⽅法有点区别。在Linux下,删除ARP条⽬
时,必须指定接⼝地址。在Windows下,可以直接执⾏arp -d命令删除。在Linux下,如果不指定接⼝时,将会提⽰“arp: need host name”信息。
实验步骤⼆
任务描述:使⽤Wireshark抓取ARP数据包。 1、启动Wireshark,Filter选择ARP协议: 2、在实验环境下,使⽤ping命令,ping⼀台主机: 3、Wireshark输出ARP信息: 4、从该界⾯的Protocol列,可以看到捕获到的数据包都是ARP协议包。其中,33、36帧是ARP请求包;34、37帧是响应包。其他数据包不是实验ping命令所产⽣,不⽤在意。
实验步骤三
任务描述:分析ARP请求包和ARP应答包。 1、熟悉ARP报⽂格式: 在分析ARP协议包之前,先介绍⼀下它的报⽂格式,以帮助学⽣更清楚的理解每个包。ARP请求报⽂格式如下图所⽰。 ARP请求协议报⽂格式: 该图中每⾏长度为4个字节,即32位。其中图中蓝⾊的部分是以太⽹(指Ethernet II类型)的帧头部。这⾥共三个字段,分别如下所⽰:第⼀个字段是⼴播类型的MAC地址:0XFF-FF-FF-FF-FF-FF,其⽬标是⽹络上的所有主机。第⼆个字段是源MAC地址,即请求地址解析的的主机MAC地址。第三个字段是协议类型,这⾥⽤0X0806代表封装的上层协议是ARP协议。 接下来是ARP协议报⽂部分其中各个字段的含义如下:
硬件类型:表明ARP协议实现在哪种类型的⽹络上。
协议类型:表⽰解析协议(上层协议)。这⾥⼀般是0800,即IP。
硬件地址长度:MAC地址长度,此处为6个字节。
协议地址长度:IP地址长度,此处为4个字节。
木材炭化炉
操作类型:表⽰ARP协议数据包类型。1表⽰ARP协议请求数据包,2表⽰ARP协议应答数据包。
源MAC地址:发送端MAC地址。
源IP地址:表⽰发送端协议地址(IP地址)。
⽬标MAC地址:⽬标端MAC地址。
⽬标IP地址:表⽰⽬的端协议地址(IP地址)。
ARP协议应答协议报⽂和ARP协议请求协议报⽂类似。不同的是,此时以太⽹帧头部的⽬标MAC地址为发送ARP协议地址解析请求的MAC地址,⽽源MAC地址为被解析的主机的MAC地址。同时,操作类型字段为2,表⽰ARP协议应答数据包,⽬标MAC地址字段被填充为⽬标MAC地址。
ARP应答协议报⽂格式:
2、分析ARP请求包:
捕获的ARP请求包如下图33帧数据:
车座头枕从上图可以看到,第⼀个数据包是⼀个ARP请求包。⽤户可以通过在Wireshark的Packet Details⾯板中,检查以太⽹头部来确定该包是否
是⼀个真的⼴播数据包。下⾯将详细介绍Packet Details⾯板中的每⾏信息。如下所⽰:
以上内容表⽰这是第33帧数据包的详细信息。其中,该包的⼤⼩为42个字节。
以上内容表⽰以太⽹帧头部信息。其中源MAC地址为02:00:04:78:01:7b,⽬标MAC地址为ff:ff:ff:ff:ff:ff(⼴播地址)。这⾥的⽬标地址为⼴播地址,是因为主机PC2不知道PC1主机的MAC地址。这样,局域⽹中所有设备都会收到该数据包。以上内容表⽰地址解析协议内容,request表⽰该包是⼀个请求包。在该包中包括有ARP更详细的字段信息,如下所⽰:
叶轮设计
Frame 33: 42 bytes on wire (336 bits), 42 bytes captured (336 bits) on interface 0
Ethernet II, Src: 02:00:04:78:01:7b (02:00:04:78:01:7b), Dst: Broadcast (ff:ff:ff:ff:ff:ff)
Address Resolution Protocol (request)
通过以上内容的介绍,可以确定这是⼀个在以太⽹上使⽤IP的ARP请求。从该内容中,可以看到发送⽅的IP(10.1.1.142)和MAC地址(02:00:04:78:01:7b),以及接收⽅的IP地址(10.1.1.166)。由于⽬前还不知道⽬标主机的MAC地址,所以这⾥的⽬的MAC地址为00:00:00:00:00:00。
关于以上ARP头部的内容和前⾯介绍的ARP请求报⽂格式是相对应的,如下图:
3、分析ARP响应包:
捕获的ARP相应包如下图34帧数据:
在上图中的Packet Details⾯板中,可以看到第⼆个数据包是⼀个ARP响应包。该包中的信息与ARP请求包的信息类似。但是也有⼏处不同。下⾯将详细介绍,如下所⽰:
以上信息表⽰这是第⼆个数据包的详细信息。其中,该包的⼤⼩为60个字节。
以上内容是以太⽹帧头部的信息。其中,源MAC地址为02:00:03:56:00:cf,⽬标MAC地址为02:00:04:78:01:7b。从该⾏信息中,可以知道PC2获取到了PC1主机的MAC地址。这样就可以正常通信了。以上内容表⽰这⾥⼀个ARP响应包。该包中详细内容如下所⽰:Address Resolution Protocol (request)  #ARP
自动面膜机
生物化粪池请求包
Hardware type: Ethernet (1)  #硬件类型
Protocol type: IP (0x0800)  #协议类型
Hardware size: 6  #硬件地址    Protocol size: 4  #协议长度    Opcode: request (1)  #
操作码。该值为1表⽰是个ARP 请求包
Sender MAC address: 02:00:04:78:01:7b (02:00:04:78:01:7b)  #发送端MAC 地址
Sender IP address: 10.1.1.142 (10.1.1.142)  #发送端IP 地址
Target MAC address: 00:00:00_00:00:00 (00:00:00:00:00:00)  #⽬标MAC 地址
Target IP address: 10.1.1.166(10.1.1.166)  #⽬标IP 地址
Frame 34: 60 bytes on wire (480 bits), 60 bytes captured (480 bits) on interface 0
EthernetII,Src:02:00:03:56:00:cf(02:00:03:56:00:cf),Dst:02:00:04:78:01:7b(02:00:04:78:01:7b)
Address Resolution Protocol (reply)

本文发布于:2024-09-23 05:14:31,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/2/210123.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:地址   协议   命令
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议