NAT协议

news2024/11/24 14:28:43

目录

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 路由器公网接口 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的私网端口

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

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

相关文章

NetworkManager 图形化配置 bond

1、在桌面右下角找到网络连接标识,鼠标右击,选择编辑连接,如下图 注意:此次示例使用 ens37 和 ens38 两张网卡组成 bond。在配置 bond 前为了网 络稳定如果子网卡已有网络连接的建议先删除 bond 子网卡的网络连接。 2、单击按钮&a…

Python高级语法----Python异步编程入门

文章目录 异步编程概念asyncio模块基础event loop和coroutineasync与await关键字代码示例结论在现代软件开发中,异步编程已经成为一个不可或缺的概念,尤其是在处理I/O密集型任务和高并发需求时。Python作为一门多范式编程语言,自3.5版本以来,通过引入asyncio模块和async/aw…

UseGalaxy.cn生信云平台文本文件操作手册

文本文件是生物信息学中应用非常广泛的文本格式,甚至可以说是最重要的文件格式,比如常见的测序下机数据Fastq、参考基因组保存格式Fasta、比对文件SAM,以及突变列表VCF,它们都是文本文件。熟练地进行文本文件的处理,对…

facebook分享-错误记录

无法拉起分享 "code":30000,"msg":"fail:API_ERROR: API_ERROR" 1.确认facebook的app_id是否一致 2.确认是否在app_id应用的白名单里,注册meta开发者,然后把主页的user_id给管理员加 A ContentProvider for this app was…

响应式生活常识新闻博客资讯网站模板源码带后台

模板信息: 模板编号:30483 模板编码:UTF8 模板分类:博客、文章、资讯、其他 适合行业:博客类企业 模板介绍: 本模板自带eyoucms内核,无需再下载eyou系统,原创设计、手工书写DIVCSS&a…

Pandas - 数据转换

数据转换一班包括一列数据转换为多列数据,行列转换,DataFrame转换为字典、DataFrame转换为列表和DataFrame转换为元组等。 1.一列数据转换为多列数据 如原始地址数据为:“广东省 深圳市 罗湖区 xxxx”, 此时如果我们需要按照省来…

解密网易数帆DataOps“三剑客”:从数据开发治理、指标中台到ChatBI

大数据产业创新服务媒体 ——聚焦数据 改变商业 近日,以“数智聚力,共赴新程”为主题的2023网易数字大会在杭州召开。在这次大会上,数据猿采访了网易副总裁、网易数帆总经理汪源,网易数帆大数据产品线总经理余利华,对…

centos7部署Canal与Canal集成使用

1、简介 canal [kə’nl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费 早期阿里巴巴因为杭州和美国双机房部署,存在跨机房同步的业务需求,实现方式主要是基于业务 trigge…

项目实战:中央控制器实现(2)-优化Controller,将共性动作抽取到中央控制器

1、FruitController FruitController已经和Web没有关系了,和Web容器解耦,可以脱离Web容器做单元测试 package com.csdn.fruit.controller; import com.csdn.fruit.dto.PageInfo; import com.csdn.fruit.dto.PageQueryParam; import com.csdn.fruit.dto.R…

Linux C基础(7)

1、二维数组 1.1 概念 本质:元素为一堆数组的数组(数组的数组)数组的特点:(1)数据类型相同 (2)地址连续 1.2 定义 数组:存储类型 数据类型 数组名[元素个数]二维数组&…

TinyEngine 开源低代码引擎首次直播答疑QA合集

前言 10月27日晚8点,OpenTiny 社区开启了 TinyEngine 开源低代码引擎首次答疑直播,本次直播我们通过收集开发者诉求,精心策划和组织了内容,希望提供给大家最明确和清晰的答疑方式。这是 TinyEngine 低代码引擎直播计划的开端&…

什么是数字化管理?产业园区如何进行数字化管理?

工业园区的数字化管理涉及利用技术和数据驱动的工具来优化工业园区环境中的运营、提高效率并改进决策流程。它通常包括使用各种数字技术和数据分析技术来监视、控制和增强公园运营的各个方面。 以下是工业园区数字化管理的一些关键方面以及如何实施: 1.数据收集和…

vue3怎么获取el-form的元素节点

在元素中使用ref设置名称 在ts中通过从element-plus引入formInstance,设置formRef同名名称字段来获取el-form节点

酷开科技持续推动智能投影行业创新发展

近年来,投影仪逐渐成为年轻人追捧的家居时尚单品。据国际数据公司(IDC)报告显示,2022年中国投影机市场总出货量505万台,超80%为家用投影仪。相比于电视,投影仪外观小巧、屏幕大小可调节,无论是卧…

C#中基于.NET6的动态编译技术

前几天要解决动态计算问题,尝试着使用了不同的方法。问题是给定一个包含计算的字符串,在程序运行中得到计算结果,当时考虑了动态编译,在网上查了一些资料完成了这项功能,可是基于不同的.NET平台使用的编程代码相差比较…

sparksql明明插入了但是表里数据是null

现象 将数据插入表的时候,表里的数据是null 代码 原因 建表语句的时候detail字段的类型写成了bigint,而要插入的数据类型是string,所以把建表语句的字段类型改了然后sql文件重跑就解决了

动态轮换住宅代理是什么?为何需要使用它?

随着越来越多的企业完善网络活动,IP代理的重要性变得显而易见。代理可确保顺利、安全且不受限制地访问互联网的大量资源。在不同类型的代理中,轮换代理脱颖而出,那么他哪里有别于其他IP代理呢? 一、什么是动态轮换代理&#xff1f…

Navicat的使用--mysql

表关系 数据库的操作,表字段的设计,一般都由于图形化界面工具Navicat完成。 而表中数据的增删改查,需要熟悉sql语句。 一对一 一对一:一个A对应一个B,一个B对应一个A 将A或B任意一张表的主键设置为外键 一对多 一…

高性能网络编程 - The C10M problem

文章目录 Pre概述回顾C10K实现C10M的挑战思路总结 Pre 高性能网络编程 - The C10K problem 以及 网络编程技术角度的解决思路 概述 在接下来的10年里,因为IPv6协议下每个服务器的潜在连接数都是数以百万级的,单机服务器处理数百万的并发连接&#xff0…

SpringDataJpa(一)

一、JPA概述 1.1 ORM概述 ORM(Object-Relational Mapping) 表示对象关系映射。在面向对象的软件开发中,通过ORM,就可以把对象映射到关系型数据库中。只要有一套程序能够做到建立对象与数据库的关联,操作对象就可以直…