当前位置: 首页 > news >正文

eNSP学习——理解ARP及Proxy ARP

 

目录

名词解释

实验内容

实验目的

实验步骤

实验拓扑

配置过程

基础配置

 配置静态ARP


名词解释

        ARP (Address Resolution Protocol)是用来将IP地址解析为MAC地址的协议。ARP表项可以分为动态和静态两种类型。
  动态ARP是利用ARP广播报文,动态执行并自动进行IP地址到以太网MAC地址的解析,无需网络管理员手工处理。
  静态ARP是建立IP地址和MAC地址之间固定的映射关系,在主机和路由器上不能动态调整此映射关系,需要网络管理员手工添加。设备上有一个ARP高速缓存(ARP cache),用来存放IP地址到MAC地址映射表,利用ARP请求和应答报文来缓存映射表址到MAC地址的映射表,利用ARP请求和应答报文来缓存映射表,以便能正确地把三层数据包封装成二层数据帧,达到快速封装数据帧、正确转发数据的目的。另外ARP还有扩展应用功能,比如Proxy ARP功能。

        代理ARP(Proxy-arp)的原理就是当出现跨网段的ARP请求时,路由器将自己的MAC返回给发送ARP广播请求发送者,实现MAC地址代理(善意的欺骗),最终使得主机能够通信。

实验内容

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

实验目的

        1、理解ARP工作原理;
  2、掌握配置静态ARP的方法;
  3、掌握Proxy ARP的工作原理;
  4、掌握Proxy ARP的配置;
  5、理解主机之间的通信过程。

实验步骤

        1、基本配置;
  2、配置静态ARP;
  3、配置Proxy ARP。

实验拓扑

配置过程

基础配置

第一步:基础配置(各个PC对应的IP地址也许配置好)
<Huawei>sys
[Huawei]sysname R1	
[R1]interface g0/0/1
[R1-GigabitEthernet0/0/1]ip address 10.1.1.254 24
[R1-GigabitEthernet0/0/1]interface g0/0/2
[R1-GigabitEthernet0/0/2]ip address 10.1.2.254 24
[R1-GigabitEthernet0/0/2]/*配置完成后,查看ARP表*/
[R1]display arp all
IP ADDRESS      MAC ADDRESS     EXPIRE(M) TYPE        INTERFACE   VPN-INSTANCE VLAN/CEVLAN PVC                      
------------------------------------------------------------------------------
10.1.1.254      00e0-fc1d-4eec            I -         GE0/0/1
10.1.2.254      00e0-fc1d-4eed            I -         GE0/0/2
------------------------------------------------------------------------------
Total:2         Dynamic:0       Static:0     Interface:2    
[R1]/*PC1和PC3分别ping网关后,再次查看结果如下*/
[R1]display arp all
IP ADDRESS      MAC ADDRESS     EXPIRE(M) TYPE        INTERFACE   VPN-INSTANCE VLAN/CEVLAN PVC                      
------------------------------------------------------------------------------
10.1.1.254      00e0-fc1d-4eec            I -         GE0/0/1
10.1.1.1        5489-9854-1dd9  20        D-0         GE0/0/1
10.1.2.254      00e0-fc1d-4eed            I -         GE0/0/2
10.1.2.3        5489-98dd-6bfa  20        D-0         GE0/0/2
------------------------------------------------------------------------------
Total:4         Dynamic:2       Static:0     Interface:2 

 配置静态ARP

第二步:配置静态ARP 模拟ARP攻击发生时,网络的通信受到了影响。在网关R1上,使用
arp static 10.1.1.1 5489-9854-9dd9命令在路由器上静态添加一条关于PC-1的错误
的ARP映射,假定此映射条目是通过一个ARP攻击报文所获得的(静态的条目优于动态的条
目),所以错误的映射将出现在ARP表中。应对ARP欺骗攻击,防止其感染路由器的ARP表,可以通过配置静态ARP表项来实现。
如果P地址和一个MAC地址的静态映射已经出现在ARP表中,则通过动态ARP方式学来的映
射则无法进入ARP表/*手动配置三条关于PC1、PC2和PC3的正确ARP映射*/
[R1]arp static 10.1.1.1 5489-9854-1dd9
[R1]arp static 10.1.1.2 5489-9880-7f4c
[R1]arp static 10.1.2.3 5489-98dd-6bfa
[R1]display arp all
IP ADDRESS      MAC ADDRESS     EXPIRE(M) TYPE        INTERFACE   VPN-INSTANCE VLAN/CEVLAN PVC                      
------------------------------------------------------------------------------
10.1.1.254      00e0-fc1d-4eec            I -         GE0/0/1
10.1.2.254      00e0-fc1d-4eed            I -         GE0/0/2
10.1.1.1        5489-9854-1dd9            S--
10.1.1.2        5489-9880-7f4c            S--
10.1.2.3        5489-98dd-6bfa            S--
------------------------------------------------------------------------------
Total:5         Dynamic:0       Static:3     Interface:2    
[R1]
配置完成后记得测试网络的连通性
第三步:配置Proxy ARP
//默认情况下,路由器的ARP代理功能是关闭的。在第二步之后,PC1和PC2可以互通,但是却ping不通PC3[R1]interface  g0/0/1
//开启ARP代理功能
[R1-GigabitEthernet0/0/1]arp-proxy enable 
//此步骤之后PC1和PC2可以ping通PC3,但反过来却不行[R1-GigabitEthernet0/0/1]interface g0/0/2
[R1-GigabitEthernet0/0/2]arp-proxy enable
[R1-GigabitEthernet0/0/2]
//此时三个PC之间均可互相ping通

相关文章:

eNSP学习——理解ARP及Proxy ARP

目录 名词解释 实验内容 实验目的 实验步骤 实验拓扑 配置过程 基础配置 配置静态ARP 名词解释 ARP (Address Resolution Protocol)是用来将IP地址解析为MAC地址的协议。ARP表项可以分为动态和静态两种类型。   动态ARP是利用ARP广播报文&#xff0c;动态执行并自动进…...

Unity中UGUI在Mask剪裁粒子特效的实现

在Unity使用Mask是剪裁不了粒子特效的&#xff0c;之前有想过RenderTexture来实现&#xff0c;不过使用RenderTexture不适合用于很多个特效&#xff0c;因为RenderTexture依赖Camera的照射&#xff0c;如果在背包中每种道具都有不同的特效&#xff0c;那使用RenderTexture则需要…...

精通 VS 调试技巧,学习与工作效率翻倍!

​ ✨✨ 欢迎大家来到贝蒂大讲堂✨✨ ​ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; ​ 所属专栏&#xff1a;C语言学习 ​ 贝蒂的主页&#xff1a;Betty‘s blog 1. 什么是调试 当我们写代码时候常常会遇见输出结果不符合我们预…...

yarn 安装包时报“certificate has expired”

在通过yarn包管理器安装 yarn install 时候 报错&#xff1a; info No lockfile found. [1/4] Resolving packages... error Error: certificate has expired at TLSSocket.onConnectSecure (node:_tls_wrap:1539:34) at TLSSocket.emit (node:events:513:28) at…...

Qt5项目拆解第一集解决:中文乱码| 全局字体|注册表|QSS/CSS

# 一、乱码解决代码片段 QTextCodec是Qt中用于处理文本编码和字符集转换的类。它提供了一系列静态函数来实现不同编码的文本转换,包括编码转换、字符集检测和转换、以及数据流中的文本编码处理。QTextCodec类使得Qt可以在不同的编码和字符集之间进行无缝转换,从而方便地处理…...

消息队列RabbitMQ.01.安装部署与基本使用

目录 RabbitMQ的作用 Message queue 释义 问题思考 存在的问题 优化方案 案例分析 带来的好处 消息队列特点 Email邮件案例分析 Docker安装部署RabbitMQ 1.下拉镜像 2.运行RabbitMQ 3.打开防火墙端口号并重新运行防火墙 4.容器启动后,可以通过 docker logs 容器 查…...

1.24号c++

C绪论 c是c语言的扩充&#xff0c;C包含了C的所有属性&#xff0c;换一句话说&#xff0c;C语言在C中都合法。 C语言编程思想&#xff1a;面向过程 c编程思想&#xff1a;面向对象 可以说在C中一切皆对象。 c的三大属性&#xff1a;封装&#xff0c;继承&#xff0c;多态。…...

【GitHub项目推荐--12 年历史的 PDF 工具开源了】【转载】

最近在整理 PDF 的时候&#xff0c;有一些需求普通的 PDF 编辑器没办法满足&#xff0c;比如 PDF 批量合并、编辑等。 于是&#xff0c;我就去 GitHub 上看一看有没有现成的轮子&#xff0c;发现了这个 PDF 神器「PDF 补丁丁」&#xff0c;让人惊讶的是这个 PDF 神器有 12 年的…...

React16源码: React中的PortalComponent创建, 调和, 更新的源码实现

PortalComponent 1 &#xff09;概述 React Portal之所以叫Portal&#xff0c;因为做的就是和“传送门”一样的事情render到一个组件里面去&#xff0c;实际改变的是网页上另一处的DOM结构主要关注 portal的创建, 调和, 更新过程 2 &#xff09;源码 定位到 packages/react-…...

Hive-SQL语法大全

Hive SQL 语法大全 基于语法描述说明 CREATE DATABASE [IF NOT EXISTS] db_name [LOCATION] path; SELECT expr, ... FROM tbl ORDER BY col_name [ASC | DESC] (A | B | C)如上语法&#xff0c;在语法描述中出现&#xff1a; []&#xff0c;表示可选&#xff0c;如上[LOCATI…...

编译原理2.3习题 语法制导分析[C++]

图源&#xff1a;文心一言 编译原理习题整理~&#x1f95d;&#x1f95d; 作为初学者的我&#xff0c;这些习题主要用于自我巩固。由于是自学&#xff0c;答案难免有误&#xff0c;非常欢迎各位小伙伴指正与讨论&#xff01;&#x1f44f;&#x1f4a1; 第1版&#xff1a;自…...

JUC-CAS

1. CAS概述 CAS(Compare ans swap/set) 比较并交换&#xff0c;实现并发的一种底层技术。它将预期的值和内存中的值比较&#xff0c;如果相同&#xff0c;就更新内存中的值。如果不匹配&#xff0c;一直重试&#xff08;自旋&#xff09;。Java.util.concurrent.atomic包下的原…...

Effective C++——关于重载赋值运算

令operator返回一个*this的引用 在重载,,*等运算符时&#xff0c;令其返回一个指向this的引用。 class MyClass {int* val; public:MyClass(int i) : val(new int(i)){}MyClass():val(new int(0)){}void print() {cout << *val << endl;}MyClass& operator(co…...

vscode debug

需要对GitHub上的工程debug。 所以花时间看了下,参考了bili视频和chatgpt的解答。 chatgpt给的步骤 要在 VS Code 中调试 C++ 项目,可以按照以下步骤进行设置和操作: 确保已安装 C++ 扩展:在 VS Code 中选择 “Extensions”(或使用快捷键 Ctrl+Shift+X),搜索并安装官…...

数据库选型其实技术维度不太重要

看到这个标题可能觉得我在乱说&#xff0c;数据库选型要从多个角度和维度看来&#xff0c;还有各种POC。很多供应商朋友告诉我POC是一个漫长的过程&#xff0c;非常痛苦&#xff0c;要解决各种技术问题。怎么能说和技术无关呢&#xff1f; 因为从我的经历和周围听说的经验来说…...

【C++】入门(二)

前言&#xff1a; c基础语法&#xff08;下&#xff09; 文章目录 五、引用5.1 引用概念5.2 引用使用规则5.3 常引用5.4 引用的使用场景5.5 引用和指针的区别 六、内联函数6.1 概念6.2 内联函数的特性 七、auto关键字&#xff08;C11&#xff09;7.1 概念7.2 使用规则7.3 用于f…...

Nginx 代理服务路径带/和不带/的问题

nginx初始配置如下 server {listen 6087;location / {#网站主页路径。此路径仅供参考&#xff0c;具体请您按照实际目录操作。#例如&#xff0c;您的网站运行目录在/etc/www下&#xff0c;则填写/etc/www。#允许跨域请求的域&#xff0c;* 代表所有add_header Access-Control-…...

C# CefSharp 输入内容,点击按钮,并且滑动。

前言 帮别人敲了个Demo,抱试一试心态&#xff0c;居然成功了&#xff0c;可以用。给小伙伴们看看效果。 遇到问题 1&#xff0c;input输入value失败&#xff0c;里面要套了个事件&#xff0c;再变换输入value。后来用浏览器开发工具&#xff0c;研究js代码&#xff0c;太难了&a…...

历经15年,比特币以强势姿态进军华尔街!270亿美元投资狂潮引发市场震荡!

本月&#xff0c;比特币庆祝了它的15岁生日&#xff0c;并以强势的姿态进军华尔街。最近美国交易所开始交易的比特币交易所交易基金&#xff08;ETF&#xff09;&#xff0c;已经获得了投资者的广泛接受。这一进展标志着比特币作为一种年轻资产迈向成熟的重要里程碑。 根据Glas…...

GBASE南大通用的接口程序GBase ADO.NET

GBase ADO.NET 是一个提供.NET 应用程序与 GBase 数据库之间方便、高效、 安全交互的接口程序&#xff0c;使用 100%纯 C#编写&#xff0c;并继承了 Microsoft ADO.NET 类。 开发人员可以使用任何一种.NET 开发语言&#xff08;C#、VB.NET、F#&#xff09;通过 GBase ADO.NET 操…...

算法训练营Day57(回文子串--总结DP)

647. 回文子串 647. 回文子串 - 力扣&#xff08;LeetCode&#xff09; class Solution {public int countSubstrings(String s) {int len s.length();//i到j这个子串是否是回文的boolean [][] dp new boolean[len][len];int res 0;for(int i len-1;i>0;i--){for(int …...

使用OpenCV从一个矩阵提取子矩阵

介绍opencv的两个函数&#xff1a;Range()和Rect() Range()是用于表示一个范围的类。它的构造函数有两个整数参数&#xff0c;分别表示范围的起始和终止索引。这个范围包括起始索引但不包括终止索引。 cv::Range(int start, int end); /* 在OpenCV中&#xff0c;cv::Range() …...

微信云托管:基本使用指南

微信云托管 &#x1f6a8;推荐&#xff1a;微信云托管&#xff1a;基本使用指南 确实是个好平台&#xff0c;部署个项目很简易&#xff0c;免去了很多运维上的事情。 一、微信云托管 github 流水线配置 和 端口号 首先&#xff0c;这里的主体(宿主机)&#xff0c;指的就是你的…...

WEB前端IDE的使用以及CSS的应用

IDE的使用 <!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width, i…...

python中排序函数sorted的简单运用

# 假设a里面的()分别对应的x,y,w,h 即 (x,y,w,h) a [(2,3,1,2),(4,1,2,2),(1,6,2,1)] # a:传入的列表 # key 排序的数据 keylambda x:x[n] 是固定写法,里面的n代表你按照()中第几个数据的值排序 # eg&#xff1a;我们这里是x:x[0]表示我们按x排序, 如果改成x:x[1]则按y排序 # …...

k8s的helm

1、在没有helm之前&#xff0c;部署deployment、service、ingress等等 2、helm的作用&#xff1a;通过打包的方式&#xff0c;deployment、service、ingress这些打包在一块&#xff0c;一键部署服务、类似于yum功能 3、helm&#xff1a;官方提供的一种类似于仓库的功能&#…...

[MySQL]基础的增删改查

目录 1.前置介绍 2.数据库操作 2.1显示当前数据库 2.2创建数据库 2.3 使用数据库 2.4 删除数据库 3.常用数据类型 3.1整型和浮点型 3.2字符串类型 4.表的操作 4.1查看表结构 4.2创建表 4.3删除表 5.重点 5.1操作数据库 5.2常用数据类型 5.3操作表 1.前置介绍 …...

简易播放器 以及触发的异常

jl 1.0.jar 架包导入步骤&#xff1a; 1.读取到MP3音频文件 2.创建播放器对象,传入音频文件 3.开始播放 package com.ztt.Demo01;import java.io.FileInputStream; import java.io.FileNotFoundException;import javazoom.jl.decoder.JavaLayerException; import javazoom.jl.…...

【Flutter跨平台插件开发】如何实现kotlin跟C++的相互调用

【Flutter跨平台插件开发】如何实现kotlin跟C的相互调用 kotlin 调 c 在 Kotlin 中&#xff0c;可以使用 JNI (Java Native Interface) 来调用 C 代码 调用步骤: 创建 C 文件并实现函数。 // example.cpp #include <jni.h>extern "C" JNIEXPORT jstring J…...

Apache SeaTunnel社区荣获“2023快速成长开源项目”奖项

在这个开源理念推动技术创新和全球协同发展的时代&#xff0c;SeaTunnel社区在开放原子开源基金会举办的2023年开源项目评选中脱颖而出&#xff0c;荣获“2023快速成长开源项目”殊荣。 这个奖项不仅仅是对Apache SeaTunnel社区过去一年发展速度和质量的认可&#xff0c;更是对…...