计算机网络 实验七 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接口定义: 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/,这个就是将论文中的内容或者补充视频放到一个网页上,以更好的展示他们的工作。因此,这里介绍下如何使用前人提供的模板制作我…...
mongodb/redis/neo4j 如何自己打造一个 web 数据库可视化客户端?
随笔 从千万粉丝“何同学”抄袭开源项目说起,为何纯技术死路一条? 数据源的统一与拆分 监控报警系统的指标、规则与执行闭环 我们的系统应该配置哪些监控报警项? 监控报警系统如何实现自监控? java 老矣,尚能饭否ÿ…...
1、正则表达式
grep匹配 grep用来过滤文本内容,以匹配要查询的结果。 grep root /etc/passwd:匹配包含root的行 -m 数字:匹配几次后停止 -v:取反-i:忽略字符的大小写,默认的,可以不加-n:…...
Airsim安装问题:This project was made with a different version of the Unreal Engine.
本文记录如何在 Ubuntu 18.04 系统中配置 AirSim 和 Unreal Engine 4.27,并成功打开默认的 Blocks 环境项目。 环境说明 系统:Ubuntu 18.04Unreal Engine 版本:4.27AirSim:主分支文件路径: Unreal Engine:…...
java八股-分布式服务的接口幂等性如何设计?
文章目录 接口幂等token Redis分布式锁 原文视频链接:讲解的流程特别清晰,易懂,收获巨大 【新版Java面试专题视频教程,java八股文面试全套真题深度详解(含大厂高频面试真题)】 https://www.bilibili.com/…...
vscode python code runner执行乱码
打开vscode code runner插件配置,如图所示: 然后在setting.json修改运行python的默认命令: 将原来 替换成 "python":"set PYTHONIOENCODINGutf8 && python", 参考:Vscode——python环境输出中文乱…...
Java中的继承详解
在Java编程中,继承(Inheritance)是一种面向对象编程(OOP)的核心概念,它允许一个类(称为子类或派生类)继承另一个类(称为父类或基类)的属性和方法。通过继承&a…...
kafka进阶_2.存储消息
文章目录 一、存储消息介绍二、副本同步2.1、数据一致性2.2、HW在副本之间的传递 如果想了解kafka基础架构和生产者架构可以参考 kafka基础和 Kafka进阶_1.生产消息。 一、存储消息介绍 数据已经由生产者Producer发送给Kafka集群,当Kafka接收到数据后,…...
如何启用本机GPU硬件加速猿大师播放器网页同时播放多路RTSP H.265 1080P高清摄像头RTSP视频流?
目前市面上主流播放RTSP视频流的方式是用服务器转码方案,这种方案的好处是兼容性更强,可以用于不同的平台,比如:Windows、Linux或者手机端,但是缺点也很明显:延迟高、播放高清或者同时播放多路视频视频容易…...
如何更好地设计SaaS系统架构
SaaS(Software as a Service)架构设计的核心目标是满足多租户需求、支持弹性扩展和高性能,同时保持低成本和高可靠性。一个成功的SaaS系统需要兼顾技术架构、资源利用、用户体验和商业目标。本文从以下几个方面探讨如何更好地设计SaaS系统架构…...
表征对齐在训练DiT模型中的重要性
Diffusion Models专栏文章汇总:入门与实战 前言:训练过DiT模型的读者们肯定有所体会,相比于UNet模型训练难度大了很多,模型不仅很难收敛,而且非常容易训崩,其中一个很重要的原因是没有进行表征对齐…...
Qt中CMakeLists.txt解释大全
Qt从Qt5.15版本开始正式推荐使用CMake进行项目管理。 在Qt 5.15之前,虽然可以使用CMake进行构建,但Qt官方更推荐使用qmake。 然而,从Qt5.15开始,Qt官方正式推荐使用CMake作为主要的构建系统,并在Qt 6中进一步加强了…...
【在 PyTorch 中使用 tqdm 显示训练进度条,并解决常见错误TypeError: ‘module‘ object is not callable】
在 PyTorch 中使用 tqdm 显示训练进度条,并解决常见错误TypeError: module object is not callable 在进行深度学习模型训练时,尤其是在处理大规模数据时,实时了解训练过程中的进展是非常重要的。为了实现这一点,我们可以使用 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.…...
龙虎榜——20250610
上证指数放量收阴线,个股多数下跌,盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型,指数短线有调整的需求,大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的:御银股份、雄帝科技 驱动…...
地震勘探——干扰波识别、井中地震时距曲线特点
目录 干扰波识别反射波地震勘探的干扰波 井中地震时距曲线特点 干扰波识别 有效波:可以用来解决所提出的地质任务的波;干扰波:所有妨碍辨认、追踪有效波的其他波。 地震勘探中,有效波和干扰波是相对的。例如,在反射波…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...
QT3D学习笔记——圆台、圆锥
类名作用Qt3DWindow3D渲染窗口容器QEntity场景中的实体(对象或容器)QCamera控制观察视角QPointLight点光源QConeMesh圆锥几何网格QTransform控制实体的位置/旋转/缩放QPhongMaterialPhong光照材质(定义颜色、反光等)QFirstPersonC…...
【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...
