ARP/RARP 地址解析协议

2020-06-15 15:41 更新

一、简介

1.作用

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址;收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,局域网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。相关协议有RARP、代理ARP。NDP用于在IPv6中代替地址解析协议。

2.原理

1)发送ARP广播请求   
  ARP报文内容:我是10.1.1.1 我的mac:AA 
  谁是10.1.1.3 你的mac:
2)接收ARP单播应答 



第一步:首先,每个主机都会有自己的ARP缓存区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系

第二步:当源主机要发送数据时, 首先检测ARP列表中是否对应IP地址的目的主机的MAC地址 如果有,则直接发送数据 如果没有,就向本网段的所有主机发送ARP数据包,内容: 我是IP地址,mac地址,谁是IP地址,mac?

第三步:当本网络的所有主机收到该ARP数据包时, 首先检查数据包中的IP地址是否是自己的IP地址, 如果不是,则忽略该数据包 如果是,则首先从数据包中取出源主机的IP和mac地址写入到ARP列表中,如果以存在,则覆盖 然后将自己的mac地址写入arp响应包中,告诉源主机自己是它想要找的mac地址

第四步:源主机收到ARP响应包后,将目的主机的IP和mac地址写入arp列表,并利用此信息发送数据 如果源主机一直没有收到arp响应数据包,表示arp查询失败。

二、报文

1.报文格式

三、要点

1.ARP映射表

无论是主机,还是交换机都会有一个用来缓存同一网段设备IP地址和MAC地址的ARP映射表,用于数据帧的转发。设备通过ARP解析到目的MAC之后,将会在自己的ARP映射表中增加IP地址到MAC地址的映射表,以用于后续到同一目的地数据帧的转发。ARP表项分为动态ARP表项和静态ARP表项。

2.免费ARP

设置地址产生ARP报文,源MAC为自己,目的MAC为4个0,源IP与目的IP为一个

四、命令

ARP命令 ARP缓存中包含一个或多个表,它们用于存储IP地址及其经过解析的MAC地址。ARP命令用于查询本机ARP缓存中IP地址-->MAC地址的对应关系、添加或删除静态对应关系等。如果在没有参数的情况下使用,ARP命令将显示帮助信息。

常见用法

arp -a或arp –g 用于查看缓存中的所有项目。-a和-g参数的结果是一样的,多年来-g一直是UNIX平台上用来显示ARP缓存中所有项目的选项,而Windows用的是arp -a(-a可被视为all,即全部的意思),但它也可以接受比较传统的-g选项。

arp -a Ip 如果有多个网卡,那么使用arp -a加上接口的IP地址,就可以只显示与该接口相关的ARP缓存项目。

arp -s Ip 物理地址 可以向ARP缓存中人工输入一个静态项目。该项目在计算机引导过程中将保持有效状态,或者在出现错误时,人工配置的物理地址将自动更新该项目。

arp -d Ip 使用该命令能够人工删除一个静态项目。

五、考题

1.简述ARP协议的缺点?

正确答案: 答:ARP协议不会对回复的数据包进行验证。

六、ARP欺骗的防范

1.运营商可采用Super VLAN或PVLAN技术

所谓Super VLAN也叫VLAN聚合,这种技术在同一个子网中化出多个Sub VLAN,而将整个IP子网指定为一个VLAN聚合(Super VLAN),所有的Sub VLAN都使用Super VLAN的默认网关IP地址,不同的Sub VLAN仍保留各自独立的广播域。子网中的所有主机只能与自己的默认网关通信。如果将交换机或IP DSLAM设备的每个端口(网络中的一对端其一端输入的电流与另一端输出的电流是相等的)化为一个Sub VLAN,则实现了所有端口(网络中的一对端其一端输入的电流与另一端输出的电流是相等的)的隔离,也就避免了ARP欺骗。

PVLAN即私有VLAN(Private VLAN) ,PVLAN采用两层VLAN隔离技术,只有上层VLAN全局可见,下层VLAN相互隔离。如果将交换机或IP DSLAM设备的每个端口(网络中的一对端其一端输入的电流与另一端输出的电流是相等的)化为一个(下层)VLAN,则实现了所有端口(网络中的一对端其一端输入的电流与另一端输出的电流是相等的)的隔离。

PVLAN和SuperVLAN技术都可以实现端口(网络中的一对端其一端输入的电流与另一端输出的电流是相等的)隔离,但实现方式、出发点不同。PVLAN是为了节省VLAN,而SuperVlan的初衷是节省IP地址。

2.单位局域网可采用IP与MAC绑定

在PC上IP+MAC绑,网络设备上IP+MAC+端口(网络中的一对端其一端输入的电流与另一端输出的电流是相等的)绑。但不幸的是Win 98/me、未打arp补丁的win 2000/xp sp1(现在大多都已经打过了)等系统 使用arp -s所设置的静态ARP项还是会被ARP欺骗所改变。

如果网络设备上只做IP+MAC绑定,其实也是不安全的,假如同一二层下的某台机器发伪造的arp reply(源ip和源mac都填欲攻击的那台机子的)给网关,还是会造成网关把流量送到欺骗者所连的那个(物理)端口(网络中的一对端其一端输入的电流与另一端输出的电流是相等的)从而造成网络不通。

对于采用了大量傻瓜交换机的局域网,用户自己可以采取支持arp过滤的防火墙(防止外部网络用户以非法手段通过外部网络进入内部网络)等方法。推荐Look ‘n’Stop防火墙,支持arp协议规则自定义。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号