原理:

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

例子:

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

拓扑图:

编址:

1.基本配置

按照编址配置基本IP地址配置

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

根据实验编址配置路由器R1的接口IP地址,掩码长度为24

配置完后,看一下R1的ARP表,我们发现表里装了刚才我们设置的两个网关端口

自己试着把R1与PC机ping通,ping不通不能进行下面环节

ping通后,路由器的ARP表中就有了目标IP地址与目标MAC地址的对应表项

  

2.配置静态ARP

上述ARP协议的工作行为往往被攻击者利用。如果攻击者发送伪造的ARP报文,而且报文里面所通告的IP地址和MAC地址的映射是错误的,则主机或网关会把错误的映射更新到ARP表中。当主机要发送数据到指定的目标IP地址时,从ARP表里得到了不正确的硬件MAC地址,并用之封装数据帧,导致数据帧无法正确发送。由于公司内主机感染了这种ARP病毒,所以主机对网关R1进行ARP攻击,向网关R1通告含错误映射的ARP通告,导致网关路由器上使用不正确的动态ARP映射条目,造成其他主机无法与网关正常通信。

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

再看一下,路由表已经变了

我们再用PC1ping一下网关,发现不行了,相互ping不通了

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

应对ARP欺骗攻击,防止其感染路由器的ARP表,可以通过配置静态ARP表项来实现。如果IP地址和一一个MAC地址的静态映射已经出现在ARP表中,则通过动态ARP方式学来的映射则无法进入ARP表。所以针对公司网络的现状,网络管理员在R1上手工配置三条关于PC-1、PC-2和PC-3的正确ARP映射。使用arp static命令,配置如下。

删除错误的:

绑定正确的:

然后我们测试一下。这样就好了

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

静态ARP不行,Proxy ARP便出现了

3.配置Proxy ARP

目前公司的网络被路由器R1分割为两个独立的广^播域,每个路由器接口对应-一个IP网络,分别是10.1.1.0/24 和10.1.2.0/24,查看R1的路由表。

默认情况下,路由器上的ARP代理功能是关闭的。

用PC2ping 10.1.2.3时候不通

所以我们给R1开启ARP代理

开启ARP代理后,PC-2 访问PC-3的工作过程如下。

R1的接口GE 0/0/1开启了ARP代理后,收到PC-2的ARP广播请求报文后,R1根据ARP请求中的目标IP地址10.1.2.3 查看自身的路由表中是否有对应的目标网络,R1的GE0/0/2接口就是10.1.2.0/24网络,所以,R1直接把自身的GE0/0/1接口的MAC地址通过ARP响应返回给PC-2, PC-2接收到此ARP响应后使用该MAC作为目标硬件地址发送报文给R1, R1收到后再把报文转发给PC-3。同理,PC-3 要能访问R1连接的其他广播域的PC,也需要在R1的GE 0/0/2接口上开启ARP代理功能。

配置完后,我们测试一下,这样我们就可以ping通了

eNSP——ARP及ProxyARP的更多相关文章

  1. H3C ARP配置

    一.ARP简介 ARP(Address Resolution Protocol,地址解析协议)是将IP地址解析为以太网MAC地址(或称物理地址)的协议. 在网络中,当主机或其它网络设备有数据要发送给另 ...

  2. 前端学HTTP之网络基础

    × 目录 [1]网络 [2]OSI [3]TCP/IP 前面的话 HTTP协议对于前端工程师是非常重要的.我们在浏览网站时,访问的每一个WEB页面都需要使用HTTP协议实现.如果不了解HTTP协议,就 ...

  3. 第六章 IP基本原理

    一.引入 1.IP是网络层协议,也是当今应用最广泛的网络协议之一 2.IP协议规定了数据的封装方式,网络节点的标识方法,用于网络上数据的端到端的传递. 二.IP协议概述 1.IP及相关协议 2.IP的 ...

  4. 在ensp上的ARP及Proxy ARP

    啥是ARP?啥又是Proxy ARP? ARP是用来将 IP 地址解析为 MAC 地址的协议. ARP 表项可以分为动态和静态两种类型.动态 ARP ,是利用 ARP 广播报文,动态执行并自动进行 I ...

  5. [svc]arp协议的细枝末节

    tcpdump抓取arp包 tcpdump -nn -i calif24874aae57 -e arp数据包格式 操作字段指出四种操作类型: arp请求 1 arp应答 2 rarp请求 3 rarp ...

  6. 用华为eNSP模拟器配置Hybrid、Trunk和Access三种链路类型端口

    上一篇文章写到三层交换机实现多个VLAN之间互相通讯,有朋友提问要如何进行配置,可有案例分析.其实那天我在写的时候也有做过模拟,只是后来没有保存.今天重新模拟一次,并附上详细配置命令,希望能够帮助到大 ...

  7. 图解ARP协议(四)代理ARP原理与实践(“善意的欺骗”)

    一.代理ARP概述 我:当电脑要访问互联网上的服务器,目标MAC是什么? 很多小伙伴在刚学习网络协议的时候,经常这样直接回应:不就是服务器的MAC嘛! 这时我会反问:那电脑怎么拿到这个服务器的MAC地 ...

  8. arp - Linux的ARP核心模块

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

  9. Proxy ARP

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

随机推荐

  1. 边学边体验django--表格

    在模板的末尾,我们增加一个rlt记号,为表格处理结果预留位置. 表格后面还有一个{% csrf_token %}的标签.csrf全称是Cross Site Request Forgery.这是Djan ...

  2. SIGAI机器学习第七集 k近邻算法

    讲授K近邻思想,kNN的预测算法,距离函数,距离度量学习,kNN算法的实际应用. KNN是有监督机器学习算法,K-means是一个聚类算法,都依赖于距离函数.没有训练过程,只有预测过程. 大纲: k近 ...

  3. 【题解】[USACO2007 OCT]Obstacle Course-C++

    题目Description考虑一个 N x N (1 <= N <= 100)的有1个个方格组成的正方形牧场.有些方格是奶牛们不能踏上的,它们被标记为了’x’.例如下图: . . B x ...

  4. 06_检测本机当前用户是否为超级管理员,如果是管理员,则使用 yum 安装 vsftpd,如果不是,则提示您非管理员(使用子串对比版本)

    #!/bin/bashif [ $USER == "root" ];then #或者 if [ $UID -eq 0 ];then    yum -y install vsftpd ...

  5. redis系列(一):安装配置

    1.下载安装 下载可到redis官网下载(可根据自己的操作系统下载,我的是Ubuntu) 目前redis最新版本是5.0.2:下载地址为:http://download.redis.io/releas ...

  6. GAN生成式对抗网络(二)——tensorflow代码示例

    代码实现 当初学习时,主要学习的这个博客 https://xyang35.github.io/2017/08/22/GAN-1/ ,写的挺好的. 本文目的,用GAN实现最简单的例子,帮助认识GAN算法 ...

  7. php win/linux/mac 安装redis扩展或者扩展报错 zend_smart_str.h file not found

    1 windows 安装reids 扩展 根据phpinfo 查看php信息.在pecl.php.net 下载对应的redis扩展版本,放如扩展目录,在php.ini 配置扩展信息,重启服务 2 li ...

  8. Spring注解驱动——组件注册系列

    1.@Configuration 从Spring3.0,@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被Annot ...

  9. Ajax请求如何设置csrf_token

    1. 方式一 通过获取隐藏的input标签中的csrfmiddlewaretoken值,放置在data中发送. $.ajax({ url: "/cookie_ajax/", typ ...

  10. Codeforces 1276D/1259G Tree Elimination (树形DP)

    题目链接 http://codeforces.com/contest/1276/problem/D 题解 我什么DP都不会做,吃枣药丸-- 设\(f_{u,j}\)表示\(u\)子树内,\(j=0\) ...