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

计算机网络 实验七 NAT配置实验

一、实验目的

        通过本实验理解网络地址转换的原理和技术,掌握扩展NAT/NAPT设计、配置和测试。

二、实验原理

        NAT配置实验的原理主要基于网络地址转换(NAT)技术,该技术用于将内部私有网络地址转换为外部公有网络地址,从而实现内网主机与外网的通信。以下是关于NAT配置实验原理的详细解释:

        NAT概述:NAT是一种网络技术,它允许内部网络中的设备使用私有IP地址,同时通过一个或多个公共IP地址访问外部网络。当内部网络中的主机需要访问外部网络时,NAT设备(如路由器)会将其私网地址转换为公网地址,从而在外部网络上进行通信。

        NAT工作原理:NAT设备维护一个转换表,记录内部私有地址与外部公有地址之间的映射关系。当内部主机发送数据包到外部网络时,NAT设备会检查数据包的源IP地址,并在转换表中查找对应的公网地址,然后将数据包的源IP地址替换为公网地址。同时,NAT设备还会记录数据包的端口号,以便在返回数据包时能够正确地将其转发给原始的内部主机。

        NAT分类:静态NAT:将一个固定的内部私有IP地址映射到一个固定的外部公有IP地址。动态NAT:也称为PAT(端口地址转换),它允许多个内部私有IP地址共享一个外部公有IP地址的不同端口。Easy IP:是NAPT的一种方式,直接借用路由器出接口IP地址作为公网地址,将不同的内部地址映射到同一公有地址的不同端口号上。

三、实验环境

        Cisco Router 2620XM     3台

        Catalyst Switch 2950-24 6台

        Hub Hub-PT 1台

        PC PC-PT 5台

        Server Server-PT 4台

四、实验内容

【实验拓扑和参数配置】

(一)首先按照下图构建网络拓扑

(二)配置参数

参照下表进行参数配置,具体步骤见下文。

路由器配置信息(子网掩码均为255.255.255.0)

主机名

类型

IP 地址

RIP路由网络

时钟频率

InsideRouter

2620XM

Fa0/0: 192.168.1.2

Eth1/0: 192.168.2.1

Eth1/1: 192.168.3.1

Eth1/2: 192.168.4.1

Eth1/3: 192.168.5.1

192.168.1.0

192.168.2.0

192.168.3.0

192.168.4.0

192.168.5.0

EageRouter

2620XM

Fa0/0: 192.168.1.1

Ser0/0: 218.58.59.91

192.168.1.0

218.58.59.0

OutsideRouter

2620XM

Fa0/0: 218.58.100.1

Ser0/0: 218.58.59.90

218.58.59.0

218.58.100.0

9600

PC和Server配置信息(子网掩码均为255.255.255.0)

主机名

IP 地址

默认网关

所属网段

PC0

192.168.2.2

192.168.2.1

192.168.2.0

PC1

192.168.2.3

192.168.2.1

192.168.2.0

PC2

192.168.3.2

192.168.3.1

192.168.3.0

PC3

192.168.4.2

192.168.4.1

192.168.4.0

PC4

192.168.5.2

192.168.5.1

192.168.5.0

PC5

218.58.100.2

218.58.100.1

218.58.100.0

WWW

192.168.1.3

192.168.1.1

192.168.1.0

FTP

192.168.1.4

192.168.1.1

192.168.1.0

SMTP

192.168.1.5

192.168.1.1

192.168.1.0

Outside WWW

218.58.100.3

218.58.100.1

218.58.100.0

交换机和Hub配置信息

主机名

类型

所属网段

备注

Manage

2950-24

192.168.2.0

所属校园网管理网段

Administration

2950-24

192.168.3.0

所属校园网行政网段

Teach

2950-24

192.168.4.0

所属校园网教学网段

Student

2950-24

192.168.5.0

所属校园网宿舍网段

Server Area

2950-24

192.168.1.0

DMZ区

Outside

2950-24

218.58.100.0

所属校外网

Hub 0

Hub-PT

Hub-PT

【实验步骤】

1. 配置静态网络地址转换并完成相应的测试

将192.168.1.3 静态NAT到218.58.59.93。

配置路由器IP:

配置路由器RIP:

配置主机IP:

配置时钟频率:

配置服务器IP:

首先将192.168.1.3 静态转换到218.58.59.93并查看一下刚才的配置。

接下来我们进行测试,添加一个由PC5到218.58.59.93的Complex PDU格式如图所示:

在Simulation模式下我们跟踪该PDU如图所示:

图中PDU的Successful状态说明外网网段可以访问218.58.59.93上的HTTP资源。

在Simulation Panel-Event List中单击3.022s的EageRouter上的PDU,调出PDU Information对话框,在OSI Model选项卡中我们可以清楚的看到IP地址的转换过程,OSI Model下方的英文信息说明这一点。

2. 配置动态网络地址转换并完成相应的测试

将管理网段、行政网段的内部私有IP动态NAT到218.58.59.95和218.58.59.96。

将管理网段(192.168.2.0)、行政网段(192.168.3.0)的内部私有IP动态转换到218.58.59.95和218.58.59.96。

建立两个Complex PDU格式如下图所示:

图中0号PDU和1号PDU的Successful状态分别说明管理网段和行政网段可以访问218.58.59.100.3上的HTTP资源。

用如下命令做进一步的验证:EdgeRouter#show ip nat translations 信息显示又增加了两个条目,正好是刚才进行的NAT地址转换。

分别调出两个数据包在EdgeRouter上的PDU Information 面板,在各自OSI Model选项卡中我们可以清楚的看到各自的Ip地址的转换过程,OSI Model下方的英文信息说明这一点。

五、实验思考

详细记录实验过程当中遇到的具体问题及阐述自己的解决方法。

        在连接设备的过程中,对于2620XM路由器,InsideRouter缺少Eth端口,EdgeRouter和OutsideRouter缺少Ser端口,导致无法连接。通过查找资料,发现可以在路由器的Physicial界面添加端口。在添加端口的过程中,需要先关闭路由器电源,对于InsideRouter,将NM-4E拖入Zoom in下面的黑色区域即可添加4个Eth端口;对于EdgeRouter和OutsideRouter,将WIC-2T拖入Original Size下面的两块黑色区域之一即可添加2个Ser端口,完成操作后开启路由器电源,等待片刻后端口添加完成。

        在设备连接完成后,不了解Cisco Packet Tracer软件如何操作,导致实验无法进行,查找资料后才了解了本次实验的基本操作:

        在右侧栏中添加Complex PDU

        在右下角进入Simulation模式

        在Realtime和Simulation的下方查看PDU状态

相关文章:

计算机网络 实验七 NAT配置实验

一、实验目的 通过本实验理解网络地址转换的原理和技术,掌握扩展NAT/NAPT设计、配置和测试。 二、实验原理 NAT配置实验的原理主要基于网络地址转换(NAT)技术,该技术用于将内部私有网络地址转换为外部公有网络地址,从…...

数据结构——排序算法第二幕(交换排序:冒泡排序、快速排序(三种版本) 归并排序:归并排序(分治))超详细!!!!

文章目录 前言一、交换排序1.1 冒泡排序1.2 快速排序1.2.1 hoare版本 快排1.2.2 挖坑法 快排1.2.3 lomuto前后指针 快排 二、归并排序总结 前言 继上篇学习了排序的前面两个部分:直接插入排序和选择排序 今天我们来学习排序中常用的交换排序以及非常稳定的归并排序 快排可是有多…...

【kafka04】消息队列与微服务之Kafka 图形工具

Kafka 在 ZooKeeper 里面的存储结构 topic 结构 /brokers/topics/[topic] partition结构 /brokers/topics/[topic]/partitions/[partitionId]/state broker信息 /brokers/ids/[o...N] 控制器 /controller 存储center controller中央控制器所在kafka broker的信息 消费者 /c…...

剖析前后端 API 接口参数设计:JSON 数据结构化全攻略

在当今软件开发领域,前后端分离架构已成为主流趋势。而 API 接口作为前后端之间数据交互的桥梁,其设计的合理性对系统的可维护性和扩展性起着至关重要的作用。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式&…...

vue3 多种方式接受props,定义ref,reactive

定义props 1 第一种 interface AddType { dialogStudyVisible: boolean; } const props defineProps<AddType>(); 第二种 // const props defineProps({ // dialogStudyVisible:{ // type:Boolean, // default:false // } // }) 第三种 // const …...

逻辑处理器核心指纹修改

navigator.hardwareConcurrency的属性,可以用来获取CPU的逻辑处理器核心数。 1、navigator.hardwareConcurrency接口定义&#xff1a; third_party\blink\renderer\core\frame\navigator_concurrent_hardware.idl // https://html.spec.whatwg.org/C/#navigator.hardwarecon…...

如何制作项目网页

一、背景 许多论文里经常会有这样一句话Supplementary material can be found at https://hri-eu.github.io/Lami/&#xff0c;这个就是将论文中的内容或者补充视频放到一个网页上&#xff0c;以更好的展示他们的工作。因此&#xff0c;这里介绍下如何使用前人提供的模板制作我…...

mongodb/redis/neo4j 如何自己打造一个 web 数据库可视化客户端?

随笔 从千万粉丝“何同学”抄袭开源项目说起&#xff0c;为何纯技术死路一条&#xff1f; 数据源的统一与拆分 监控报警系统的指标、规则与执行闭环 我们的系统应该配置哪些监控报警项&#xff1f; 监控报警系统如何实现自监控? java 老矣&#xff0c;尚能饭否&#xff…...

1、正则表达式

grep匹配 grep用来过滤文本内容&#xff0c;以匹配要查询的结果。 grep root /etc/passwd&#xff1a;匹配包含root的行 -m 数字&#xff1a;匹配几次后停止 -v&#xff1a;取反-i&#xff1a;忽略字符的大小写&#xff0c;默认的&#xff0c;可以不加-n&#xff1a…...

Airsim安装问题:This project was made with a different version of the Unreal Engine.

本文记录如何在 Ubuntu 18.04 系统中配置 AirSim 和 Unreal Engine 4.27&#xff0c;并成功打开默认的 Blocks 环境项目。 环境说明 系统&#xff1a;Ubuntu 18.04Unreal Engine 版本&#xff1a;4.27AirSim&#xff1a;主分支文件路径&#xff1a; Unreal Engine&#xff1a…...

java八股-分布式服务的接口幂等性如何设计?

文章目录 接口幂等token Redis分布式锁 原文视频链接&#xff1a;讲解的流程特别清晰&#xff0c;易懂&#xff0c;收获巨大 【新版Java面试专题视频教程&#xff0c;java八股文面试全套真题深度详解&#xff08;含大厂高频面试真题&#xff09;】 https://www.bilibili.com/…...

vscode python code runner执行乱码

打开vscode code runner插件配置&#xff0c;如图所示&#xff1a; 然后在setting.json修改运行python的默认命令&#xff1a; 将原来 替换成 "python":"set PYTHONIOENCODINGutf8 && python", 参考&#xff1a;Vscode——python环境输出中文乱…...

Java中的继承详解

在Java编程中&#xff0c;继承&#xff08;Inheritance&#xff09;是一种面向对象编程&#xff08;OOP&#xff09;的核心概念&#xff0c;它允许一个类&#xff08;称为子类或派生类&#xff09;继承另一个类&#xff08;称为父类或基类&#xff09;的属性和方法。通过继承&a…...

kafka进阶_2.存储消息

文章目录 一、存储消息介绍二、副本同步2.1、数据一致性2.2、HW在副本之间的传递 如果想了解kafka基础架构和生产者架构可以参考 kafka基础和 Kafka进阶_1.生产消息。 一、存储消息介绍 数据已经由生产者Producer发送给Kafka集群&#xff0c;当Kafka接收到数据后&#xff0c…...

如何启用本机GPU硬件加速猿大师播放器网页同时播放多路RTSP H.265 1080P高清摄像头RTSP视频流?

目前市面上主流播放RTSP视频流的方式是用服务器转码方案&#xff0c;这种方案的好处是兼容性更强&#xff0c;可以用于不同的平台&#xff0c;比如&#xff1a;Windows、Linux或者手机端&#xff0c;但是缺点也很明显&#xff1a;延迟高、播放高清或者同时播放多路视频视频容易…...

如何更好地设计SaaS系统架构

SaaS&#xff08;Software as a Service&#xff09;架构设计的核心目标是满足多租户需求、支持弹性扩展和高性能&#xff0c;同时保持低成本和高可靠性。一个成功的SaaS系统需要兼顾技术架构、资源利用、用户体验和商业目标。本文从以下几个方面探讨如何更好地设计SaaS系统架构…...

表征对齐在训练DiT模型中的重要性

Diffusion Models专栏文章汇总&#xff1a;入门与实战 前言&#xff1a;训练过DiT模型的读者们肯定有所体会&#xff0c;相比于UNet模型训练难度大了很多&#xff0c;模型不仅很难收敛&#xff0c;而且非常容易训崩&#xff0c;其中一个很重要的原因是没有进行表征对齐&#xf…...

Qt中CMakeLists.txt解释大全

‌Qt从Qt5.15版本开始正式推荐使用CMake进行项目管理‌。 在Qt 5.15之前&#xff0c;虽然可以使用CMake进行构建&#xff0c;但Qt官方更推荐使用qmake。 然而&#xff0c;从Qt5.15开始&#xff0c;Qt官方正式推荐使用CMake作为主要的构建系统&#xff0c;并在Qt 6中进一步加强了…...

【在 PyTorch 中使用 tqdm 显示训练进度条,并解决常见错误TypeError: ‘module‘ object is not callable】

在 PyTorch 中使用 tqdm 显示训练进度条&#xff0c;并解决常见错误TypeError: module object is not callable 在进行深度学习模型训练时&#xff0c;尤其是在处理大规模数据时&#xff0c;实时了解训练过程中的进展是非常重要的。为了实现这一点&#xff0c;我们可以使用 tq…...

数据结构-堆的实现和应用

目录 1.堆的概念 2.堆的构建 3.堆的实现 4.堆的功能实现 4.1堆的初始化 4.2堆的销毁 4.3堆的插入 4.3.1向上调整 4.4堆的删除 4.4.1向下调整法 ​编辑4.5取堆顶 5. 向上调整法和向下调整法比较 6.堆的应用 6.1TOP-K问题 6.2TOP-K思路 6.2.1用前n个数据来建堆 6.…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

Ubuntu系统下交叉编译openssl

一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机&#xff1a;Ubuntu 20.04.6 LTSHost&#xff1a;ARM32位交叉编译器&#xff1a;arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...

大型活动交通拥堵治理的视觉算法应用

大型活动下智慧交通的视觉分析应用 一、背景与挑战 大型活动&#xff08;如演唱会、马拉松赛事、高考中考等&#xff09;期间&#xff0c;城市交通面临瞬时人流车流激增、传统摄像头模糊、交通拥堵识别滞后等问题。以演唱会为例&#xff0c;暖城商圈曾因观众集中离场导致周边…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX&#xff08;不访问内存&#xff09;XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

Vite中定义@软链接

在webpack中可以直接通过符号表示src路径&#xff0c;但是vite中默认不可以。 如何实现&#xff1a; vite中提供了resolve.alias&#xff1a;通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)

目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 &#xff08;1&#xff09;输入单引号 &#xff08;2&#xff09;万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...

【UE5 C++】通过文件对话框获取选择文件的路径

目录 效果 步骤 源码 效果 步骤 1. 在“xxx.Build.cs”中添加需要使用的模块 &#xff0c;这里主要使用“DesktopPlatform”模块 2. 添加后闭UE编辑器&#xff0c;右键点击 .uproject 文件&#xff0c;选择 "Generate Visual Studio project files"&#xff0c;重…...