NAT(网络地址转换)逻辑图解+实验详解

原理

NAT(Network Address Translation,网络地址转换) 是一种网络技术,用于在IP数据包通过路由器或防火墙时,修改其源IP地址或目标IP地址,以实现不同网络之间的通信。

基础概念

  1. 本来NAT是来解决 IPv4 地址不够用的问题,但是后来被IPV6替代了
  2. NAT 设备通常是路由器或防火墙
  3. 基本NAT可分为静态 NAT 和动态 NAT

为什么需要NAT?

  1. 解决IPv4地址枯竭问题
  2. 保护内网安全

理解NAT,举个例子(不代表实际通信)

总的框架图
在这里插入图片描述

  1. PC2向 Server1 发送报文,网关是 10.0.0.254 ,源地址是 10.0.0.1 ,目的地址是
    211.134.180.2/24。
    在这里插入图片描述
  2. AR1 收到 IP 报文后,查找路由表,将 IP 报文转发至出接口,由于出接口上配置了 NAT ,因此 RT 需要将源地址
    10.0.0.1 转换为nat地址池的公网地址
    在这里插入图片描述
  3. AR1从地址池中查找第一个可用的公网地址 211.134.180.3 ,用这个地址替换数据包的源地址,转换后的数据包源地址为
    211.134.180.3 ,目的地址不变。同时 AR1 在自己的 NAT 表中添加一个表项,记录私有地址 10.0.0.1到 公网地址 211.134.180.3 的映射,RT 再将报文转发给目的地址211.134.180.2。
    在这里插入图片描述
  4. Server 收到报文后做相应处理
  5. Server 发送回应报文,报文的源地址是211.134.180.2 ,目的地址是211.134.180.3
    在这里插入图片描述
  6. AR1 收到报文,发现报文的目的地址 211.134.180.13 在 NAT 地址池内,于是检查 NAT表,找到对应表项后,使用私有地址 10.0.0.1 替换公网地址219.134.180.11,转换后的报文源地址不变,目的地址为10.0.0.1 ,RT在将报文转发给PC1。
    在这里插入图片描述
  7. PC1收到报文,地址转换过程结束
    在这里插入图片描述
    如果PC2也要访问 Server1 ,则AR1会从地址池中分配另一个可用公网地址211.134.180.4 ,并在 NAT 表中添加一个相应的表项,记录B的私有地址10.0.0.2 到公网地址 211.134.180.4 的映射关系。

NAT实验

eNSP拓扑框架图
在这里插入图片描述
目的与要求

  • 内网能够成功连接到sever1的网络

配置:

  • ip配置如上如,现在我们需要进行路由及nat配置

路由配置

  1. 在AR1(NAT)路由器上配置默认路由
    ip route-static 0.0.0.0 0 200.1.1.2
  2. 在AR2(ISP)路由器上配置回程路由
    ip route-static 192.168.1.0 24 200.1.1.1
  3. 在AR1(NAT)路由器上配置NAT
    nat static global 200.1.1.100 inside 192.168.1.100
  4. Server1的配置
    在这里插入图片描述
    这样,来回链路就配置完成了

连通性检测

在这里插入图片描述

抓包验证

  1. 内网接口抓包
    在这里插入图片描述
  2. 外网接口抓包
    在这里插入图片描述
    抓包验证成功

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/diannao/84032.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt+线段拖曳示例代码

Qt线段拖曳示例代码&#xff0c;功能见下图。 代码如下&#xff1a; canvaswidget.h #ifndef CANVASWIDGET_H #define CANVASWIDGET_H#include <QWidget> #include <QPainter> #include <QMouseEvent> #include <QVector>class CanvasWidget : publi…

高等数学-求导

一、求导数的原函数就是求导数的积分 1&#xff09;设函数f(t)在区间[a,b]上连续&#xff0c;则对任意的x∈[a,b],f(t)在[a,x]上连续&#xff0c;从而在[a,x]上可积。令其积分为Φ(x)∫*a^x f(t)dt, x∈[a,b],则Φ(x)为定义在区间[a,b]上的一个函数&#xff0c;通常称作积分上…

(第94天)OGG 微服务搭建 Oracle 19C CDB 架构同步

前言 Oracle GoldenGate Microservice Architecture (OGGMA) 是在 OGG 12.3 版本推出的全新架构。相比传统架构,OGGMA 基于 Rest API,通过 WEB 界面即可完成 OGG 的配置和监控,大大简化了部署和管理流程。 本文将详细介绍如何在 Oracle 19C CDB 环境中部署 OGG 19.1.0.4 微…

前端vscode学习

1.安装python 打开Python官网&#xff1a;Welcome to Python.org 一定要点PATH&#xff0c;要不然要自己设 点击install now,就自动安装了 键盘winR 输入cmd 点击确定 输入python&#xff0c;回车 显示这样就是安装成功了 2.安装vscode 2.1下载软件 2.2安装中文 2.2.1当安…

uniapp vue 开发微信小程序 分包梳理经验总结

嗨&#xff0c;我是小路。今天主要和大家分享的主题是“uniapp vue 开发微信小程序 分包梳理经验总结”。 在使用 UniAppvue框架开发微信小程序时&#xff0c;当项目比较大的时候&#xff0c;经常需要分包加载。它有助于控制主包的大小&#xff0c;从而提升小程序的启…

git合并多次commit提交

首先查看历史记录 git log 查看你想要合并的commit是哪些&#xff08;注意&#xff1a;这里是逆序&#xff0c;最上的是最新提交&#xff09; 找到当前想要合并的最后一个记录&#xff0c;复制该记录的下一个记录的 id&#xff08;黄色部分commit id&#xff09;&#xff0c…

系统架构设计(七):数据流图

定义 数据流图&#xff08;Data Flow Diagram, DFD&#xff09;是一种用于表示信息系统数据流转及处理过程的图形工具。 它反映系统功能及数据之间的关系&#xff0c;是结构化分析与设计的重要工具。 主要符号 符号说明描述举例方框外部实体&#xff08;源或终点&#xff09…

MAUI与XAML交互:构建跨平台应用的关键技巧

文章目录 引言1. 代码隐藏文件关联1.1 XAML文件与代码隐藏文件的关系1.2 部分类机制1.3 InitializeComponent方法1.4 XAML命名空间映射 2. 元素名称与x:Name属性2.1 x:Name属性的作用2.2 命名规则与最佳实践2.3 x:Name与x:Reference的区别2.4 编译过程中的名称处理 3. 在代码中…

php://filter的trick

php://filter流最常见的用法就是文件包含读取文件&#xff0c;但是它不止可以用来读取文件&#xff0c;还可以和RCE&#xff0c;XXE&#xff0c;反序列化等进行组合利用 filter协议介绍 php://filter是php独有的一种协议&#xff0c;它是一种过滤器&#xff0c;可以作为一个中…

微信小程序开发中,请求数据列表,第一次请求10条,滑动到最低自动再请求10条,后面请求的10条怎么加到第一次请求的10条后面?

在微信小程序中实现分页加载数据列表&#xff0c;可通过以下步骤将后续请求的10条数据追加到首次加载的数据之后&#xff1a; 实现步骤及代码示例 定义页面数据与参数 在页面的 data 中初始化存储列表、页码、加载状态及是否有更多数据的标识&#xff1a; Page({data: {list…

如何利用 Java 爬虫根据 ID 获取某手商品详情:实战指南

在电商领域&#xff0c;获取商品详情数据对于市场分析、选品上架、库存管理和价格策略制定等方面具有重要价值。某手作为国内知名的电商平台&#xff0c;提供了丰富的商品资源。通过 Java 爬虫技术&#xff0c;我们可以高效地根据商品 ID 获取某手商品的详细信息。本文将详细介…

电平匹配电路

1、为什么要电平匹配? 现在很多SOC器件为了降低功耗,都把IO口的电平设计成了1.8V,核电压0.85V,当这种SOC做主平台时,在做接口设计需要格外关注电平的匹配。单板中经常需要将1.8V的电平转换成3.3V或者转成5V。如果没有注意到输入和输出信号之间的电平匹配,系统就无法正常…

【技术揭秘】Profinet转RS485如何优化冲剪机的实时通信性能?​​

在现代工业自动化领域&#xff0c;通信协议是连接不同设备和系统的关键。RS485和Profinet是两种广泛使用的工业通信标准&#xff0c;它们各自拥有独特的特性和应用场景。本文将探讨如何通过一个小疆智控Profinet转RS485网关来优化冲剪机的应用&#xff0c;提高生产线的效率和可…

面经总目录——持续更新中

说明 本面经总结了校招时我面试各个公司的面试题目&#xff0c;每场面试后我都及时进行了总结&#xff0c;同时后期补充扩展了同类型的相近面试题&#xff0c;校招时从两个方向进行投递&#xff0c;视觉算法工程师和软件开发工程师&#xff08;C方向&#xff09;&#xff0c;所…

AI前端页面生成:deepsite、Qwen Web Dev

deepsite网页生成 https://huggingface.co/spaces/enzostvs/deepsite 落地页美观不错,默认用tailwindcss实现样式 提示词: AI 功能是核心,通过后端 server.js 实现。server.js 使用 Express 框架,依赖 @huggingface/inference 库与 Hugging Face 推理 API 交互,具体使用…

华为云鲲鹏型kC2云服务器——鲲鹏920芯片性能测评

华为云鲲鹏型kC2云服务器性能怎么样&#xff1f;性能很不错&#xff0c;鲲鹏通用计算增强型kC2实例是ARM架构的云服务器&#xff0c;CPU采用Huawei Kunpeng 920 2.9GHz主频&#xff0c;每个vCPU对应一个底层物理内核。华为云服务器网hwyfwq.com整理鲲鹏型kC2云服务器性能测评及…

Java 安全SPEL 表达式SSTI 模版注入XXEJDBCMyBatis 注入

https://github.com/bewhale/JavaSec https://github.com/j3ers3/Hello-Java-Sec https://mp.weixin.qq.com/s/ZO4tpz9ys6kCIryNhA5nYw #Java 安全 -SQL 注入 -JDBC&MyBatis -JDBC 1 、采用 Statement 方法拼接 SQL 语句 2 、 PrepareStatement 会对 SQL 语…

【VxWorks 实时操作系统(RTOS)】常用函数汇总

VxWorks 实时操作系统&#xff08;RTOS&#xff09;中的核心函数 1. taskSpawn 函数 功能&#xff1a;用于动态创建并激活一个新任务&#xff08;线程&#xff09;。参数解析&#xff08;以 VxWorks 为例&#xff09;&#xff1a;int taskSpawn(char *name, // 任务名…

【MySQL】数据库约束

MySQL(三)数据库约束 数据库约束 一、not null 二、default 三、unique 四、primary key 1.自增主键机制 1.1单服务器下 1.2分布式下 1.2.1时间戳 1.2.2主机编号 1.2.3随机因子 五、foreign key 1.∈关系维护 1.1父约子&#xff1a; 1.2子约父&#xff1a; 1.3…

VRRP 协议

一、前言 最近被问到一个VRRP的网络协议&#xff0c;一开始我是蒙蔽的状态&#xff0c;至于什么是VRRP&#xff0c;我后面查了一下&#xff0c;因为对于网络这方面我也不是很精通&#xff0c;见谅&#xff01; VRRP&#xff0c;全称叫虚拟路由冗余协议&#xff0c;是我孤陋寡闻…