什么是arp协议:

arp协议是地址解析协议,英文是address resolution protocol

通过IP地址可以获得mac地址

两个主机的通信归根到底是MAC地址之间的通信

在TCP/IP的网络环境下,每个联网的主机都会被分配一个32位的IP地址,这种互联网地址是在网际范围标识主机的一种逻辑地址

,为了让报文能够在物理网络上传输,还必须要知道对方主机的物理地址(MAC地址),这样就存在把IP地址转换成物理地址的问题。

我们以以太网为例,为了正确的向目的主机发送报文,必须把目的主机的32位IP地址转换成48位的以太网地址(MAC地址),这就需要在互联层有各个服务或功能将IP地址转换成响应的物理地址,这个服务或者功能就是ARP协议。

所谓的“地址解析”,就是主机在发送帧之前将目的IP地址转换成目的主机的mac地址的过程,

ARP协议的基本功能就是通过目标设备的IP地址,查询目标主机的MAC地址,以保证主机间互相通信的顺利进行

ARP协议和DNS有点相像之处,不同点是DNS在域名和ip地址之间解析,而ARP是在IP地址和MAC地址之间解析,当然,他们都支持反向解析

ARP代理(ARP proxy)的工作原理:

ARP协议要求通信的主机必须在同一个物理网段内(局域网环境),如果不在同一个局域网内的话就需要ARP代理了

当发送主机和目的主机不在同一个局域网中时,即便知道目的主机的mac地址,两者也不能通信,必须通过路由或ARP中继等技术转发才可以,此时发送主机通过ARP协议获得的将不是目的主机的MAC地址,而是一台可以通往局域网外的路由器的某个端口的MAC地址,于是伺候发送主机发往目的主机的所有帧都将发往该路由器或者该ARP中继,通过它向外发送,这种情况称为ARP代理

ARP通信过程:

以ARP广播的形式发出

以单播的形式回复

每台主机都有ARP缓存表,(windows:arp –a、清除arp缓存:arp –d (如果要清除指定的arp的话需要指定IP地址))

小结:主机之间的通信最终是基于MAC地址的

ip和Mac之间的解析式由ARP协议完成的

ARP协议应用于LAV局域网内

arp协议是通过广播的方式工作的

主机通讯后会缓存arp解析结果

arp表的好处:加快主机通讯的速度,减少arp广播风暴

arp缓存表是把双刃剑:

1、arp缓存表可以加快arp解析的速度

2、ARP欺骗(网关的IP地址是对的,但是Mac地址不对)(网关欺骗)

ARP协议的工作原理过程:A为发送主机,B为目标主机

1、A要给B发送文件,A会查找自己的ARP缓存表,如果有B的缓存的话,直接发送给B,如果没有的话A会向局域网中广播ARP请求

2、只有B才会回应A的广播请求,并且以单播的形式回复

3、A收到B的回复之后,将B的MAC地址封装到帧里面,并且将B的信息保存在自己的ARP缓存中,当然B也会保存A的MAC地址信息(因为A在广播中把自己的MAC地址广播出去了)。

注意:ARP缓存表采用了老化机制(即设置了生存时间TTL),在一段时间内(windows一般是15分钟到20分钟,linux的非常小),如果表中的某一条记录没有使用,就会被删除,这样大大减小了ARP缓存表的长度,加快查询速度,同时也增加了ARP欺骗的风险

ARP欺骗的原理:

ARP欺骗原理:

通过伪造IP地址和MAC地址对实现ARP欺骗的。如果一台主机中了ARP病毒,那么这台主机会在网络中产生大量的ARP通信量(以很快的频率进行广播),以至于网络阻塞,攻击者只要持续不断的发出伪造的ARP响应报就能够更改目标主机ARP缓存中的ARP记录,造成网络中断或中间人攻击

ARP攻击主要存在于局域网中,局域网中若有一台主机感染ARP病毒,则感染该ARP病毒的主机会试图通过ARP欺骗手段截获所在网络内其他主机的通信信息,并因此造成局域网内其他主机的通信故障。

ARP在生产环境中产生的问题:

1、ARP欺骗和ARP攻击

2、高可用服务器切换时要考虑ARP缓存问题

3、路由器等设备无缝迁移时要考虑ARP缓存问题

为什么要使用ARP协议:

OSI模型把网络分为7层,彼此之间不直接打交道,而是通过接口(layer interface)互相通信,IP地址工作在第三层(网络层),而MAC地址工作在第二层(链路层),当协议在发送数据包时,需要封装第三层、第二层的报头,但是协议只知道目的节点的IP地址,不知道目的节点的MAC地址,又不能跨越第二层、第三层,因此得用ARP服务

7层模型:从上到下:

应用层----表示层---会话层---传输层---网络层---数据链路层---物理层

数据包       帧          bit

一般人认为ARP在网络层,TCP/IP在传输层,

RARP:

反向ARP协议,ARP是通过IP地址找MAC地址,而RARP是通过MAC地址找IP地址

反向地址解析协议用于一种特殊情况,站点被初始化后,只有MAC地址而没有IP地址,则它可以通过RARP协议发出广播请求,征求自己的IP地址,而RARP服务器负责响应请求,RARP广泛用于获取无盘工作站的IP地址,和DHCP的工作原理相同

ARP欺骗防御和解决措施:

方法一、

写个bat程序临时阻止ARP攻击,电脑重启后失效,需重新执行或放在开机自启动里,

@echooff

%WINDIR%\system32\arp.exe–d

%WINDIR%\system32\arp.exe–s  10.10.10.10 00:0C:29:B2:A5:8C

方法二、

在电脑上安装360

方法三、

linux:

iptables  -m  00:0C:29:B2:A5:8C  10.10.10.10

把IP地址与MAC地址的对应关系加入到/etc/ethers中,然后执行arp –f命令

上网防火墙迁移到B,要用arping进行arp广播,否则的话内网主机无法上网

[root@nginx scripts]# arping --help

arping: invalid option -- '-'

Usage: arping [-fqbDUAV] [-c count] [-w  timeout] [-I device] [-s source] destination

-f : quit on first reply

-q : be quiet

-b : keep broadcasting, don't go unicast

-D : duplicate address detection mode

-U : Unsolicited ARP mode, update your neighbours

-A : ARP answer mode, update your neighbours

-V : print version and exit

-c count : how many packets to send

-w timeout : how long to wait for a reply

-I device : which ethernet device to use (eth0)

-s source : source ip address

destination : ask for what ip address

ARP广播而进行新的地址解析。
具体命令:
/sbin/arping -I eth0 -c 3 -s 10.0.0.162 10.0.0.253 
/sbin/arping -U -I eth0 10.0.0.162
以上两个命令均可。命令参数的含义这里省略了。

关于ARP协议的更多相关文章

  1. 浅谈ARP协议以及应用

    0. 前言 本章主要简单的介绍ARP的协议格式,主机如何发送和处理ARP报文,以及免费ARP. 1. ARP协议原理 ARP,全称Address Resolution Protocol,地址解析协议, ...

  2. 6410实现网卡(DM9000A)收发功能及ARP协议实现

    1. 网卡硬件结构(DM9000A) 网卡的实质就是MAC通过MII接口控制PHY的过程. MAC主要负责数据帧的构建.数据差错检查.传送控制等. PHY是物理接口收发器,属于物理层,当它收到MAC过 ...

  3. Lvs原理及部署之ARP协议

    1.什么使ARP协议 ARP协议,全称"Address Resolution Protocol" ,中文名是地址解析协议,使用ARP协议可实现通过IP地址获得对应的物理地址(MAC ...

  4. 计算机网络(2)-----ARP协议

    ARP协议(Address Resolution Protocol) 概念 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/I ...

  5. ARP协议

    ARP协议就是一个获取对方MAC地址的协议,ARP协议它是一个网络层的协议,它的作用是通过ARP request报文来获得对方的MAC地址,ARP报文里面发送的内容大概是192.168.1.20你的M ...

  6. ARP协议格式、ARP运行机制入门学习

    相关学习资料 http://baike.baidu.com/view/149421.htm?fromtitle=ARP%E5%8D%8F%E8%AE%AE&fromid=1742212& ...

  7. ARP缓存表的构成ARP协议全面实战协议详解、攻击与防御

    ARP缓存表的构成ARP协议全面实战协议详解.攻击与防御 1.4.3  ARP缓存表的构成 在局域网的任何一台主机中,都有一个ARP缓存表.该缓存表中保存中多个ARP条目.每个ARP条目都是由一个IP ...

  8. ARP协议详解

    ARP协议:地址解析协议,将IP地址映射到MAC地址. ARP缓存:每个主机都有存储IP地址和MAC地址的缓冲区.每条记录最长生存时间为10分钟,如果一条记录2分钟没有使用,则会被删除.如果始终在使用 ...

  9. TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议

    把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数 ...

  10. Networking - ARP 协议

    ARP 协议概述 ARP(Address Resolution Protocol),即地址解析协议,用于把 IP 地址映射到物理地址.网段上的每台主机都维护着一个被称为 ARP Table 或 ARP ...

随机推荐

  1. android Logger 一二三

    我们在开发Android应用的过程中可以很方便地使用Log信息来调试程序,这都归功于Android的Logger驱动为用户层提供的Log支持.无论是底层的源代码还是上层的应用,我们都可以使用Logge ...

  2. 条件随机场(CRF)原理和实现

    版权声明:作者:金良山庄,欲联系请评论博客或私信,个人主页:http://www.jinliangxu.com/,CSDN博客: http://blog.csdn.net/u012176591   目 ...

  3. 【大数据】MongoDB安装(转)

    https://note.youdao.com/share/?id=40be7f77434910e8860c5fd1ef5d24fe&type=note#/ MongoDB安装 环境 Cent ...

  4. Linux 查看服务器配置

    //CPU cat /proc/cpuinfo |grep processor; //内存 free -g; //硬盘 df -h;

  5. Javascript 面向对象实践

    踩到了坑,才能学到东西. 记录我在慢慢的转向模块化遇到的问题以及解决的思路. 1.采用立即执行函数,闭包的方式创建模块 html: <!DOCTYPE html> <html lan ...

  6. [Tool] Enable Prettier in VSCode as Format on Save and add config files to gitingore

    First of all, install Prettier extension: "Pettier - Code formatter". The open the VSCode ...

  7. javascript的冒泡排序, 快速排序, 选择排序, 插入排序

    冒泡排序, 最经典的排序, 把比较大的数字往后放, 和选择排序恰恰相反: <!DOCTYPE html> <html lang="en"> <head ...

  8. Oracle数据表中输入引号等特殊字符

    Oracle输入特殊字符的特殊方法: UPDATE BOOKMARK SET BM_VALUE=q'/ --在这里写下需要输入的内容(可以包括引号.回车等特殊的符号),所见即所得 /' -- WHER ...

  9. 低危漏洞- X-Frame-Options Header未配置

    原文链接:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/X-Frame-Options?redirectlocale=en-US&redi ...

  10. cpu内存访问速度,磁盘和网络速度,所有人都应该知道的数字

    google 工程师Jeff Dean 首先在他关于分布式系统的ppt文档列出来的,到处被引用的很多. 1纳秒等于10亿分之一秒,= 10 ^ -9 秒  ---------------------- ...