啥是ARP?啥又是Proxy ARP?

ARP是用来将 IP 地址解析为 MAC 地址的协议。 ARP 表项可以分为动态和静态两种类型。动态 ARP ,是利用 ARP 广播报文,
动态执行并自动进行 IP 地址到以太网 MAC 地址的解析,无需网络管理员手工处理。静态 ARP 是建立 lP 地址和 MAC 地址之间固定的映射关系,
在主机和路由器上不能动态调整此映射关系,需要网络管理员手工添加。设备上有一个 ARP 高速缓存( ARP cache ) ,
用来存放 lP 地址到 MAC 地址的映射表,利用 ARP 请求和应答报文来缓存映射表,以便能正确地把三层数据包封装成二层数据帧,
达到快速封装数据帧、正确转发数据的目的。另外 ARP 还有扩展应用功能,比如 ProxyA 即功能。 Proxy ARP ,即代理 ARP ,
当主机上没有配置默认网关地址(即不知道如何到达本地网络的网关设备),可以发送一个广播 ARP 请求(请求目的主机的 MAC 地址),
使具备 Proxy ARP 功能的路由器收到这样的请求后,在确认请求地址可达后,会使用自身的 MAC 地址作为该 ARP 请求的回应,
使得处于不同物理网络的同一网段的主机之间可以正常通信。

接下来开始实验本实验模拟公司网络场景。路由器 R1 是公司的出口网关,连接到外网。公司内所有员工使用 10 . 1 . 0 . 0 / 16 网段, 通过交换机连接到网关路由器上。网络管理员通过配置静态 A 即防止 ARP 欺骗攻击,保证通信安全。 又由于公司内所有主机都没有配置网关,且分属于不同广播域,造成无法正常通信,网络管理员需要通过在路由器上配置 A 即代理功能,实现网络内所有主机的通信。

实验拓扑图

实验配置

接下来我们看一下主机的ARP表,目前这个表是空的

我们再来看一下路由器的表,表里装了刚才我们设置的两个网关端口

测试连通性,都测一下

刚开始,路由器的ARP表中并没有目标IP地址与目标MAC地址的对应表项,但当ping完之后就会有了,我们再查看一下路由表

下面我们模拟一下当发生ARP攻击时,我们该如何操作(ARP攻击是攻击者向网关发送错误的ARP报文导致正常的主机无法使用服务)

我们使用命令在路由器上静态添加一条关于PC1的错误的ARP映射。(模拟黑客攻击)

我们再看一下路由表已经变了

我们看看这个时候pc1还能不能ping通网关了(这个时候我们已经ping不通网关了)

因为ARP映射了错误的物理地址,我们来抓一下包,可以看到,当pc1发送ping请求时,回去的包,网关发送到了错误的地方

ARP攻击不仅会影响我们网关ARP表的正确性,还会感染其他路由的ARP表,那我们该如何应对这种攻击手段?

我们可以在路由器上设置静态ARP表,如果ip和一个MAC地址的静态映射已经出现在ARP表中,此时动态ARP方式雪莱的映射则无法进入ARP表中

删除掉错误的

绑定正确的

我们在测试一下连通性,连通性恢复正常

当然这种方法的优点是操作简单,但是它的缺点是必须使网络中的设备都在ARP表中,工作量太大,那我们该怎么办呢?

静态ARP不行,Proxy ARP(ARP代理)便出现了

还拿公司举例子,目前公司的网络被路由器R1分割成两个独立的广播域,每个路由器接口对应一个IP网络,分别使10.1.1.0/24和10.1.2.0/24

我们来查看一下R1的路由表

我们可以拿pc2pingpc3

ping不通,那我们抓个包来看一看,可以看到,pc2发的是广播包,可是广播包是过不了路由器的

但是我们如果给R1开启ARP代理呢?我们来开启ARP代理

我们再来用pc2ping一下pc3,抓一下包观察

我们看一下PC2中arp存的是谁的地址

但是这却与实际是不相符的,它存下的是网关10.1.1.254的mac地址

同时我发现pc2能ping通pc3,pc3却ping不通pc2

因为,开启ARP代理后,访问过程是这样的。R1接口收到pc2的ARP广播请求,R1根据目标IP地址查看自身路由表中是否有对应的网络,找到

对应的网络,所以R1直接把自身的GE0/0/1接口的mac地址返回给了PC2,PC2便使用接收到的MAC地址作为目标地址发送给R1,R1收到后再

转发给PC3,同理PC3要想也访问PC2,也需要在R1的GE0/0/2接口上开启ARP代理服务。

这个时候PC3已经能够ping通PC2了

记得save

在ensp上的ARP及Proxy ARP的更多相关文章

  1. ARP、Proxy ARP、Gratuitous ARP

    Proxy ARP 什么是Proxy ARP? 一个主机A(通常是路由器)有意应答另一个主机B的ARP请求(ARP requests).主机A通过伪装其身份,承担起将分组路由到真实目的地的责任.代理A ...

  2. Proxy ARP

    翻译自:https://ccieblog.co.uk/arp/proxy-arp Proxy ARP在一些路由器上是默认开启的.其思想是使两个不同子网上的主机,在没有配置默认网关的情况下,实现彼此通信 ...

  3. ensp上防火墙上配置nat

    博文大纲:一.华为防火墙NAT的六个分类:二.解决NAT转换时的环路及无效ARP:三.server-map表的作用:四.NAT对报文的处理流程:五.各种常用NAT的配置方法: 一.华为防火墙NAT的六 ...

  4. Kali实现局域网ARP欺骗和ARP攻击

    原文地址: http://netsecurity.51cto.com/art/201303/386031.htm http://xiao106347.blog.163.com/blog/static/ ...

  5. 中间人攻击之arp欺骗 科普ARP欺骗

    中间人攻击之arp欺骗 科普ARP欺骗 A <-> B A中有个ARP Table,每次发包都会在此Table中查找,若找不到,发APR Request包询问.此时若hacker冒充B的M ...

  6. 【网络编程4】网络编程基础-ARP响应(ARP欺骗之中间人攻击)

    arp欺骗->arp响应 ARP 缓存中毒(ARP欺骗) arp传送原理在于主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址:收到返回消 ...

  7. ARP协议具体解释之Gratuitous ARP(免费ARP)

    ARP协议具体解释之Gratuitous ARP(免费ARP) Gratuitous ARP(免费ARP) Gratuitous ARP也称为免费ARP.无故ARP.Gratuitous ARP不同于 ...

  8. ARP协议详解之Gratuitous ARP(免费ARP)

    ARP协议详解之Gratuitous ARP(免费ARP) Gratuitous ARP(免费ARP) Gratuitous ARP也称为免费ARP,无故ARP.Gratuitous ARP不同于一般 ...

  9. arp - Linux的ARP核心模块

    描述 这个核心协议模块实现RFC826中定义的 Address Resolution Protocol [译注:即TCP/IP的第三层到第一层的地址转换协议],用于在直接相连的网络中换第二层硬件地址和 ...

随机推荐

  1. BBS总结 --- django设计

    目录 1.调用模块使用 2.BBS中urls.py 3.django中配置 4.新学方法使用 5.BBS用到的知识点 1.调用模块使用 from django.db import models fro ...

  2. HDU - 5513 Efficient Tree(轮廓线DP)

    前言 最近学了基于连通性的状压DP,也就是插头DP,写了几道题,发现这DP实质上就是状压+分类讨论,轮廓线什么的也特别的神奇.下面这题把我WA到死- HDU-5531 Efficient Tree 给 ...

  3. 如何抓取微信小程序的源码?

    一.引言: 在工作中我们会想把别人的代码直接拿过来进行参考,当然这个更多的是前端代码的进行获取. 那么微信小程序的代码怎么样获取呢?  参考 https://blog.csdn.net/qq_4113 ...

  4. 石子合并(NOI1995)题解

    题目描述 在一个圆形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法,计算出将N堆石子合并成1 ...

  5. 洛谷 P4568 [JLOI2011]飞行路线 题解

    P4568 [JLOI2011]飞行路线 题目描述 Alice和Bob现在要乘飞机旅行,他们选择了一家相对便宜的航空公司.该航空公司一共在\(n\)个城市设有业务,设这些城市分别标记为\(0\)到\( ...

  6. Ps回调函数.拦截驱动模块原理+实现.

    目录 一丶简介 二丶原理 1.原理 2.代码实现 3.效果 一丶简介 主要是讲解.内核中如何拦截模块加载的. 需要熟悉.内核回调的设置 PE知识. ShellCode 二丶原理 1.原理 原理是通过回 ...

  7. linux下将终端的输入存入文件中

    代码很简单: #include <stdlib.h> #include <fcntl.h> #include <stdio.h> #include <unis ...

  8. YoTube 视频如何下载

    因我学习自动化测试 ,国内的C# selenium 搭建的环境的资料甚少,然后去国外网站找资料, 曹鼠给我的gogle安装一个下载YoTube视频插件,特此非常感谢他. 前提条件需要一个服务器:Sha ...

  9. 银联高校极客挑战赛第一场 A.码队女朋友的王者之路[水题]

    目录 题目地址 题干 代码和解释 题目地址 计蒜客回顾比赛 码队女朋友的王者之路 题干 代码和解释 本题难度不大,但是一开始没有读懂题,以为净胜场次是确定的,没有"最高净胜场次"的 ...

  10. Java-JUC(十二):有3个线程。线程A和线程B并行执行,线程C需要A和B执行完成后才能执行。可以怎么实现?

    方案(一)CountDownLatch: 使用CountDownLatch+Semaphore方式实现: import java.util.concurrent.CountDownLatch; imp ...