🔑 关键词
- NAT(网络地址转换)
- Full Cone NAT(全锥型NAT):也称为一对一NAT,是最简单的NAT类型之一。
- Address Restricted Cone NAT(地址限制型锥形NAT)
- Port Restricted Cone NAT(端口限制型锥形NAT)
- Symmetric NAT(对称NAT)
- Static NAT (SNAT)(静态NAT)
- Dynamic NAT (DNAT)(动态NAT)
- Port Address Translation (PAT)(端口地址转换)
NAT
NAT是一种网络技术,用于将一个地址空间的地址(IP:port)转换成另一个地址空间的地址(IP:port),从而实现不同网络空间间的通信
作用
- IP地址复用(静态NAT不行):将多个私有地址(IP:port)映射到一个或几个公共地址(IP:port)上,从而节省IPv4地址
- 增强网络安全:外部设备无法直接访问内部设备,且隐藏了内部网络结构
基本工作原理
地址转换
- 出站数据包:
- NAT设备修改数据包源IP地址和源端口号,将其替换为公共IP地址和新的端口号
- 并将映射关系记录在NAT表中
- 入站数据包:
- NAT设备根据NAT表,将数据包目的IP地址和端口号还原为原始的私有IP地址和端口号
- 并转发到对应的内部设备
- 示例:

连接跟踪
- NAT设备维持一个映射表,跟踪每个连接的映射关系
- 映射表包含私有IP地址、私有端口、公共IP地址、公共端口、目标IP地址、目标端口等信息
Internal Private IP Address | Internal Private Port | External Public IP Address | External Public Port | Destination IP Address | Destination Port | Protocol | Creation Timestamp | Timeout |
192.168.1.2 | 12345 | 203.0.113.1 | 54321 | 198.51.100.2 | 80 | TCP | 2024-05-15 12:00 | 3600s |
映射表
NAT映射表需要包含以下字段信息:
- 内部私有IP地址(Internal Private IP Address):内部设备的私有IP地址(例如
192.168.1.2)。
- 内部私有端口号(Internal Private Port):内部设备的私有端口号(例如
12345)。
- 外部公共IP地址(External Public IP Address):NAT路由器的公共IP地址(例如
203.0.113.1)。
- 外部公共端口号(External Public Port):NAT路由器分配的公共端口号(例如
54321)。
- 目标IP地址(Destination IP Address):目标Web服务器的IP地址(例如
198.51.100.2)。
- 目标端口号(Destination Port):目标Web服务器的端口号(例如
80)。
- 协议(Protocol)(通常是TCP或UDP):使用的协议(例如TCP)。
- 创建时间戳(Creation Timestamp):映射条目创建的时间戳(例如
2024-05-15 12:00)。
- 超时时间(Timeout):映射条目的超时时间(例如
3600s,表示3600秒后映射条目将被删除)。
按转换规则分类
Static NAT (SNAT)(静态NAT)
静态NAT是一种一对一的地址转换,用于将一个内部私有IP地址固定映射到一个公共IP地址。
- 特点:
- 每个私有IP地址对应一个唯一的公共IP地址。
- 映射关系是静态的,不会改变。
- 优点:
- 适用于需要固定公共IP地址的设备和服务。
- 配置简单,容易管理。
- 缺点:
- 需要大量的公共IP地址。
- 无法节省IP地址资源。
- 应用场景:
- 场景:公司内部有一台Web服务器,需要对外提供服务,且需要一个固定的公共IP地址。
- 配置:将私有IP地址192.168.1.100映射到公共IP地址203.0.113.10。
- 具体应用:
- 当外部用户访问公共IP地址203.0.113.10时,NAT设备将请求转发到内部服务器192.168.1.100。
Dynamic NAT (DNAT)(动态NAT)
动态NAT是一种多对多的地址转换,将多个内部私有IP地址动态映射到一个公共IP地址池中的公共IP地址。
- 特点:
- 私有IP地址和公共IP地址之间的映射关系是动态的,根据需要分配。
- 公共IP地址池中的IP地址数量有限。
- 优点:
- 节省公共IP地址。
- 提高IP地址利用率。
- 缺点:
- 映射关系不固定,某些应用可能不适应。
- 配置和管理相对复杂。
- 应用场景:适用于不需要固定公共IP地址的内部客户端。
- 场景:公司内部有多个员工需要访问互联网,且公司有一个公共IP地址池供这些员工使用。
- 配置:有一个私有IP地址池192.168.1.0/24和一个公共IP地址池203.0.113.10-203.0.113.20。
- 具体应用:
- 员工的设备(例如192.168.1.10)请求访问互联网时,NAT设备从公共IP地址池中分配一个可用的公共IP地址(例如203.0.113.11)用于该连接。
- 当该员工的会话结束或超时,公共IP地址203.0.113.11会返回到IP地址池中以供其他设备使用。
对于SNAT和DNAT,都是IP地址到IP地址的映射,在映射关系成立时,都是一对一映射,还是没法完全解决IP地址不够的问题,下面来看看PAT是怎么彻底解决这个问题的。
Port Address Translation (PAT)(端口地址转换)
端口地址转换,也称为NAT Overloading,将多个内部私有IP地址通过不同的端口号映射到同一个公共IP地址,并通过端口号区分。
- 特点:
- 多个私有IP地址共享一个公共IP地址,通过端口号区分不同的连接。
- 端口号在转换过程中发生变化。
- 优点:
- 极大地节省公共IP地址。
- 高效利用IP地址资源。
- 缺点:
- 增加了配置和管理的复杂性。
- 可能影响某些需要固定端口号的应用。
- 应用场景:广泛用于家庭网络和小型办公室网络。
- 场景:家庭网络中有多台设备(如PC、手机、平板)需要同时访问互联网,但只有一个公共IP地址。
- 配置:家庭路由器将内部私有IP地址192.168.0.0/24的设备通过不同的端口号映射到一个公共IP地址(例如203.0.113.1)。
- 具体应用:
- 设备1的私有IP地址是192.168.0.2,通过端口1234访问互联网,其请求被映射为203.0.113.1:1234。
- 设备2的私有IP地址是192.168.0.3,通过端口5678访问互联网,其请求被映射为203.0.113.1:5678。
- 即使所有设备共享一个公共IP地址203.0.113.1,不同的端口号使得NAT设备能够区分和管理各个设备的连接。
对比
类型 | 定义 | 特点 | 应用场景 | 优点 | 缺点 |
静态NAT | 将一个私有IP地址固定映射到一个公共IP地址 | 映射关系固定 | 需要固定公共IP地址的设备和服务 | 适用于固定IP地址需求,配置简单 | 需要大量公共IP地址,无法节省资源 |
动态NAT | 多个私有IP地址动态映射到一个公共IP地址池 | 映射关系动态 | 不需要固定公共IP地址的内部客户端 | 节省公共IP地址,提高利用率 | 映射关系不固定,配置管理相对复杂 |
端口地址转换(PAT) | 多个私有IP地址通过不同端口号映射到同一个公共IP地址 | 通过端口号区分不同连接 | 家庭网络和小型办公室网络 | 极大节省公共IP地址,效率高 | 增加配置和管理复杂性,可能影响固定端口应用 |
按行为方式分类
Full Cone NAT(全锥型NAT)
- 工作机制:
- 将一个内部地址(IP:port)映射到一个固定的外部地址(IP:port)。
- 一旦建立了映射,任何外部主机都可以通过该外部地址(IP:port)与内部主机通信。
- 不限制外部IP地址和端口的访问。
- 优点:
- 访问控制最宽松,简单配置。
- 缺点:安全性较低,因为任何外部主机都可以发送数据到内部网络。
- 使用场景:适用于需要高可访问性的应用,如视频会议和P2P通信。
- 内部主机A的IP地址和端口(192.168.1.100:12345)映射到公共IP地址和端口(203.0.113.10:54321)。
- 任何外部主机(例如,203.0.113.20)都可以通过203.0.113.10:54321访问内部主机A。
Address Restricted Cone NAT(地址限制型锥形NAT)
- 工作机制:
- 内部地址被映射到一个外部地址后,只有来自已经接收过内部主机数据的外部IP的请求,才能被NAT设备转发到内部主机。
- 不限制外部端口号。
- 优点:只允许已知来源的外部主机连接,增加了网络的安全防护。
- 缺点:
- 在不能接受未知来源的连接的同时,也限制了某些类型的网络应用。
- 使用场景:适用于希望限制接入连接来源但仍需允许某些外部互动的应用,如某些VoIP和在线游戏。
- 内部主机A的IP地址和端口(192.168.1.100:12345)映射到公共IP地址和端口(203.0.113.10:54321)。
- 外部主机B(203.0.113.20)在收到内部主机A的请求后,可以通过203.0.113.10:54321访问内部主机A,但其他外部主机不能。
Port Restricted Cone NAT(端口限制型锥形NAT)
- 工作机制:
- 端口限制型锥形NAT类似于地址限制型,但更为严格。
- 不仅限制了外部主机的IP地址,还限制了端口号。
- 这意味着,只有之前内部主机发送过数据包的外部IP地址和端口号才能通过这个映射访问内部主机。
- 优点:通过精确控制外部通信的IP地址和端口,防止未经授权的访问,显著增强了网络的安全防护。
- 缺点:
- 兼容性差,如与STUN协议的兼容性差,导致某些基于P2P的应用无法工作。
- 使用场景:适用于需要高安全级别的网络环境,如企业内部网络,特别是对外部访问有严格控制的情况。
- 内部主机A的IP地址和端口(192.168.1.100:12345)映射到公共IP地址和端口(203.0.113.10:54321)。
- 外部主机B(203.0.113.20:56789)在收到内部主机A的请求后,可以通过203.0.113.10:54321访问内部主机A,但其他外部主机或端口不能。
Symmetric NAT(对称NAT)
- 工作机制:
- 会为每个内部主机与特定外部主机之间,创建唯一的NAT映射(IP:port)。
- 这意味着,即使是来自同一内部IP和端口的连接,只要目标外部IP或端口不同,对称NAT都会为每个不同的会话分配不同的外部端口。
- 因此,相同的内部源地址和端口号可能会被映射到多个外部端口,这些映射依赖于目标外部地址。
- 外部主机只能通过与原始请求相同的目标IP和端口访问内部主机。
- 优点:
- 增强安全性:由于其每次会话独立的映射特性,对称NAT增加了未授权访问内部网络资源的难度,从而提高了安全性。
- 隔离内部网络:对称NAT通过限制入站连接,有助于隔离内部网络,使外部攻击者难以直接接触到内部系统。
- 缺点:
- 与P2P应用的兼容性差:对称NAT的严格映射策略会使得P2P(点对点)应用(如某些视频会议系统和在线游戏)的设置和运行变得复杂,因为这些应用通常依赖于能够接收从任意位置发起的入站连接。
- 配置和维护复杂:由于对称NAT为每个不同的外部目的地使用不同的映射,这使得其配置和维护比其他类型的NAT更为复杂。
- 难以穿越:在需要支持VoIP或其他实时通信服务时,对称NAT的NAT穿越能力较差,通常需要依赖如STUN和TURN等技术来实现通信。
- 使用场景:适用于需要高安全性的应用,但对穿越NAT的应用支持较差,如一些特定的企业应用。
- 内部主机A(192.168.1.100:12345)向外部主机B(203.0.113.20:80)发送请求,NAT设备将其映射到公共IP地址和端口(203.0.113.10:54321)。
- 内部主机A再向外部主机C(203.0.113.30:80)发送请求,NAT设备将其映射到不同的公共IP地址和端口(203.0.113.10:54322)。
- 只有外部主机B能通过203.0.113.10:54321访问内部主机A,外部主机C则通过203.0.113.10:54322访问。
对比
类型 | 定义 | 特点 | 应用场景 | 优点 | 缺点 |
全锥型NAT | 内部IP和端口映射后,任何外部主机都能通过此映射访问 | 无限制外部IP和端口的访问 | 高可访问性的应用(如视频会议、P2P通信) | 访问控制最宽松,简单配置 | 安全性最低,易受攻击 |
地址受限型NAT | 只有内部主机先前发送过数据包的外部IP地址才能访问 | 限制外部IP地址,不限制外部端口 | 一定安全性需求的应用(如在线游戏) | 提供一定的安全性,兼容性较好 | 仍有一定的安全风险 |
端口受限型NAT | 只有内部主机先前发送过数据包的外部IP和端口才能访问 | 限制外部IP和端口 | 高安全性需求的应用(如企业内部网络) | 提供更高的安全性,防止未经授权的访问 | 降低应用程序的兼容性 |
对称型NAT | 对每个目标创建唯一的公共IP和端口映射 | 每个目标有不同的映射,外部主机只能通过相同目标IP和端口访问 | 高安全性需求的特定企业应用 | 提供最高的安全性,防止未经授权的访问 | 穿越NAT支持较差,配置复杂 |
📎 参考\推荐
- Author:CoderWdd
- URL:https://www.wuinsights.top//article/01HYWW89BA40DY2CZ94843DA7C
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts