关于Arp命令的随笔

Posted yongjason

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Arp命令的随笔相关的知识,希望对你有一定的参考价值。

 

一.ARP命令

      Arp命令用于显示和修改地址解析协议(ARP)使用的“IP到物理”地址转换表。

      Arp缓存中包含一个或多个表,它们用于存储IP地址及其经过解析的以太网或令牌环物理地址。计算机上安装的每一个以太网或令牌环网络适配器都有自己单独的表。如果在没有参数的情况下使用,则ARP命令将显示帮助信息。

技术图片

       Arp -aarp –g命令的输出结果是一样的,用于查看高速缓存中的所有项目。

 技术图片     技术图片

     使用arp –a internet_address命令,就可以只显示与该接口相关的ARP缓存项目。

技术图片

    如果有多个网卡,可以使用”arp –a –n interface_address”,显示指定网络接口的ARP信息

 技术图片

      -v选项只能和arp –a一起使用,在详细模式下显示当前arp项。所有无效项和环回接口上的项都将显示。如下图所示,能看到本地环回接口的arp项。

 技术图片

二.ARP协议

ARP(Address Resolution Protocol)即地址解析协议, 用于实现从 IP 地址到 MAC 地址的映射,即询问目标IP对应的MAC地址

1.ARP的位置

  OSI模型有七层,TCP在第4层传输层,IP在第3层网络层,而ARP在第2层数据链路层。高层对低层是有强依赖的,所以TCP的建立前要进行ARP的请求和应答。

  ARP高速缓存表在IP层使用。如果每次建立TCP连接都发送ARP请求,会降低效率,因此在主机、交换机、路由器上都会有ARP缓存表。建立TCP连接时先查询ARP缓存表,如果有效,直接读取ARP表项的内容进行第二层数据包的发送;只有表失效时才进行ARP请求和应答进行MAC地址的获取,以建立TCP连接。

2.ARP的作用

  要了解ARP的作用,首先要分清两个“地址”:

  (1)TCP/IP的32bit IP地址。仅知道主机的IP地址不能让内核发送数据帧给主机。

  (2)网络接口的硬件地址,它是一个48bit的值,用来标识不同的以太网或令牌环网络接口。在硬件层次上,进行数据交换必须有正确的接口地址,内核必须知道目的端的硬件地址才能发送数据。

  简言之,就是在以太网中,一台主机要把数据帧发送到同一局域网上的另一台主机时,设备驱动程序必须知道以太网地址才能发送数据。而我们只知道IP地址,这时就需要采用ARP协议将IP地址映射为以太网地址。

3.ARP分组格式

  ARP分组的格式如下图:

 技术图片

  字段1是ARP请求的目的以太网地址,全1时代表广播地址。

  字段2是发送ARP请求的以太网地址。

  字段3以太网帧类型表示的是后面的数据类型,ARP请求和ARP应答这个值为0x0806。

  字段4表示硬件地址的类型,硬件地址不只以太网一种,是以太网类型时此值为1。

  字段5表示要映射的协议地址的类型,要对IPv4地址进行映射,此值为0x0800。

  字段6和7表示硬件地址长度和协议地址长度,MAC地址占6字节,IP地址占4字节。

  字段8是操作类型字段,值为1,表示进行ARP请求;值为2,表示进行ARP应答;值为3,表示进行RARP请求;值为4,表示进行RARP应答。

  字段9是发送端ARP请求或应答的硬件地址,这里是以太网地址,和字段2相同。

  字段10是发送ARP请求或应答的IP地址。

  字段11和12是目的端的硬件地址和协议地址。

 

 三.ARP欺诈

1.原理

       ARP协议是处于数据链路层的网络通信协议,它完成IP地址到物理地址(即MAC地址)的转换功能。而ARP病毒正是通过伪造IP地址和MAC地址实现ARP欺骗,导致数据包不能发到正确的MAC地址上去,会在网络中产生大量的ARP通信量使网络阻塞,从而导致网络无法进行正常的通信。

       ARP欺骗有两种攻击可能,一种是对路由器ARP表的欺骗;另一种是对内网电脑ARP表的欺骗,当然也可能两种攻击同时进行。不管理怎么样,欺骗发生后,电脑和路由器之间发送的数据就被送到错误的MAC地址上。

 2.对策

      ARP绑定是防止ARP欺骗的有效方法,就是把IP地址与相应的MAC地址进行绑定来避免ARP欺骗。ARP欺骗形式有欺骗路由器ARP表和欺骗电脑ARP两种,因此MAC地址绑定也有路由器ARP表的绑定和电脑上ARP表的绑定。两个方面的设置都是必须的,不然,如果您只设置了路由器的防止ARP欺骗功能而没有设置电脑,电脑被欺骗后就不会把数据包发送到路由器上,而是发送到一个错误的地方,当然无法上网和访问路由器了。

 

以上是关于关于Arp命令的随笔的主要内容,如果未能解决你的问题,请参考以下文章

关于命令行的随笔

关于环境配置的随笔

关于ansible的随笔

新随笔

关于show arp表,显示Incomplete问题

关于LVS的ARP问题