关于ARP协议
什么是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协议的更多相关文章
- 浅谈ARP协议以及应用
0. 前言 本章主要简单的介绍ARP的协议格式,主机如何发送和处理ARP报文,以及免费ARP. 1. ARP协议原理 ARP,全称Address Resolution Protocol,地址解析协议, ...
- 6410实现网卡(DM9000A)收发功能及ARP协议实现
1. 网卡硬件结构(DM9000A) 网卡的实质就是MAC通过MII接口控制PHY的过程. MAC主要负责数据帧的构建.数据差错检查.传送控制等. PHY是物理接口收发器,属于物理层,当它收到MAC过 ...
- Lvs原理及部署之ARP协议
1.什么使ARP协议 ARP协议,全称"Address Resolution Protocol" ,中文名是地址解析协议,使用ARP协议可实现通过IP地址获得对应的物理地址(MAC ...
- 计算机网络(2)-----ARP协议
ARP协议(Address Resolution Protocol) 概念 地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/I ...
- ARP协议
ARP协议就是一个获取对方MAC地址的协议,ARP协议它是一个网络层的协议,它的作用是通过ARP request报文来获得对方的MAC地址,ARP报文里面发送的内容大概是192.168.1.20你的M ...
- ARP协议格式、ARP运行机制入门学习
相关学习资料 http://baike.baidu.com/view/149421.htm?fromtitle=ARP%E5%8D%8F%E8%AE%AE&fromid=1742212& ...
- ARP缓存表的构成ARP协议全面实战协议详解、攻击与防御
ARP缓存表的构成ARP协议全面实战协议详解.攻击与防御 1.4.3 ARP缓存表的构成 在局域网的任何一台主机中,都有一个ARP缓存表.该缓存表中保存中多个ARP条目.每个ARP条目都是由一个IP ...
- ARP协议详解
ARP协议:地址解析协议,将IP地址映射到MAC地址. ARP缓存:每个主机都有存储IP地址和MAC地址的缓冲区.每条记录最长生存时间为10分钟,如果一条记录2分钟没有使用,则会被删除.如果始终在使用 ...
- TCP/IP详解学习笔记(3)-IP协议,ARP协议,RARP协议
把这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数 ...
- Networking - ARP 协议
ARP 协议概述 ARP(Address Resolution Protocol),即地址解析协议,用于把 IP 地址映射到物理地址.网段上的每台主机都维护着一个被称为 ARP Table 或 ARP ...
随机推荐
- android Logger 一二三
我们在开发Android应用的过程中可以很方便地使用Log信息来调试程序,这都归功于Android的Logger驱动为用户层提供的Log支持.无论是底层的源代码还是上层的应用,我们都可以使用Logge ...
- 条件随机场(CRF)原理和实现
版权声明:作者:金良山庄,欲联系请评论博客或私信,个人主页:http://www.jinliangxu.com/,CSDN博客: http://blog.csdn.net/u012176591 目 ...
- 【大数据】MongoDB安装(转)
https://note.youdao.com/share/?id=40be7f77434910e8860c5fd1ef5d24fe&type=note#/ MongoDB安装 环境 Cent ...
- Linux 查看服务器配置
//CPU cat /proc/cpuinfo |grep processor; //内存 free -g; //硬盘 df -h;
- Javascript 面向对象实践
踩到了坑,才能学到东西. 记录我在慢慢的转向模块化遇到的问题以及解决的思路. 1.采用立即执行函数,闭包的方式创建模块 html: <!DOCTYPE html> <html lan ...
- [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 ...
- javascript的冒泡排序, 快速排序, 选择排序, 插入排序
冒泡排序, 最经典的排序, 把比较大的数字往后放, 和选择排序恰恰相反: <!DOCTYPE html> <html lang="en"> <head ...
- Oracle数据表中输入引号等特殊字符
Oracle输入特殊字符的特殊方法: UPDATE BOOKMARK SET BM_VALUE=q'/ --在这里写下需要输入的内容(可以包括引号.回车等特殊的符号),所见即所得 /' -- WHER ...
- 低危漏洞- X-Frame-Options Header未配置
原文链接:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/X-Frame-Options?redirectlocale=en-US&redi ...
- cpu内存访问速度,磁盘和网络速度,所有人都应该知道的数字
google 工程师Jeff Dean 首先在他关于分布式系统的ppt文档列出来的,到处被引用的很多. 1纳秒等于10亿分之一秒,= 10 ^ -9 秒 ---------------------- ...