NAT协议

目录

NAT

前言

NAT地址转换表

NAT分类

前言

静态NAT

192.168.1.2访问200.1.1.2执行过程

动态NAT

192.168.1.2访问200.1.1.2执行过程

NAPT

192.168.1.2的5000端口访问200.1.1.2的80端口执行过程

基本命令

配置动态NAPT转换

定义内外网接口

配置NAPT

静态NAPT配置

定义内外网接口

配置静态NAPT

NAT

前言

  • 如今IPV4地址已经严重不够了,我们能够使用的只有A、B、C三类地址
  • IP地址分为公网IP和私网IP,公网IP只能在公网上使用,私网IP只能在私网上使用。
  • 公网上不允许出现私有IP地址(公网路由器不会配置指向私网路由器的路由表)

含义:NAT协议是将IP数据包头中的IP地址转换为另外一个IP地址的过程, 主要用于实现私有网络访问公有网络的功能。这种通过使用少量的IP地址代表较多的私有IP地址的方式,将有助于减少IP地址空间的枯竭

注意:

  • 网络地址转换主要完成了私网到公网地址的转换,一般是路由器或防火墙上来完成,不建议在三层交换机上配置。
  • NAT协议可以节约公网IP资源,也可以内网访问外网的真实IP

NAT地址转换表

  • NAT地址转换表就是路由器进行地址转换的依据。
  • NAT地址转换表记录了源IP与公网IP的映射关系(静态nat的NAT地址转换表需要自己手动配置)
  • NAT表中的公网地址不一定是路由器接口处的公网IP地址,也可以是其他公网地址。
  • 在配置NAT转换表之前,路由器要想启用NAT,那么必须首先定义内外网的路由端口
  • 内网中,数据包里面一定有源IP和目标IP,从内往外走目标IP不动,只改变源IP;从外往内走,源IP不动,只改变目标IP
  • 当我们配置好静态NAT后,那么就会生成NAT转换表。

NAT分类

前言

注意:以上都是24位子网掩码,其中第一个路由器分割了内网与外网。

静态NAT

理解:手动配置nat映射表,自己配置私网IP所对应的公网IP来进行nat转换(一对一转换)

192.168.1.2访问200.1.1.2执行过程

192.168.1.2需要上网,那么它就把该数据给了网关(源IP:192.168.1.2,目标IP:200.1.1.2),网关看到目标IP为200.1.1.2,那么根据路由表将此数据包路由到右侧端口,因为路由器配置了NAT,那么就会检查地址转换表(192.168.1.2——100.1.1.1)发现有源IP的匹配条目进而将源地址转换为100.1.1.1后将数据包从右接口发出(源IP:100.1.1.1,目标IP:200.1.1.2),之后就可以访问200.1.1.2,200.1.1.2收到了请求就会回应(源IP:200.1.1.2,目标IP:100.1.1.1)这个数据包发到了路由器1,路由器1配置了NAT,那么就检查目标IP,发现有匹配的项目,进而将目标IP转换为192.168.1.2进而发给192.168.1.2数据响应(源IP:100.1.1.1,目标IP:192.168.1.2)

注意:

  • 这种方式在仅有1个公网IP地址的情况下,内网中仅有1台设备可以访问外网。
  • 上面这种方式中没有对端口进行转换,那么访问公网的特定端口就会转化到私网的特定端口上,如今也推出了静态NAPT,可以实现静态配置内网IP端口与公网IP端口的映射

动态NAT

理解:定义内外部地址池,动态随机转换,当有一个私网IP要访问互联网,那么就会自动拿出地址池里面的公网IP来进行对接转换,若再有一个私网IP想要访问外部网络,则会再从地址池中拿出公网IP对接(一对一转换)

192.168.1.2访问200.1.1.2执行过程

192.168.1.2需要上网,那么它就把该数据给了网关(源IP:192.168.1.2,目标IP:200.1.1.2),网关看到目标IP为200.1.1.2,那么根据路由表将此数据包路由到右侧端口,因为路由器配置了动态NAT,那么就会检查地址转换表,发现没有映射关系但配了动态NAT,那么就会把源IP拿去内部地址池比较,发现属于内部地址池(动态在NAT地址转换表补充至源IP),那么就从外部公网地址池拿出一个公网IP(动态的在NAT地址转换表补充至公网IP)在NAT地址表中形成一个转换关系(源IP:192.168.1.2;公网IP:100.1.1.1),同时将源IP转化为100.1.1.1将数据发到200.1.1.2(源IP:100.1.1.1,目标IP:200.1.1.2);(后面就和静态NAT一样了)

注意:动态NAT中的NAT地址转换表的条目将会在源IP设备停止发包的24小时后消失。

NAPT

前言:

  • 网络地址端口转换NAPT(Network Address Port Translation)是把内部地址映射到外部网络的一个IP地址的不同端口上。
  • NAPT相对于动态NAT来说,它实现了外部公网地址池的复用。

NAPT协议的NAT表

源IP地址公网IP地址源端口号路由器端口
内网设备1源IP公网地址内网设备1开放端口路由器监听端口1
内网设备2源IP公网地址内网设备2开放端口路由器监听端口2

注意:

  • 该表中对于没有消失的表项中路由器使用的端口号路由器不能用第二次
  • NAT表中的公网地址不一定是路由器接口处的公网IP地址,也可以是其他公网地址,当一个外部数据发过来的时候,就会检查目标IP是否与公网IP匹配,目标端口是否与路由端口匹配,若都匹配了则能转发数据到内网

192.168.1.2的5000端口访问200.1.1.2的80端口执行过程

192.168.1.2需要上网,那么它就把该数据给了网关(源IP:192.168.1.2,目标IP:200.1.1.2;源端口:5000,目标端口:80),网关看到目标IP为200.1.1.2,那么根据路由表将此数据包路由到右侧端口,因为路由器配置了NAT,那么就会检查地址转换表,发现没有映射关系但配置NAPT,于是就去拿源IP去内部地址池比较,发现属于内部地址池(将该地址动态在NAT地址转换表补充至源IP,将源端口补充至源端口),于是就从外部公网地址池复用一个公网IP(将该IP动态的在NAT地址转换表补充至公网IP,路由器随机开启端口1补充至路由器端口),形成路由表(源IP地址:192.168.1.2;公网IP:100.1.1.1;源端口:5000;路由器端口:1)后将公网地址作为源IP地址,路由器随机开启的端口作为源端口(源IP:100.1.1.1,目标IP:200.1.1.2;源端口:1,目标端口:80)将数据包发送到200.1.1.2;200.1.1.2收到后向100.1.1.1回复消息(源IP:200.1.1.2,目标IP:100.1.1.1;源端口:80,目标端口:1)路由器1配置了NAT于是就查看目标IP并且将其转化为源IP,查看目标端口号转化为源端口号(源IP:200.1.1.2,目标IP:192.168.1.2;源端口:80,目标端口:5000)并将数据发送给192.168.1.2的5000端口。

注意:使用NAPT协议可以复用公网地址,进而达到局域网内的多台设备仅用一个公网IP实现上网的目的。

基本命令

进入特权模式

查看nat表:show ip nat translations

清空nat表:clear ip nat translations

配置动态NAPT转换

定义内外网接口

进入路由器内网接口

定义内网接口:ip nat inside

进入路由器外网端口

定义外网端口:ip nat outside

注意:外网端口用来转换出去包的源IP,内网端口用来转换进来包的目标IP。

配置NAPT

进入全局配置模式

定义内部地址池:access-list 1 permit 内网IP地址 通配符掩码

  • 该ACL表主要是做匹配地址转换,来往的数据若符合上述规定则会做地址转换

做NAPT动态映射:ip nat inside source list 1 interface 路由器公网接口名 overload

  • 只要源IP满足ACL表号1,那么就允许使用路由器公网接口的IP地址做替换

总结:执行了以上的两个步骤,那么只要是ACL表允许的数据,都会允许做NAPT转换,进而实现了一个公网IP允许多个私网IP设备同时上网。

静态NAPT配置

定义内外网接口

进入路由器内网接口

定义内网接口:ip nat inside

进入路由器外网端口

定义外网端口:ip nat outside

配置静态NAPT

进入全局配置模式

将私网IP完整的映射到公网IP上

  • ip nat source static 私网IP地址 公网IP地址

将私网IP的端口映射到公网IP的端口上

  • ip nat inside source static 协议 私网IP 私网端口 路由器公网IP 路由器公网端口

注意:

  • 静态NAPT中的协议可选为tcp/udp
  • 静态NAPT配置后,访问路由器公网IP的端口,那么就会自动映射到私网IP的私网端口

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux基础【Linux知识贩卖机】

偶尔的停顿和修整,对于人生是非常必要的。 --随记 文章目录 Linux目录目录结构磁盘分区相关命令 相对路径和绝对路径 文件权限用户分类umask创建文件权限计算方法粘滞位 总结 Linux目录 目录结构 Linux 操作系统采用了一种层次化的目录结构,常被称为标…

使命担当 守护安全 | 中睿天下获全国海关信息中心感谢信

近日,全国海关信息中心向中睿天下发来感谢信,对中睿天下在2023年网络攻防演练专项活动中的大力支持和优异表现给予了高度赞扬。 中睿天下对此次任务高度重视,紧密围绕全国海关信息中心的行动要求,发挥自身优势有效整合资源&#x…

vivado时序分析-2时序分析关键概念

时序分析关键概念 1、最大和最小延迟分析 时序分析属静态验证 , 旨在验证在硬件上加载并运行设计后 , 其时序行为的可预测性。它会将各种制造和环境变化因素组合到延迟模型中并按时序角及其变化量加以分组, 将所有这些要素一并纳入考量范围。…

[动态规划] (十三) 简单多状态 LeetCode 740.删除并获得点数

[动态规划] (十三) 简单多状态: LeetCode 740.删除并获得点数 文章目录 [动态规划] (十三) 简单多状态: LeetCode 740.删除并获得点数题目解析解题思路状态表示状态转移方程初始化和填表顺序返回值 代码实现总结 740. 删除并获得点数 题目解析 (1) 给定一个整数数组。 (2) 选…

lvgl 转换和使用新字体

一、背景 如果lvgl 提供的默认字体不符合我们的显示要求,我们可以在网上下载开源字体,或者利用系统自带(注意版权问题)的字体文件转换lvgl 能识别和调用的字体。 或者为了压缩存储空间,某些字体我们只需要个别字符&…

【数据结构】堆排序和top-K问题

堆的实现源码 #define _CRT_SECURE_NO_WARNINGS#include <stdio.h> #include <stdlib.h> #include <time.h> #include <stdbool.h> #include <assert.h> typedef struct Heap {int* a;int size;int capacity; }Heap; void HeapInit(Heap* st) {…

nacos做服务配置和服务器发现

一、创建项目 1、创建一个spring-boot的项目 2、创建三个模块file、system、gateway模块 3、file和system分别配置启动信息,并且创建一个简单的控制器 server.port9000 spring.application.namefile server.servlet.context-path/file4、在根目录下引入依赖 <properties&g…

《UML和模式应用(原书第3版)》2024新修订译本部分截图

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 机械工业出版社即将在2024春节前后推出《UML和模式应用&#xff08;原书第3版&#xff09;》的典藏版。 受出版社委托&#xff0c;UMLChina审校了原中译本并做了一些修订。同比来说&a…

工业镜头接口类型

现有产品主要有以下接口 1、C:最常见的工业相机接口&#xff0c;受限于接口物理尺寸大小&#xff0c;最大靶面目前是4/3” 2、M42:M421.0,2k和4k线阵相机使用 3、M58S:M580.75,大靶面相机使用&#xff0c;可以转C(限于CH080相机&#xff0c;靶面4/3”)&#xff0c;可以转F,可以…

数据分析实战 | 多元回归——广告收入数据分析

目录 一、数据及分析对象 二、目的及分析任务 三、方法及工具 四、数据读入 五、数据理解 六、数据准备 七、模型构建 八、模型预测 九、模型评价 一、数据及分析对象 CSV格式的数据文件——“Advertising.csv” 数据集链接&#xff1a;https://download.csdn.net/d…

数据结构-双向链表

目录 1.带头双向循环链表&#xff1a; 2. 带头双向循环链表的实现&#xff1a; 双向链表初始化&#xff1a; 双向链表打印&#xff1a; 开辟节点函数&#xff1a; 双向链表头插&#xff1a; 双向链表尾插&#xff1a; 双向链表头删&#xff1a; 双向链表尾删&#xff…

C语言学习笔记之结构篇

C语言是一门结构化程序设计语言。在C语言看来&#xff0c;现实生活中的任何事情都可看作是三大结构或者三大结构的组合的抽象&#xff0c;即顺序&#xff0c;分支&#xff08;选择&#xff09;&#xff0c;循环。 所谓顺序就是一条路走到黑&#xff1b;生活中在很多事情上我们都…

景联文科技提供高质量人像采集服务,助力3D虚拟人提升逼真度

人像采集是一种通过特定设备或技术&#xff0c;对人的相貌、身材等特征信息进行收集和处理的过程&#xff0c;可应用于3D虚拟人领域。通过采集大量的人像数据&#xff0c;可以训练和优化人像识别算法&#xff0c;提高其准确性。 人像采集对于提高3D虚拟人的逼真度、个性化定制以…

【手把手教你】将python程序打包成exe可执行文件

1. 安装环境 pip install pyinstaller6.0.02. 打包文件 pyinstaller -D “要启动的文件名“.py比如我的命令就是&#xff1a;pyinstaller -D eval.py 执行完后&#xff0c;会生两个文件夹dist和bulib两个文件和一个xxx.spec文件 3. 删除生成的文件 删除生成的bulid和dist文…

Java学习 8.Java-递归

一、递归的概念 引例&#xff1a; 一个方法在执行过程中调用自身&#xff0c;就称为递归&#xff08;函数自己调用自己&#xff09; 递归相当于数学的数学归纳法&#xff0c;有一个起始条件&#xff0c;有一个递推公式 递归的必要条件 1.将原问题划分为子问题&#xff0c;…

使用数据分析,识别设备异常

设备健康监测系统在工业领域中扮演着至关重要的角色&#xff0c;它能够帮助企业及时发现设备异常&#xff0c;预防故障&#xff0c;提高设备使用寿命和生产效率。而异常诊断技术则是设备健康监测系统中的核心部分&#xff0c;能够实现对设备异常情况的准确判断。根据设备状态数…

AI:69-基于深度学习的音乐推荐

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…

命令行远程操作windows

如遇安装python模块问题&#xff0c;请参考此连接处理&#xff1a;http://t.csdnimg.cn/l9W6f 一、命令行中使用ssh连接 1、安装 OpenSSH 客户端&#xff1a; 在 Windows 10 中&#xff0c;打开“设置”应用&#xff0c;选择“应用” > “可选功能” > “添加功能”。…

python- os模块

一、文件与目录相关的操作 1、删除文件/文件夹 2、os.stat("path/filename"): 获取文件/目录信息的结构说明 3、os.listdir 和 os.path.join 在Python中&#xff0c;os.listdir()和os.path.join()是操作系统模块&#xff08;os模块&#xff09;的两个函数&#x…

机器学习——奇异值分解案例(图片压缩未开始)

本想大迈步进入前馈神经网络 但是…唉…瞅了几眼&#xff0c;头晕 然后想到之前梳理的奇异值分解、主成分分析、CBOW都没有实战 如果没有实际操作&#xff0c;会有一种浮在云端的虚无感 但是如果要实际操作&#xff0c;我又不想直接调用库包 可是…如果不直接调包&#xff0c;感…