由上一篇了解到,如果在局域网中,没有了ARP,局域网中,即使我们知道了一个工作站的计算机名,知道了一个工作站的IP地址,我们还是找不到它,就像我们知道一个地方叫“张昕宇的家”,但是,不知道这个地方所处城区,街道,门牌号,那么,我们一样的找不到准确的位置;所以就不会实现局域网的互联。
********************
在这里,要感谢那么些前辈啊。没有他们,就没有今天我们的互联网啊。
********************
那么,ARP在我们的局域网中有几种工作形式呢?
第一篇里,说的就是第一种了,也就是所谓的正向ARP。另外,我这里了解到了另
第一篇里,说的就是第一种了,也就是所谓的正向ARP。另外,我这里了解到了另
外三种ARP的变形:
反向ARP:
我们都知道正向ARP请求是知道目的IP请求目的MAC,那么反向ARP是知道MAC来求
反向ARP:
我们都知道正向ARP请求是知道目的IP请求目的MAC,那么反向ARP是知道MAC来求
IP地址,这种请求方式非常适用于无盘工作站,因为它无法从自身的操作系统中
获得IP地址,所以它会发送广播请求来获得IP地址信息,而RARP服务器则会响应
该请求消息为其分配1个IP地址(注:这里所谓的RARP服务器指的是BOOTP或DHCP
服务器)。
代理ARP:
因为ARP无法通过路由器进行网络广播,所以我们必须依靠一个设备来进行跨网段
因为ARP无法通过路由器进行网络广播,所以我们必须依靠一个设备来进行跨网段
数据的传送,这个设备就是路由器(这台路由器就是所谓的代理),我们要以一
台路由器为代理让发送方的ARP请求来确定该路由器的硬件地址,并将数据包发送
到默认网关,最后由路由器按照自己的方式来转发数据。
但是如果以这种形式来进行ARP的请求会出现这样一种状况,我刚才说过ARP请求
但是如果以这种形式来进行ARP的请求会出现这样一种状况,我刚才说过ARP请求
是无法跨网段的,所以只能发送到路由器让路由器去转发,而发送方的ARP缓存表
中存放的应该是路由器的硬件地址。(从字面上看,也就是说路由器欺骗了发送
方的计算机,这种转发方式也可以算是一种ARP欺骗吧。)
在IOS中,缺省情况下代理ARP功能是打开的,可以在每个接口上使用命令no ip
在IOS中,缺省情况下代理ARP功能是打开的,可以在每个接口上使用命令no ip
proxy-arp关闭此功能。
无故ARP:
主机偶尔也会使用自己的IP地址作为目标地址发送ARP请求。这种ARP请求称为无
主机偶尔也会使用自己的IP地址作为目标地址发送ARP请求。这种ARP请求称为无
故ARP,通常用为:
1.无故ARP可以用于检测网络中的重复IP地址。一台设备可以向自己的IP地址发送
1.无故ARP可以用于检测网络中的重复IP地址。一台设备可以向自己的IP地址发送
ARP请求,如果收到收到ARP响应则表明网络中存在重复地址。
2.无故ARP还可以通告一个新的MAC。当一台设备收到一个ARP请求,如果ARP高速
2.无故ARP还可以通告一个新的MAC。当一台设备收到一个ARP请求,如果ARP高速
缓存中已有发送者的IP地址,那么此IP地址所对应的硬件地址将会被发送者新的
硬件地址所更新。这种无故ARP用途正式基于此。
3.某个子网中运行HSRP协议的路由器如果从其他路由器变成了主路由器,它将会
3.某个子网中运行HSRP协议的路由器如果从其他路由器变成了主路由器,它将会
发送一个无故ARP更新该子网内主机的ARP缓存。
在IOS中默认是关闭的,但可以通过命令ip gratuitous-arps激活
在IOS中默认是关闭的,但可以通过命令ip gratuitous-arps激活
******************
世间万物,都该有两面性吧。所以,arp也是咯。再为我们提供方便的同事,也一样将它的弊端丢给了我们这些受益者。
******************
ARP协议的缺陷
ARP协议是建立在信任局域网内所有结点的基础上的,它很高效,但却不安全。它
是无状态的协议,不会检查自己是否发过请求包,也不管(其实也不知道)是否
是合法的应答,只要收到目标MAC是自己的ARP reply包或arp广播包(包括ARP
request和ARP reply),都会接受并缓存,缓存时间一般为20分钟。
*****************
高速缓存技术(caching)
1、在每台使用ARP的主机中,都保留了一个专用的高速缓存区(cache),用于保存已知的ARP表项。
一旦收到ARP应答,主机就将获得的IP位址与物理位址的映像关系存入高速cache的ARP表中。当发送信息时,主机首先到高速cache的ARP表中查找相应的映像关系,若找不到,再利用ARP进行地址解析。利用高速缓存技术,主机不必为每个发送的IP资料报使用ARP协议,这样就可以减少网络流量,提高处理的效率。
1、在每台使用ARP的主机中,都保留了一个专用的高速缓存区(cache),用于保存已知的ARP表项。
一旦收到ARP应答,主机就将获得的IP位址与物理位址的映像关系存入高速cache的ARP表中。当发送信息时,主机首先到高速cache的ARP表中查找相应的映像关系,若找不到,再利用ARP进行地址解析。利用高速缓存技术,主机不必为每个发送的IP资料报使用ARP协议,这样就可以减少网络流量,提高处理的效率。
为了保证主机中ARP表的正确性,ARP表必须经常更新。如何维护ARP表的有效性? ARP表中的每一个表项都被分配了一个定时器,一旦某个表项超过了计时时限,主机就会自动将它删除,以保证ARP表的有效性。
实验证明,由于多数网络通信都需要持续发送多个信息包,所以即使高速缓存去保存一个小的ARP表也可以大大ARP的效率。
总结:这种改进的思想是在cache中存储一个ARP表。
实验证明,由于多数网络通信都需要持续发送多个信息包,所以即使高速缓存去保存一个小的ARP表也可以大大ARP的效率。
总结:这种改进的思想是在cache中存储一个ARP表。
*****************
就是因为这样的原因,就为ARP欺骗提供了可能,恶意节点可以发布虚假的ARP报文从而影响网内结点的通信,诸如网上现在经常提到的假冒网关,中间人***之类的异常情况就出现了。(关于ARP带来的一些异常状况以及对应的解决方法,就在第三篇里咯。^_^)
*******************
铸剑师铸剑,剑成后,便开始等待持剑者的到来。
是以血养剑,还是保一方平安,是剑御人,还是人御剑。
乃在持剑者之心也。
*******************
转载于:https://blog.51cto.com/dennisxinyu/124955