NAT和NAPT

article/2025/10/4 0:07:44

NAT和NAPT引入原因

IPV4是一个32位的地址,最大容纳为 2 32,就这还包括了广播地址、网络地址等主机不可用的IP地址。也就是40多亿。现在全球电子设备的IP地址已经远远超过了40亿。所以IP地址不是不够用了吗?为什么现在的网络还好好的呢?

这都多亏了NAPT技术。

NAPT

在将NAPT之前,我们先讲下NAT。

我们都知道之前的一个路由器端口对应着一个网络。一个路由器端口连着多个主机,每个主机都和路由器端口处于同一网络,每个主机的IP地址都不一样,并且是全球唯一的。这样的话,IPV4地址肯定是不够用的。

假设一个网络有30个IP地址,如果按照传统的方式,那么最多只能支持30个主机。

而NAPT可以支持30个数量级的主机,是怎么做到的呢?

NAPT 将IP地址分为了私有地址和公网地址。

公网地址: 一个公有地址在全球都是唯一的。 公网地址由IANA 统一管理。如果使用需要申请。

一个路由器端口中有一个公用地址池,里面存放了多个公用地址。对于本例子,也就是30个公用地址。

私有地址: 一个私有地址可以在不同的网络中随便用。

不同公有网络中的私有地址是可以重复的。

对了,私有地址是可以分配给主机的。这样的话,一个私有地址可以被分配给多个主机。

那么其他主机给这些IP地址重复的主机发送数据的时候,要发给哪个主机呢?这不就乱套了吗?

NAPT的全称是 Network Address Port Translation,也就是网址端口转换。

NAPT的高明之处将 多个私有地址共享一个公网地址。

那么对于同一个公网地址怎么区分不同的私有地址呢?

通过端口号,不同的私有地址对应着同一个公网地址的不同端口号。

因为公有地址的端口号很多,可以同时容纳多个私有地址的映射。一个主机往往占用少量的端口。

路由器会将对应的映射关系存起来

在这里插入图片描述

NAPT传输数据流程

在这里插入图片描述

1、 比如主机A,发送的时候源IP地址为私有地址 192.168.1.10,源端口号为1025。
2、 当经过路由器转发的时候,会根据NAT转换表中的记录替换为对应的公网地址和端口。如果没有对应记录的话,就找到一个可用公网 120.229.175.121和对应的端口号1025,将其分别替换为源IP地址和源端口号。

3、 被替换过的数据包被发送到对应的服务器,然后服务器返回对应的数据包,数据包的目标地址为120.229.175.121,端口号为1025.经过路由转发,数据包回到了NAT路由器。

4、 回到NAT路由器后,路由器由于开启了NAT,所以会将数据包替换为私有地址192.168.1.10和其端口号1025。 然后查询私有地址对应的MAC地址,转发给对应的主机。

NAT

NAT和NAPT的本质是一样的,只不过NAT是一个私有地址对应一个公有地址,达不到节省IP地址的效果,只能起到隐匿内部IP地址的效果。

NAT ALG

ALG 是APPLICATION的简写,也就是应用层的意思。

NAT ALG主要解决了应用层数据中包括IP地址的问题。

比如FTP协议,FTP协议有两个连接,一个control连接用于控制,一个data连接用于传输实际数据。

FTP客户端首先会发起control连接,control数据包中带有data数据连接的IP地址ip1和端口号port1,FTP服务器会将数据发送到IP地址为ip1,端口号为port1的主机上。

这个ip1和port1都是对应的私有地址啊,并且还未通过NAT建立映射啊。FTP服务区无法将数据发送到对应的窗口中啊。

所以引入了NAT ALG机制,NAT ALG会检查数据包,如果是FTP之类的,数据包中带有私有IP地址信息,会将私有IP地址替换为对应的公网IP地址和对应的端口。

NAT穿透

上面的NAT有些问题,公网中的主机无法先发送数据给NAT内部的主机。

因为此时NAT内部的主机还未进行NAT转换。

NAT穿透就是用来解决这一问题的。

NAT穿透需要先引进一个中间服务器。

假如现在主机A和主机B想要通信。

**1、**主机A和主机B会首先将自己映射的公网IP地址和想要通信的主机地址发送给中间服务器。
2、 然后中间服务器将A对应的公网IP地址和A对应的私有IP地址发送给主机B。对主机A同样。
3、 经过中间服务器的这么一插手,主机A和主机B就交换了公网IP地址,就可以进行通信了。

总结

当网络中IP地址不能满足主机需求的时候,可以尝试用NAPT技术来解决这一问题。


http://chatgpt.dhexx.cn/article/hEikLvqX.shtml

相关文章

路由 NAT(简介、静态NAT、动态NAT、NATServer、NAPT、Easy-ip、NAT地址映射表)

4.1.0 路由 NAT(简介、静态NAT、动态NAT、NATServer、NAPT、Easy-ip、NAT地址映射表) 目录 简介NAT地址映射表静态NAT简介操作案例 动态NAT简介操作案例 NAT Server简介操作案例 NAPT简介操作案例 Easy-ip简介操作案例 简介 为了有效节约公网IPv4地址&a…

NAPT-PT技术实现

一实验原理 NAPT-PT全称Network Address Port Translation-Protocol Translation。由于静态NAT-PT和动态NAT-PT都比较浪费IPV4地址,比没有体现出IPV6的优越特性。在本实验中采用NAPT-PT,只有一个IPV4地址,用端口来表识IPV6网中的主机。 二实…

NAPT实验

CLI举例:私网用户通过NAPT访问Internet(限制公网地址对应的私网地址数) **组网需求: 某公司在网络边界处部署了FW作为安全网关。为了使私网中10.1.1.0/24网段的用户可以正常访问Internet,需要在FW上配置源NAT策略。除…

NAPT的类型(Cone NAT、Symmetric NAT)

NAPT与NAT的区别在于,NAPT不仅转换IP包中的IP地址,还对IP包中TCP和UDP的Port进行转换。这使得多台私有网主机利用1个NAT公共IP就可以同时和公共网进行通信。(NAPT多了对TCP和UDP的端口号的转换) 一、带防火墙的NAT NAT一开始的功…

NAT / NAPT

目录 一、前言 二、网络地址转换(NAT) 2.1 NAT如何解决IP冲突 2.2 SNAT / DNAT 2.3 SNAT工作原理 2.3.1 案例1(NAT) 2.3.2 案例2(NAPT) 2.4 DNAT 三、总结 一、前言 本人在学习Bridge/Router的过程中,发现在…

NAT与NAPT

一、NAT和NAPT的概念 NAT(Network Address Translation,网络地址转换):NAT是将IP数据报头中的IP地址转换为另一个IP地址的过程。使用少量的公网IP地址代表较多的私网IP地址的方式,仅支持地址转换,不支持端…

华为eNSP:静态NAT、动态NAT、端口NAT的配置(NAPT)-网络地址转换

静态NAT的配置 一、拓扑图 二、路由器的配置 1、配置端口IP AP1: [Huawei]interface gigabitether 0/0/1 [Huawei-GigabitEthernet0/0/1]ip address 1.1.1.1 24 [Huawei-GigabitEthernet0/0/1]interface gigabitether 0/0/2 [Huawei-GigabitEthernet0/0/2]ip address 192.1…

NAT基础:NAT技术原理,静态NAT、动态NAT、NAPT、Easy IP、NAT Server的原理,以及各NAT的配置方法和转换示例。

目录 NAT 技术原理: 静态NAT原理: 静态NAT(土豪用法): NAT转换示例: 静态NAT配置方法介绍: 1、方式一: 2、方式二: 静态NAT的配置实例: 动态NAT原理&…

NAT、Napt(地址转换技术)详解

NAT的由来 IPv4即网际网协议第4版——Internet Protocol Version 4的缩写。IPv4定义一个跨越异种网络互连的超级网,它为每个网际网的节点分配全球唯一IP地址。如果我们把Internet比作一个邮政系统,那么IP地址的作用就等同于包含城市、街区、门牌编号在内…

静态NAT、NAT server、NAPT区别

NAT NAT(Network Address Translation网络地址转换)是将IP数据报文头中的IP地址转换为另一个IP地址的过程。 NAPT(Network Address Port Translation网络地址端口转换)可以实现并发的地址转换。 它允许多个内部地址映射到同一个…

IP协议与NAT/NAPT技术

文章目录 IP协议一、什么是IP协议1、IPv4协议报文格式关于分片 2、IP地址3、子网划分与CIDR4、特殊的IP地址5、公网IP和私网IP6、IP地址的分配(DHCP) 二、NAT/NAPT技术1、接口与IP的关系2、路由器的LAN口与WAN口3、NAPT的基本工作原理 三、IPv4与IPv6四、ICMP协议1、关于ping命…

NAT与NAPT技术详解

一、定义 NAT: Network Address Transfer 网络地址转换。虚拟机。 NAPT: Network Address Port Transfer 网络地址端口转换。也叫PAT。内网路由器或FW。 NAT和NAPT的功能是完成内部私有地址和全局网络地址的转换,让计算机能与外界网络通信。其属接入广域网(WAN)技…

Queue与Deque的区别

前言 ​ 在研究java集合源码的时候,发现了一个很少用但是很有趣的点:Queue以及Deque,平常在写leetcode经常用LinkedList向上转型Deque作为栈或者队列使用,但是一直都不知道Queue的作用,于是就直接官方文档好了。 正文…

【C++】deque的实现原理简单介绍

前言 deque被称为双端队列,它的出现主要是为了结合vector和list的优点并减小它们的缺点,实际上deque确实结合了vector和list的优点减小了它们的缺点,但是它的结合也让它自己的优点没有原始的vector和list那么极致,导致deque变得很…

C++容器deque的用法

目录 1.deque容器概念 2.deque对象的构造 2.1deque对象的默认构造 2.2deque对象的带参数构造 3.deque头部和末尾的添加移除操作 4.deque的数据存取 5.deque与迭代器 6.deque的赋值 7.deque的大小 8.deque的插入 9.deque的删除 1.deque容器概念 deque容器概念 deque是…

C++ deque

C deque 简介 所谓的deque是”double ended queue”的缩写,双端队列不论在尾部或头部插入元素,都十分迅速。而在中间插入元素则会比较费时,因为必须移动中间其他的元素。双端队列是一种随机访问的数据类型,提供了在序列两端快速…

C++ queue 和 deque的区别

从使用的角度来讲主要差别就是&#xff1a; deque支持push_front、pop_front、push_back、pop_back。 queue支持push_back、pop_front。 ---------------------------------------------------------------------------- deque是双端队列 #include<deque>template&l…

C++——deque

文章目录 Deque 与 vector 的异同点构造操作非更易型操作更易型操作使用例子 容器 deque (发音为“deck”)和 vector 非常相似。它也采用dynamic array来管理元素&#xff0c;提供随机访问&#xff0c;并有着和 vector 几乎一模一样的接口。不同的是 deque 的 dynamic array 头…

C++中deque用法详解

deque函数&#xff1a; deque容器为一个给定类型的元素进行线性处理&#xff0c;像向量一样&#xff0c;它能够快速地随机访问任一个元素&#xff0c;并且能够高效地插入和删除容器的尾部元素。但它又与vector不同&#xff0c;deque支持高效插入和删除容器的头部元素&#xff0…

python中的deque模块(collections的deque模块)

目录 1. deque是python的collections中的一个类 2.deque的简单使用以及它的方法 2.1 创建deque的方法 2.2 创建deque时&#xff0c;并指定大小maxlen&#xff0c;即能装几个元素&#xff0c; 以及deque添加元素append()方法 2.3 deque的 appendleft()方法 2.4 deque的 clear()…