ARP协议及ARP欺骗详解

    地址解析协议即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。ARP缓存是个用来储存IP地址和MAC地址的缓冲区,其本质就是一个IP地址-->MAC地址的对应表,表中每一个条目分别记录了网络上其他主机的IP地址和对应的MAC地址。

           地址解析协议作用:OSI模型把网络工作分为七层,IP地址在OSI模型的第三层,MAC地址在第二层,彼此不直接打交道。在通过以太网发送IP数据包时,需要先封装第三层(32位IP地址)、第二层(48位MAC地址)的报头,但由于发送时只知道目标IP地址,不知道其MAC地址,又不能跨第二、三层,所以需要使用地址解析协议。使用地址解析协议,可根据网络层IP数据包包头中的IP地址信息解析出目标硬件地址(MAC地址)信息,以保证通信的顺利进行。

            arp协议报文格式:

            ARP协议及ARP欺骗详解_地址

        

              硬件地址长度和协议地址长度分别指出硬件地址和协议地址的长度,以字节为单位。对于以太网上IP地址的ARP请求或应答来说,它们的值分别为6和4;


     操作类型(OP):1表示ARP请求,2表示ARP应答;

     发送端MAC地址:发送方设备的硬件地址;

     发送端IP地址:发送方设备的IP地址;

     目标MAC地址:接收方设备的硬件地址。

     目标IP地址:接收方设备的IP地址。

        接下来将为大家详解地址解析协议

    

    %&%- 主机A首先查看自己的ARP表,确定其中是否包含有主机B对应的ARP表项。如果找到了对应的MAC地址,则主机A直接利用ARP表中的MAC地址,对IP数据包进行帧封装,并将数据包发送给主机B。

    %&%- 如果主机A在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的IP地址和MAC地址,目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。

     %&%-主机B比较自己的IP地址和ARP请求报文中的目标IP地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。

     %&%-主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去。


                何为ARP欺骗

          

    ARP欺骗是黑客常用的攻击手段之一,ARP欺骗分为二种,一种是对路由器ARP表的欺骗;另一种是对内网PC的网关欺骗。

    第一种ARP欺骗的原理是——截获网关数据。

它通知路由器一系列错误的内网MAC地址,并按照一定的频率不断进行,使真实的地址信息无法通过更新保存在路由器中,结果路由器的所有数据只能发送给错误的MAC地址,造成正常PC无法收到信息。

在命令窗口输入:arpspoof -i eth0 -t  172.28.15.254 172.28.15.11(目标主机ip) 告诉网关自己是目标主机从而欺骗网关。

    第二种ARP欺骗的原理是——伪造网关。

它的原理是建立假网关,让被它欺骗的PC向假网关发数据,而不是通过正常的路由器途径上网。在PC看来,就是上不了网了,“网络掉线了”。打开命令窗口输入:arpspoof -i eth0 -t 172.28.15.11(目标主机ip) 172.28.15.254 不断发送数据包给目标主机告诉它自己的主机物理地址是网关的物理地址;

       上面两条arpspoof指令可以用下面一个指令完成:arpspoof -i eth0 -t 172.28.15.11 -r 172.28.15.254

            简单的arp欺骗防御:

    用户设置静态的MAC→IP对应表。以Windows 系统为例,操作方法是:在命令提示符下输人命令:

    arp-a 获得网关的MAC地址

    arp-d 清除ARP列表

    arp-s 172.28.15.254(网关IP 地址)cc-cc-cc-cc-cc-cc(网关MAC 地址)。

    在网关(汇聚交换机)上实现IP 地址和MAC 地址的绑定。为每台主机添加一条IP 地址和MAC 地址对应的关系静态地址表。

    在交换机上使用如下命令:

    <host> system-view

    <host>arp static (主机IP地址) (主机MAC地址)

    上述命令在交换机内建立了MAC地址和IP 地址对应的映射表。

用户发送数据包时,若交换机获得的IP和MAC地址与先前建立的映射表匹配,则发送的包能通过,不符合则丢弃该数据包,这样能防止ARP 欺骗。

        经过几轮学习ARP协议,已经理解的差不多了,若以上总结能微弱帮上大家便是开心矣!