🔑 关键词

  • 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地址和端口号
    • 并转发到对应的内部设备
  • 示例:
    notion image

    连接跟踪

    • 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支持较差,配置复杂

    📎 参考\推荐

    JavaScript——基础知识Debian update时错误GPG解决
    Loading...