⑴ ARP地址如何解析
1.首先给大家说说什么是ARP ARP(Address Resolution Protocol)是地址解析协议,是一种将IP地址转化成物理地址的协议。从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。ARP具体说来就是将网络层(IP层,也就是相当于OSI的第三层)地址解析为数据连接层(MAC层,也就是相当于OSI的第二层)的MAC地址。 原理:某机器A要向主机B发送报文,会查询本地的ARP缓存表,找到B的IP地址对应的MAC地址后,就会进行数据传输。如果未找到,则广播A一个ARP请求报文(携带主机A的IP地址Ia——物理地址Pa),请求IP地址为Ib的主机B回答物理地址Pb。网上所有主机包括B都收到ARP请求,但只有主机B识别自己的IP地址,于是向A主机发回一个ARP响应报文。其中就包含有B的MAC地址,A接收到B的应答后,就会更新本地的ARP缓存。接着使用这个MAC地址发送数据(由网卡附加MAC地址)。因此,本地高速缓存的这个ARP表是本地网络流通的基础,而且这个缓存是动态的。
⑵ 如何查看arp缓存表
ARP缓存表是可以查看的,也可以添加和修改。在命令提示符下,输入“arp
-a”就可以查看ARP缓存表中的内容了,如附图所示。
arp
-a
用“arp
-d”命令可以删除ARP表中所有的内容;
用“arp
-d
+空格+
<指定ip地址>”
可以删除指定ip所在行的内容
用“arp
-s”可以手动在ARP表中指定IP地址与MAC地址的对应,类型为static(静态),此项存在硬盘中,而不是缓存表,计算机重新启动后仍然存在,且遵循静态优于动态的原则,所以这个设置不对,可能导致无法上网
⑶ 关于交换机上怎么查看ARP缓存表
1、点击开始菜单按钮。
注意事项:
交换机技术允许共享型和专用型的局域网段进行带宽调整,以减轻局域网之间信息流通出现的瓶颈问题。已有以太网、快速以太网、FDDI和ATM技术的交换产品。
⑷ 网络传输中的三张表,MAC地址表、ARP缓存表以及路由表详解
在阐述这几张表之前,有必要先说明一下:
1、交换机工作在数据链路层
说明:本文出现的交换机指的都是二层交换机,带路由功能的三层交换机不在讨论范围
2、路由器工作在网络层
3、交换机有MAC地址表,无ARP表,MAC地址表一般存在在交换机中
4、一般情况下,计算机和路由器既有ARP表,也有路由表
MAC地址表 :在交换机中,存有一张记录局域网主机MAC地址与交换机接口的对应关系的表,交换机就是依据这张表将数据帧转发到指定的目标主机上。 通过下面的阐述,你会对mac地址表有所了解。
上面是交换机、主机A以及主机B的连接图,主机A向主机B发送数据帧的详细过程如下:
1、主机A将一个数据帧发送给交换机,其中源MAC地址为MAC_A,目标MAC地址为MAC_B。
2、交换机收到此数据帧后,首先将数据帧中的源MAC地址MAC_A和对应的接口(接口1) 记录到MAC地址表中。
3、然后,交换机会检查自己的MAC地址表中是否有MAC_B的信息。如果有,则从MAC地址表记录的接口2发送出去;如果没有,则会将此数据帧从非接收接口(接口1)的所有接口发送出去。
4、这时,局域网中所有主机都会收到此数据帧,但是只有主机B收到此数据帧时会响应这个广播,并回应一个数据帧,此数据帧中包含主机B的MAC地址MAC_B。
5、当交换机收到主机B回应的数据帧后,也会记录数据帧中的源MAC地址(也就是MAC_B)和对应接口到MAC表中,此时,交换机就可以把主机A发过来的数据帧发送给主机B了。数据帧的源MAC地址为交换机的MAC地址,目标MAC地址是MAC_B。
上面我们讲解了交换机的工作原理,知道交换机是通过MAC地址通信的,但是我们是如何获得目标主机的MAC地址呢?这时我们就需要使用ARP协议了。ARP协议是工作在网络层的协议,它负责将IP地址解析为MAC地址。在每台主机中都有一张ARP表,它记录着主机的IP地址和MAC地址的对应关系。还是利用上面的图来进行阐述。
1、如果主机A想发送数据给主机B,主机A首先会检查自己的ARP缓存表,查看是否有主机B的IP地址和MAC地址的对应关系。如果有,则会将主机B的MAC地址作为源MAC地址封装到数据帧中。如果没有,主机A则会发送一个ARP请求信息,请求的目标IP地址是IP_B,目标MAC地址是MAC地址的广播帧(即FF-FF-FF-FF-FF-FF),源IP地址为IP_A,源MAC地址是MAC_A。
2、当交换机收到此数据帧之后,发现此数据帧是广播帧,因此,会将此数据帧从非接收接口的所有接口发送出去。
3、当主机B收到此数据帧后,会校对目标IP地址是否是自己,当发现是目标地址是自己,会将主机A的IP地址和MAC地址的对应关系记录到自己的ARP缓存表中,同时会发送一个ARP应答,其中包括自己的MAC地址。
4、主机A在收到这个回应的数据帧之后,在自己的ARP缓存表中记录主机B的IP地址和MAC地址的对应关系。而此时交换机已经学习到了主机A和主机B的MAC地址了。
路由器负责不同网络之间的通信,它是当今网络中的重要设备,可以说没有路由器就没有当今的互联网。在路由器中有一张路由表,记录着到不同网段的信息。路由表中的信息分为直连路由和非直连路由。
直连路由 :是直接连接在路由器接口的网段,由路由器自动生成。
非直连路由 :不是直接连接在路由器接口上的网段,此记录需要手动添加或者是使用动态路由生成。
路由表中记录的条目有的需要手动添加(称为静态路由),有的需要动态获取的(称为动态路由)。直连路由属于静态路由。
路由器是工作在网络层的,在网络层可以识别逻辑地址。当路由器的某个接口收到一个包时,路由器会读取包中相应的目标的逻辑地址的网络部分,然后在路由表中进行查找。如果在路由表中找到目标地址的路由条目,则把包转发到路由器的相应接口,如果在路由表中没有找到目标地址的路由条目,那么,如果路由配置默认路由,就科举默认路由的配置转发到路由器的相应接口;如果没有配置默认路由,则将该包丢弃,并返回不可到达的信息。这就是数据路由的过程。
如下图:详细介绍路由器的工作原理
1、HostA在网络层将来自上层的报文封装成IP数据包,其中源IP地址为自己,目标IP地址是HostB,HostA会用本机配置的24位子网掩码与目标地址进行“与”运算,得出目标地址与本机不是同一网段,因此发送HostB的数据包需要经过网关路由A的转发。
2、HostA通过ARP请求获取网关路由A的E0口的MAC地址,并在链路层将路由器E0接口的MAC地址封装成目标MAC地址,源MAC地址是自己。
3、路由器A从E0可接收到数据帧,把数据链路层的封装去掉,并检查路由表中是否有目标IP地址网段(即192.168.2.2的网段)相匹配的的项,根据路由表中记录到192.168.2.0网段的数据请发送给下一跳地址10.1.1.2,因此数据在路由器A的E1口重新封装,此时,源MAC地址是路由器A的E1接口的MAC地址,封装的目标MAC地址则是路由器2的E1接口的MAC地址。
4、路由B从E1口接收到数据帧,同样会把数据链路层的封装去掉,对目标IP地址进行检测,并与路由表进行匹配,此时发现目标地址的网段正好是自己E0口的直连网段,路由器B通过ARP广播,获知HostB的MAC地址,此时数据包在路由器B的E0接口再次封装,源MAC地址是路由器B的E0接口的MAC地址,目标MAC地址是HostB的MAC地址。封装完成后直接从路由器的E0接口发送给HostB。
5、此时HostB才会收到来自HostA发送的数据。
总结:路由表负责记录一个网络到另一个网络的路径,因此路由器是根据路由表工作的。
至此,三张表介绍完毕。
⑸ 如何查看arp表
1、打开桌面,点击“开始”,在开始中点击“运行”,具体如图所示。
⑹ 解释ARP缓存表
在局域网的管理维护中,网管可能经常碰到用户之间不能互访,或者不能上因特网的问题,一般是IP地址设置错误、相关软件设置错误、网线网卡或其他网络产品坏了。但有时在排除以上可能后,问题仍然存在。这个时候我们可以研究一下用户计算机上的ARP缓存表是否有问题.局域网中计算机之间的通信,都是通过正确的ARP表来进行数据通信,而且都是系统自动建立维持的。
1.自己的缓存表有错误
比如在图1中,PC 1中的ARP缓存表有这样一个记录。
IP地址:192.168. 0.9
MAC地址:00-aa-00-62-c6-09
很显然,这时PC 1是无法访问PC 2上的数据,但是它可以和PC 3通信,也可以通过Router上因特网。那么这样一个记录是如何来的呢?这时我们应该想到局域网内有恶意程序或者有人在人为操纵。因为一般来讲ARP表是系统自动维护的,但也可以人为制作一个ARP数据包更新缓存表。比如上例中:如果PC 3向PC 1发送一个ARP数据包,告诉它PC 2的MAC地址是00-aa-00-62-c6-09 ,那么在PC 1里就有一个错误的记录。如果PC 3不停地发送,那么PC 1就一直保持这样一个错误记录,也就一直不能访问PC 2上的数据。如果忽略这个错误就会出现,PC 1能访问除PC 2以外的其他任何一台计算机,能上网,而就是无法访问PC 2,但相应的设置又正确无误,想不出来问题到底出在哪里。
2.对方的缓存表有错误
如果PC 1中的ARP缓存表是正确的记录。
IP地址:192.168. 0.9
MAC地址:00-aa-00-62-c6-08
而PC 3向PC 2不停地发送一个ARP数据包,告诉它错误的PC 1的MAC地址,在PC 2的ARP缓存表就一直保持这样一个记录。
IP地址:192.168. 0.2
MAC地址:00-aa-00-62-c6-09
PC 2就无法访问PC 1。
应对措施
目前,对于这种通过ARP数据包欺骗、破坏缓存表没有很好的应对措施。通过实践我认为有以下几种方法可以应对一下。
1.手动更新ARP缓存表
比如上例中,在PC 1中执行“Arp -a 192.168. 0.9 00-aa-00-62-c6-08”的命令。
但如果有程序在不停地发送错误的ARP数据包,这种方法就无法应付了。
2.查出元兇
在PC 1上,执行ping 192.168.0.9 -t的命令,然后让别人在中心机房把网线一根根拔掉,一旦发现能够ping通后,就能通过那条网线,顺藤摸瓜揪出搞破坏的元兇了。这是最笨也是最实用的方法
⑺ 清除ARP缓存的方法
1、按下键盘上的Windows+R组合键,在出现的运行窗口中输入cmd,然后点击确定。
⑻ 什么是arp缓存表
arp_tbl是一个类型为struct
neigh_table的全局变量,它是一个ARP的缓存表,也称为邻居表。协议栈通过ARP协议获取到的网络上邻居主机的IP地址与MAC地址的对应关系都会保存在这个表中,以备下次与邻居通讯时使用,同时,ARP模块自身也会提供一套相应的机制来更新和维护这个邻居表
⑼ ARP 协议
网络设备有数据要发送给另一台网络设备时,必须要知道对方的网络层地址(即IP地址)。IP地址由网络层来提供,但是仅有IP地址是不够的,IP数据报文必须封装成帧才能通过数据链路进行发送。数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。通过目的IP地址二获取的MAC地址的过程是由ARP(Address Resolution Protocol)协议来实现的。
数据链路层在进行数据封装的时候,需要目的MAC地址。
一台网络设备要发送数据给另外一台网络设时,必须要知道对方的IP地址。但是,仅有IP地址是不够的,因为IP数据报文必须封装成帧才能通过数据链路层进行发送,而数据帧必须要包含目的MAC地址,因此发送端还必须获取到目的MAC地址。每一个网络设备在数据封装前都需要获取下一跳的MAC地址。IP地址由网络层来提供,MAC地址通过ARP协议来获取。ARP协议是TCP/IP协议簇中的重要组成部分,ARP能够通过目的IP地址发现目标设备的MAC地址,从而实现数据链路层的可达性。
ARP数据包格式:
关于ARP协议属于2层还是3层的讨论:
https://networkengineering.stackexchange.com/questions/5064/on-which-layer-of-the-osi-model-does-the-arp-protocol-belong
这里有句话很好:OSI只是一个模型,没有任何一个协议是完全属于哪一层的。
我们看帧结构,ARP数据直接包含在Ethernet_II中,我个人认为它可以归纳于二层。
网络设备通过ARP报文来发现目的MAC地址。ARP报文中包含以下字段:
1)Hardware Type:硬件地址类型,一般为以太网;
2)Protocol Type:表示三层协议地址类型,一般为IP;
3)Hardware Length和Protocol Length为MAC地址和IP地址的长度,单位是字节; (这个理论上可以不要,因为前面已经确定了硬件类型和协议类型)
4)Operation Code指定了ARP报文的类型,包括ARP request和ARP reply;
5)Source Hardware Address 指的是发送ARP报文的设备MAC地址;
6)Source Protocol Address指的是发送ARP报文的设备IP地址;
7)Destination Hardware Address指的是接收者MAC地址,在ARP request报文中,该字段值为0;
8)Destination Protocol Address指的是接受者的IP地址。
通过ARP协议,网络设备可以建立目标IP地址和MAC地址之间的映射。网络设备通过网络层获取到目的IP地址之后,还要判断目的MAC地址是否已知。
网络设备一般都有一个ARP缓存(ARP Cache),ARP缓存用来存放IP地址和MAC地址的关联信息。在发送数据前,设备会先查找ARP缓存表。如果缓存表中存在对方设备的MAC地址,则直接采用该MAC地址来封装帧,然后将帧发送出去。如果缓存表中不存在相应的信息,则通过发送ARP request报文来获得它。学习到的IP地址和MAC地址的映射关系会被放入ARP缓存表中存放一段时间。在有效期内,设备可以直接从这个表中查找目的MAC地址来进行数据封装,而无需进行ARP查询。过了这段有效期,ARP表现会被自动删除。
如果目标设备位于其他网络则源设备会在ARP缓存表中查找网关的MAC地址,然后将数据发送给网关,网关再把数据转发给目的设备。
在本例中,主机A的ARP缓存表中不存在主机C的MAC地址,所以主机A会发送ARP Request来获取目的MAC。ARP request报文封装在以太帧中。帧头中的源MAC地址为发送端主机A的MAC地址。此时,由于主机A不知道主机C的MAC地址,所以目的MAC地址为广播地址 FF-FF-FF-FF-FF-FF 。ARP request 报文中包含源IP地址,目的IP地址,源MAC地址,目的MAC地址,其中目的MAC地址的值为0。ARP request报文会在整个网络上传播,该网络中所有主机包括网关都会接受到此ARP request 报文。网关会阻止该报文发送到其他网络上。
所有主机接收到该ARP request报文后,会检查它的目的协议地址(一般是 00-00-00-00-00-00-00 与所有的匹配)字段与自身的IP地址是否匹配。如果不匹配,则该主机将不会响应该ARP request报文。如果匹配,则该主机会将ARP报文中的源MAC地址和源IP地址信息记录到自己的ARP缓存表中,然后通过ARP Reply报文进行响应。
主机C会向主机A回应ARP Reply报文。 ARP Reply 报文中的源协议地址是主机C自己的IP地址,目标协议地址是主机A的IP地址,同事Operation Code被设置为reply。ARP Reply报文通过单播传送。
主机A收到ARP Reply以后,会检查ARP报文中目的MAC地址是否与自己的MAC匹配。如果匹配,ARP报文中的源MAC地址和源IP地址会被记录到主机A的ARP缓存表中。ARP表项的老化超时时间缺省为1200秒(20min)。
位于不同网络的网络设备在不配置网关的情况下,能够通过ARP代理实现相互通信。
在上述例子的组网中,主机A需要与主机B通信时,目的IP地址与本机的IP地址位于不同网络,但是由于主机A未配置网关,所以它会将以广播形式发送ARP request报文,请求主机B的MAC地址。但是,广播报文无法被路由器转发,所以主机B无法收到主机A的ARP请求报文,当然也就无法应答。
在路由器上启用代理ARP功能,就可以解决这个问题。启用代理ARP后,路由器收到这样的请求,会查找路由表,如果存在主机B的路由表项,路由器将会使用自己的G0/0/0接口的MAC地址来回应该ARP request。主机A收到ARP reply后,将以路由器的G0/0/0接口MAC地址作为目的MAC地址进行数据转发。
免费ARP可以用来探测IP地址是否冲突。
主机被分配了IP地址或者IP地址发生变化后,必须立刻检测其所分配的IP地址在网络上是否是唯一的,以避免地址冲突。主机通过发送ARP request报文来进行地址冲突检测。
主机A将 ARP request 广播报文中的目的IP地址字段设置为自己的IP地址,该网络中所有主机包括网关都会接收到此报文。当目的IP地址已经被某一个主机或网关使用时,该主机或网关就会回应 ARP reply 报文。通过这种方式,主机A就能探测到IP地址冲突了。
总结:
1.网络设备在什么情况下回发送ARP request?
源设备在发送数据给目的设备前,会首先查看自身的ARP缓存,查找ARP缓存是否在目的设备的IP地址和MAC地址的映射。如果存在则直接使用,如果不存在则会发送ARP request。
2.网络设备什么时候会产生免费ARP?
当网络上的一个设备被分配了IP地址或者IP地址发生变化后,可以通过免费ARP来检查IP地址是否冲突。