笔记-NAT类型简记

一、NAT是什么

NAT(Network Address Translation,网络地址转换) 是一种在计算机网络中使用的技术,用于修改数据包的源 IP 地址或目标 IP 地址,目的是在不同网络之间转发数据包时进行地址的转换。它通常应用于路由器、防火墙或网关设备,用于解决私有网络与公网之间的通信问题,特别是在 IPv4 地址短缺的情况下,NAT 允许多个内网设备共享一个公网 IP 地址。


基本原理

NAT 的基本工作原理是:当一个内网设备(比如家庭或企业局域网中的计算机)与外部网络(如互联网)进行通信时,NAT 会在路由器上进行地址转换,将内网设备的私有 IP 地址转换为公网 IP 地址。这使得多个设备可以共享一个公网 IP 地址,同时隐藏了内网设备的真实地址,从而提高了网络安全性。

例如:

  • 内网设备:192.168.1.100(私有地址)
  • 公网地址:203.0.113.1(共享的公网 IP)

当设备 192.168.1.100 访问外部网站时,NAT 会将它的源 IP 地址(192.168.1.100)转换为公网 IP 地址(203.0.113.1),并且可能会使用不同的端口号来区分不同的连接。


主要功能

IP 地址节省
NAT 允许私有网络(通常使用非公网 IP 地址)与互联网进行通信,避免了每个内网设备都需要一个公网 IP 地址的需求。这在 IPv4 地址短缺的情况下尤为重要。

增强网络安全
NAT 将内部网络隐藏在外部世界的背后,外部设备无法直接访问内网设备的 IP 地址,这增加了网络的安全性。

端口转换(PAT,Port Address Translation)
通过端口转换,多个内网设备可以共享同一个公网 IP 地址,只要 NAT 为每个连接分配一个唯一的端口号,从而使得网络通信不冲突。


NAT 类型

NAT 的工作方式可以有多种不同的实现类型,常见的类型包括:

  1. 全锥型 NAT(Full Cone NAT)
    外部设备只要知道公网 IP 和端口,就可以通过该端口与内网设备建立通信,任何外部设备都可以发送数据到内网设备,前提是它知道正确的 IP 地址和端口。
  2. 对称型 NAT(Symmetric NAT)
    对每个连接的外部端口和目标 IP 都进行严格的映射。内网设备与外部设备的通信必须精确匹配源地址和端口,如果外部设备想要建立连接,必须使用与内网设备首次通信时相同的外部 IP 和端口。
  3. 地址限制型 NAT(Address-Restricted NAT)
    只有当外部设备知道正确的目标 IP 地址时,才可以与内网设备建立通信,即外部设备只能通过目标 IP 进行通信,而不允许随机的外部设备发起连接。
  4. 端口限制型 NAT(Port-Restricted NAT)
    除了目标 IP,外部设备还必须知道正确的目标端口,才能与内网设备进行通信。
  5. NAT0(No NAT)
    在这种模式下,NAT 不会修改任何 IP 地址或端口。这通常用于 VPN 或特定网络配置,需要数据包保持原始地址和端口。

NAT 类型比较

特性 NAT0 (无 NAT) 全锥型 NAT (Full Cone NAT) 对称型 NAT (Symmetric NAT) 地址限制型 NAT (Address-Restricted NAT) 端口限制型 NAT (Port-Restricted NAT)
地址转换 无需地址转换 公网 IP 地址和端口映射 每个连接使用独立的公网端口 限制外部设备访问特定目标 IP 地址 限制外部设备访问特定端口
外部端口访问 可以直接访问内网设备 任何外部设备只要知道公网 IP 和端口即可访问 只允许已知源地址和端口访问 只允许知道目标 IP 地址的外部设备访问 只允许知道目标 IP 地址和端口的外部设备访问
内部设备响应 任何外部设备都可以访问内网设备 内网设备能回应任何外部设备 只回应匹配的外部设备 只回应匹配的目标 IP 地址 只回应匹配的端口和目标 IP 地址
安全性 较低,内网设备暴露在公网中 较低,外部设备可以随意访问 较高,外部访问受限 较高,外部访问受限 较高,外部访问受限
P2P 支持 无需 NAT 穿透 良好 较差,需要 NAT 穿透技术 较好,支持目标 IP 地址匹配 较好,支持端口匹配

二、常规NAT种类介绍

1. 全锥型 NAT (Full Cone NAT)

全锥型 NAT(Full Cone NAT) 是一种常见的网络地址转换(NAT)类型,其特点是对外部设备访问内部网络非常宽松和简单。具体来说,当内网设备与外部设备建立连接时,外部设备只需知道外部公网 IP 地址和端口号,就可以与内网设备进行通信,无需再额外的限制或检查。


全锥型 NAT 的工作原理

  1. 内网设备发起连接
    当内网设备(例如一个家庭路由器后的计算机)向外部服务器发起连接时,NAT 会为此连接分配一个公网 IP 地址和端口,且该端口将被固定下来。比如内网设备的私有 IP 地址是 192.168.1.100,端口是 12345,NAT 会将该设备的源地址转换为公网 IP 地址(例如 203.0.113.1)和某个外部端口(比如 54321)。
  2. 外部设备可以访问内网设备
    一旦内网设备与外部设备建立了连接,外部设备就可以通过公网 IP 地址(203.0.113.1)和端口号(54321)直接与内网设备进行通信,不需要再进行其他限制或验证。无论外部设备是否知道内网设备的原始地址,只要它知道公网 IP 和端口号,它就可以发送数据到内网设备。

全锥型 NAT 的特点

  1. 简单和开放的访问
    一旦内网设备与外部设备建立连接,外部设备可以随时访问内网设备。只要它知道公网 IP 和端口号,就可以发送数据,甚至是通过不同的源 IP 和端口。
  2. 易于实现和使用
    与其他更复杂的 NAT 类型(如对称型 NAT)相比,全锥型 NAT 是最简单、最宽松的一种。它不会对数据包的源 IP 或端口进行额外的限制,因此在多数场景下非常适用。
  3. 缺乏安全性
    由于任何外部设备只要知道公网 IP 和端口号就可以与内网设备通信,因此它的安全性相对较弱。如果恶意外部设备得知内网的公网地址和端口,它也可以进行攻击或不必要的通信。为了增强安全性,通常会结合防火墙或访问控制策略来使用。

工作流程示例

假设:

  • 内网设备的 IP 地址是 192.168.1.100,端口是 12345。
  • 外部服务器的 IP 地址是 8.8.8.8,端口是 80。
  • 公网地址分配给路由器:203.0.113.1,外部端口是 54321。
  1. 内网设备向外部服务器发起连接,NAT 将源地址从 192.168.1.100:12345 转换为 203.0.113.1:54321,并将映射信息存入 NAT 表。
  2. 外部服务器 8.8.8.8 将响应发送到 203.0.113.1:54321。
  3. 当外部设备(如 8.8.8.8)通过 IP 地址 203.0.113.1 和端口 54321 发送数据时,NAT 会将数据正确地路由到 192.168.1.100:12345。

全锥型 NAT 的应用场景

  1. 家庭网络
    由于全锥型 NAT 提供了简单、宽松的访问控制,许多家庭路由器使用这种类型的 NAT。它允许家庭中的多个设备共享一个公网 IP 地址并且能够自由访问互联网。
  2. P2P 网络
    由于全锥型 NAT 对外部设备的访问没有严格限制,它是 P2P 网络(如 BitTorrent)的理想环境。在这种环境下,内网设备可以轻松地建立连接,进行文件共享或通信。
  3. VoIP(语音通信)和视频通话
    全锥型 NAT 在进行 VoIP 通话或视频会议时,能够更容易地让两个设备相互发现并建立直接的连接,因此,许多简单的 VoIP 服务可能使用这种类型的 NAT。

全锥型 NAT 的局限性

  1. 安全性较差
    全锥型 NAT 对外部设备访问没有做太多的限制,因此任何了解公网 IP 和端口的设备都可以访问内网设备,这可能带来一定的安全风险。在某些情况下,恶意攻击者也能够利用这一点进行攻击。
  2. 不适合大规模网络或企业环境
    对于需要精细控制和更高安全性的企业网络,全锥型 NAT 可能不适用,通常会使用更复杂的 NAT 类型(如对称型 NAT)来提高安全性。

全锥型 NAT 是一种简单且宽松的 NAT 类型,允许任何外部设备在知道内网设备公网 IP 和端口后进行通信。它非常适用于家庭网络、P2P 网络和一些需要简单通信的应用,如 VoIP,但由于安全性较差,因此在需要较高安全性和控制的网络中使用较少。


2. 对称型 NAT (Symmetric NAT)

对称型 NAT(Symmetric NAT) 是一种严格的网络地址转换(NAT)类型,与其他类型的 NAT 相比,它在地址转换和外部设备访问控制方面有更高的限制。对称型 NAT 对每个连接使用独立的外部端口,并且仅允许外部设备通过精确匹配源地址和端口与内网设备进行通信。这种类型的 NAT 主要应用于一些安全性要求较高的网络环境,但它也可能导致某些应用(如 P2P、VoIP 等)受到影响,需要通过 NAT 穿透技术来解决。


对称型 NAT 的工作原理

  1. 内网设备发起连接
    当内网设备(例如某个局域网中的计算机)向外部设备发起连接时,NAT 会将内网设备的私有 IP 地址和端口转换为公网 IP 地址和端口,并为每个连接分配一个新的端口号。

    • 例如,内网设备的 IP 地址是 192.168.1.100,端口是 12345,连接到外部服务器(如 8.8.8.8:80)。NAT 会将源地址转换为公网 IP 地址(例如 203.0.113.1)和端口号(如 54321)。
  2. 外部设备访问限制
    在对称型 NAT 中,外部设备不能直接访问内网设备。为了能够成功通信,外部设备必须知道:

    • 公网 IP 地址(如 203.0.113.1)
    • 正确的外部端口(如 54321)
    • 目标 IP 地址(如 192.168.1.100)
    • 目标端口(如 12345)

    如果外部设备不知道正确的端口,NAT 会拒绝通信,即使它知道公网 IP 地址。

  3. 每个连接都独立
    与其他 NAT 类型不同,对称型 NAT 会为每个连接选择不同的外部端口。即使是同一个内网设备与不同的外部目标进行通信,也会分配不同的外部端口。

    • 比如,内网设备 192.168.1.100 发起两个不同的连接到 8.8.8.8:80 和 1.1.1.1:80,NAT 会分别为这两个连接分配不同的外部端口。

对称型 NAT 的特点

  1. 严格的端口映射
    对于每个内外连接,对称型 NAT 使用不同的外部端口,并且记录下每个连接的 IP 地址和端口。这种映射是非常严格的,只有外部设备使用正确的 IP 地址和端口才能与内网设备通信。
  2. 提高安全性
    由于外部设备必须精确匹配内网设备的源地址和端口,因此对称型 NAT 增强了网络安全性。它使得外部设备很难直接访问内网设备,除非它知道具体的源地址和端口。
  3. 不便于 P2P 通信
    由于对称型 NAT 对每个连接都使用不同的外部端口,这使得外部设备在无法得知正确端口的情况下,很难直接与内网设备建立连接。这会影响一些需要双向通信的应用,如 P2P 文件共享、VoIP 或视频会议。
  4. 需要 NAT 穿透技术
    在对称型 NAT 环境中,很多需要两端设备直接建立连接的应用(例如视频通话、实时游戏、文件共享等)可能会遇到问题,因为 NAT 不允许外部设备直接发起连接。通常需要使用 NAT 穿透技术,如 STUN(Session Traversal Utilities for NAT)、TURN(Traversal Using Relays around NAT)、ICE(Interactive Connectivity Establishment)等来解决。

工作流程示例

假设:

  • 内网设备的 IP 地址是 192.168.1.100,端口是 12345。
  • 公网地址分配给路由器:203.0.113.1,外部端口是 54321。
  • 外部设备的 IP 地址是 8.8.8.8,目标端口是 80。
  1. 内网设备向外部服务器(8.8.8.8:80)发起连接,NAT 将源地址从 192.168.1.100:12345 转换为 203.0.113.1:54321,并记录这个连接的信息。
  2. 外部服务器(8.8.8.8)向 203.0.113.1:54321 发送响应数据,NAT 将数据转发到内网设备的 IP 地址 192.168.1.100:12345。
  3. 如果内网设备再与不同的外部设备(例如 1.1.1.1:80)建立连接,NAT 会分配另一个公网端口(比如 54322)并记录下新的映射。

对称型 NAT 的应用场景

  1. 高安全性网络环境
    对称型 NAT 增强了网络安全性,适用于需要严格控制外部设备访问的网络环境,特别是企业级防火墙和一些高安全性需求的场合。
  2. VPN 配置
    对于使用 VPN 的网络,NAT 在某些配置中可能使用对称型 NAT,以保证外部设备无法直接发起不受控制的连接。
  3. 企业防火墙和负载均衡
    企业网络中常常需要使用对称型 NAT 来提供更高的安全性,尤其是在防火墙和负载均衡器中。

对称型 NAT 的局限性

  1. P2P 和实时通信受限
    对称型 NAT 对外部设备的访问非常严格,这使得某些需要双向通信的应用(如 P2P 文件共享、VoIP、视频会议等)受限,通常需要额外的 NAT 穿透技术来进行通信。
  2. 配置复杂
    对称型 NAT 的配置和维护相对复杂,尤其是对于需要动态端口映射的应用。它的地址和端口映射通常需要额外的管理,增加了网络管理的复杂性。

对称型 NAT 是一种安全性较高的 NAT 类型,通过严格的端口映射和限制外部设备访问内网设备的方式,提供了一定程度的防护。然而,这种类型的 NAT 对双向通信和 P2P 应用的支持较差,往往需要额外的 NAT 穿透技术来克服其局限性。


3. 地址限制型 NAT (Address-Restricted NAT)

地址限制型 NAT(Address-Restricted NAT) 是一种网络地址转换(NAT)类型,它介于全锥型 NAT 和对称型 NAT 之间,主要特征是它允许外部设备访问内网设备,但访问的限制条件是必须匹配目标 IP 地址。这意味着,外部设备只有在它知道内网设备的正确公网端口,并且知道目标 IP 地址时,才能与内网设备进行通信


地址限制型 NAT 的工作原理

  1. 内网设备发起连接
    内网设备发起连接时,NAT 会分配一个公网 IP 地址和端口,并将源地址转换为该公网地址。例如,内网设备的 IP 地址是 192.168.1.100,端口是 12345,连接到外部服务器(例如 8.8.8.8:80),NAT 会将源地址转换为公网 IP(例如 203.0.113.1)和端口(例如 54321)。

  2. 外部设备可以访问内网设备
    对于外部设备,它只能通过已知的公网 IP 地址和端口来访问内网设备,而且还必须匹配内网设备的目标 IP 地址。如果外部设备试图向不同的目标 IP 地址(例如 192.168.1.101)发送数据,则连接会被拒绝。换句话说,外部设备的访问受到目标地址的限制。

  3. 外部设备的访问条件
    外部设备不能像全锥型 NAT 那样随便访问内网设备,而是必须知道目标 IP 地址。具体来说:

    • 外部设备需要知道公网 IP 地址。
    • 外部设备需要知道目标 IP 地址(例如内网设备的私有 IP 地址)。
    • 外部设备需要知道正确的端口号。

    只有这些条件匹配时,外部设备才能建立通信。


地址限制型 NAT 的特点

  1. 目标 IP 地址的限制
    地址限制型 NAT 使得外部设备只能访问内网设备的特定目标 IP 地址,而不能访问内网中其他 IP 地址的设备。这就意味着即便外部设备知道了公网 IP 和端口,它也必须清楚内网设备的目标 IP 地址。
  2. 比全锥型 NAT 更严格
    相比全锥型 NAT(允许外部设备只知道公网 IP 和端口就能访问内网设备),地址限制型 NAT 的限制更多。外部设备不仅要知道公网 IP 和端口,还要知道内网设备的目标 IP 地址才能通信。
  3. 比对称型 NAT 更宽松
    相较于对称型 NAT(要求外部设备匹配内网设备的源 IP 地址和源端口),地址限制型 NAT 在这方面的限制较少。外部设备不需要精确匹配源地址和源端口,只需要知道目标 IP 地址和端口。
  4. 适用于某些内网访问场景
    这种类型的 NAT 常用于一些需要一定控制权限的内网环境,特别是当内网设备的访问要控制在某些特定的目标 IP 上时。

工作流程示例

假设:

  • 内网设备的 IP 地址是 192.168.1.100,端口是 12345。
  • 公网地址分配给路由器:203.0.113.1,外部端口是 54321。
  • 外部设备的目标 IP 地址是 192.168.1.100,目标端口是 12345。
  1. 内网设备发起连接,NAT 会将源地址从 192.168.1.100:12345 转换为 203.0.113.1:54321,并记录下这个映射信息。
  2. 外部设备试图通过公网 IP 203.0.113.1:54321 与内网设备建立连接时,NAT 会检查目标 IP 地址。如果外部设备的目标 IP 地址是 192.168.1.100,通信会被允许;如果目标 IP 地址是其他设备(如 192.168.1.101),通信会被拒绝。

地址限制型 NAT 的应用场景

  1. 家庭或小型企业网络
    在一些简单的网络环境中,地址限制型 NAT 可以被用来限制外部设备访问内网设备的特定目标地址,增强一定程度的安全性,同时避免过多的复杂配置。
  2. 防火墙和安全设备
    地址限制型 NAT 适合用于防火墙或网络安全设备中,它能够精确控制哪些外部设备可以访问内网设备,增加网络的安全性。
  3. 虚拟化和容器化环境
    在一些虚拟化或容器化的环境中,地址限制型 NAT 可以通过限制目标 IP 来确保网络中不同容器或虚拟机之间的访问是受控制的。
  4. 需要一定控制的 P2P 网络
    地址限制型 NAT 适用于一些 P2P 网络场景,尤其是那些只允许通过特定目标 IP 进行通信的场景。尽管与全锥型 NAT 相比有更多的限制,但仍然提供了一定的灵活性。

地址限制型 NAT 的局限性

  1. 比全锥型 NAT 更严格
    虽然地址限制型 NAT 比全锥型 NAT 更具安全性,但它的灵活性也较差。外部设备必须知道内网设备的目标 IP 地址,可能会影响一些应用的性能和便捷性。
  2. P2P 支持有限
    地址限制型 NAT 对 P2P 应用的支持不如全锥型 NAT,尤其是在需要动态分配端口和源地址的 P2P 网络中,可能会导致连接失败。
  3. 可能增加配置复杂度
    虽然它比对称型 NAT 简单,但仍然需要管理目标 IP 地址的访问控制,这在一些复杂的网络环境中可能会增加配置的难度。

地址限制型 NAT 是一种较为严格的 NAT 类型,要求外部设备在访问内网设备时,必须知道正确的目标 IP 地址和端口。它提供了比全锥型 NAT 更高的安全性,但又比对称型 NAT 更灵活,适用于一些需要对外部设备访问控制的网络环境。


4. 端口限制型 NAT (Port-Restricted NAT)

端口限制型 NAT(Port-Restricted NAT) 是一种介于全锥型 NAT 和对称型 NAT 之间的网络地址转换(NAT)类型,它在访问控制上比全锥型 NAT 更严格,但比对称型 NAT 更宽松。端口限制型 NAT 通过限制外部设备只能通过特定的端口与内网设备通信来提高安全性,它要求外部设备的目标端口和源 IP 地址必须匹配内网设备的端口映射规则,才能进行访问。


端口限制型 NAT 的工作原理

  1. 内网设备发起连接
    内网设备发起连接时,NAT 会为该连接分配一个公网 IP 地址和端口,并记录下该连接的源 IP 地址、源端口、目标 IP 地址和目标端口。

    例如,内网设备的 IP 地址是 192.168.1.100,端口是 12345,连接到外部服务器 8.8.8.8:80,NAT 会将源地址转换为公网 IP(例如 203.0.113.1)和外部端口(例如 54321)。

  2. 外部设备访问内网设备
    外部设备可以通过公网 IP 和端口来访问内网设备,但它必须同时满足以下条件:

    • 外部设备的源 IP 地址必须与内网设备的源 IP 地址匹配。
    • 外部设备的目标端口必须与内网设备连接时使用的端口匹配。

    换句话说,端口限制型 NAT 允许外部设备访问内网设备,但限制了外部设备能访问的端口和目标 IP 地址。这种限制使得只有已知的源 IP 和端口组合才能成功建立通信。

  3. 端口匹配的要求
    与地址限制型 NAT 相似,端口限制型 NAT 的关键在于它限制了外部设备访问的端口,但不仅仅是限制 IP 地址。外部设备必须知道目标端口以及匹配的源端口,才能与内网设备建立连接。


端口限制型 NAT 的特点

  1. 外部设备访问的端口限制
    端口限制型 NAT 最主要的特点就是外部设备只能通过匹配内网设备源端口的特定端口来进行通信。这意味着,外部设备必须知道内网设备的目标端口以及它在映射时所使用的源端口。
  2. 安全性较高
    由于端口限制型 NAT 对外部设备的访问有更细致的控制,它比全锥型 NAT 更安全。外部设备无法随意与内网设备建立连接,必须严格按照端口映射规则进行访问。
  3. 灵活性介于全锥型 NAT 和对称型 NAT 之间
    端口限制型 NAT 提供的安全性和灵活性介于全锥型 NAT 和对称型 NAT 之间。它允许某些外部设备根据特定的端口进行访问,但不会像全锥型 NAT 那样完全开放,也不会像对称型 NAT 那样严格要求源地址和源端口的匹配。
  4. P2P 支持较好
    相比对称型 NAT,端口限制型 NAT 对 P2P(点对点)应用的支持更好,因为它允许匹配的源 IP 和端口的外部设备进行通信,尽管不如全锥型 NAT 那么宽松。

工作流程示例

假设:

  • 内网设备的 IP 地址是 192.168.1.100,端口是 12345。
  • 公网地址分配给路由器:203.0.113.1,外部端口是 54321。
  • 外部设备的 IP 地址是 8.8.8.8,目标端口是 54321。
  1. 内网设备与外部设备建立连接,NAT 会将源地址从 192.168.1.100:12345 转换为 203.0.113.1:54321,并将该连接的端口映射记录在 NAT 表中。
  2. 如果外部设备试图通过公网 IP 203.0.113.1 和端口 54321 来与内网设备建立连接,NAT 会验证目标端口和源端口是否匹配。如果匹配,通信将被允许;如果不匹配,连接将被拒绝。
  3. 外部设备只能通过已知的公网 IP 和端口访问内网设备,且要求外部设备的目标端口必须与内网设备当时的连接端口一致。

端口限制型 NAT 的应用场景

  1. 家庭和小型办公室网络
    在一些小型网络环境中,端口限制型 NAT 可以提供比全锥型 NAT 更高的安全性,同时不至于像对称型 NAT 那样限制过多的外部连接。这种类型的 NAT 适合那些需要基本保护但不希望太多复杂配置的家庭或小型办公室网络。
  2. 游戏和实时通信
    端口限制型 NAT 在游戏和实时通信中具有较好的应用效果。它允许外部设备访问内网设备,但前提是它们知道正确的目标端口。这种类型的 NAT 对 P2P 游戏和 VoIP 应用特别有用,尽管比全锥型 NAT 更为严格,但通常仍能支持 NAT 穿透。
  3. Web 服务和服务器环境
    如果需要对外部访问进行一定程度的限制,同时又不想像对称型 NAT 那样严格控制源 IP 地址,端口限制型 NAT 适用于 Web 服务或服务器环境,它可以通过限制端口来防止外部设备随意访问内网资源。
  4. 混合网络环境
    在混合型的网络环境中,既有需要较高安全性的应用,也有需要一些灵活性的应用,端口限制型 NAT 提供了一个折中的方案,既可以保证一定的安全性,又不至于过于封闭。

端口限制型 NAT 的局限性

  1. 配置和管理相对复杂
    端口限制型 NAT 在配置和管理上比全锥型 NAT 更复杂,因为它需要精确管理哪些端口可以访问内网设备。这对于一些较大的网络可能会增加额外的配置负担。
  2. P2P 和实时通信受限
    虽然端口限制型 NAT 比对称型 NAT 更适合 P2P 应用,但它仍然不如全锥型 NAT 那样灵活,因此,某些 P2P 或实时通信应用(如视频通话)可能依然需要额外的 NAT 穿透技术来确保通信顺畅。
  3. 不适合严格的安全需求
    对于一些对外部访问有严格控制需求的企业级网络,端口限制型 NAT 可能仍然不够安全,特别是当需要更高精度的访问控制时,可能需要使用对称型 NAT 或其他更复杂的 NAT 类型。

端口限制型 NAT 提供了一种比全锥型 NAT 更安全但比对称型 NAT 更灵活的 NAT 类型。它通过限制外部设备只能通过特定的端口与内网设备通信,既能提高安全性,又不至于完全限制外部设备的访问。这种 NAT 类型适用于一些对安全有一定要求,但又需要一定灵活性的应用场景,如家庭网络、小型办公室网络、游戏或实时通信等。


三、特殊 NAT 配置模式(NAT0)

NAT0(或称为无 NAT)指的是一种没有进行网络地址转换(NAT)的网络配置。在这种配置中,内网设备的私有 IP 地址直接暴露在公网中,外部设备可以直接通过内网设备的公网 IP 地址进行访问。通常情况下,NAT0 也可以视为一种“端对端”通信模式,在此模式下,设备之间的地址和端口不需要进行转换,直接使用原始的地址进行通信。


NAT0 的特点

  1. 没有地址转换
    在 NAT0 环境中,网络中的设备没有经过任何的地址转换,内网设备的私有 IP 地址和端口号直接暴露在公网中,或者内网设备的 IP 地址直接映射到公网地址。因此,没有 NAT 映射规则,所有设备的源地址和目标地址保持不变。
  2. 端对端通信
    NAT0 允许内网和外部设备之间进行端对端通信,即外部设备可以直接访问内网设备,而不需要经过任何中间的 NAT 设备。通信是直接的,不涉及任何地址转换和端口映射。
  3. 无需 NAT 穿透
    由于没有 NAT 的干预,NAT0 环境中的设备不需要使用 NAT 穿透技术,如 STUN、TURN、ICE 等。这使得一些需要端对端连接的应用(如 P2P、VoIP 和视频会议)可以直接通信,不会受到 NAT 类型的限制。
  4. 安全性较低
    在 NAT0 环境下,内网设备的私有地址是暴露的,外部设备可以直接访问这些设备。没有地址转换的保护,意味着外部恶意攻击者可以直接攻击这些设备,安全性较低。因此,在高安全要求的网络中,通常不推荐使用 NAT0,除非网络已经有其他安全机制(如防火墙)进行保护。
  5. 无需端口映射
    由于 NAT0 环境中没有进行端口映射或地址转换,内网设备和外部设备之间的连接不需要进行端口映射配置。所有通信都基于设备的真实 IP 地址和端口进行。

NAT0 的应用场景

  1. 端对端通信应用
    在一些对端对端通信要求较高的应用中,NAT0 可以作为理想的配置。例如,在 P2P 网络、视频会议、VoIP 等场景中,NAT0 可以直接支持内外部设备的通信,无需依赖 NAT 穿透技术。
  2. 开放网络环境
    如果一个网络环境没有严格的安全要求,比如一些开放的实验室、测试环境或开发环境,可以使用 NAT0 来简化网络配置,避免复杂的 NAT 规则和映射。
  3. 公共云服务与虚拟化
    在一些公共云环境或虚拟化平台中,NAT0 可能用于虚拟机与外部网络之间的通信,特别是在公网 IP 地址和虚拟机或设备间直接映射时。这样可以简化网络配置,并提高通信效率。

NAT0 的局限性

  1. 安全性差
    由于内网设备直接暴露在公网中,没有 NAT 设备的保护,安全性较差。外部设备可以直接访问内网设备,这使得网络容易受到攻击,尤其是没有额外安全措施(如防火墙、VPN 等)时,风险很高。
  2. 适用场景有限
    在大多数家庭或企业网络环境中,使用 NAT0 不太现实,因为它暴露了内网设备的真实 IP 地址,可能会导致数据泄露或其他安全问题。大多数网络使用传统的 NAT 类型(如全锥型 NAT 或端口限制型 NAT)来隐藏内网设备的地址,确保网络安全。
  3. 缺乏灵活性
    NAT0 的另一个缺点是缺乏灵活性,因为内网设备的地址和端口直接暴露在公网中,意味着它不能像 NAT 网络那样通过动态分配公网 IP 地址来分配资源。特别是对于较大的网络,NAT0 可能不适用,因为它需要为每个内网设备提供一个公网 IP 地址。

NAT0(无 NAT)是一种不进行地址转换的网络配置,允许内网设备直接暴露在公网中,提供端对端的通信方式。虽然 NAT0 可以简化网络配置并支持直接的 P2P 或实时通信,但由于其缺乏安全性保护,通常只适用于没有严格安全要求的网络环境。对于大多数家庭、企业网络而言,使用传统的 NAT 类型通常更为安全和灵活。


四、一些问题

问:我拥有了公网,但有端口限制,这属于什么nat类型?

答:如果你拥有公网地址,但有端口限制,这种情况并不属于严格意义上的 NAT 类型,而是由你的运营商或网络设备对端口使用设置了限制。


上面这种情况通常可以归类为以下两种可能:


1. 对称型 NAT(Symmetric NAT)

尽管你有公网地址,运营商可能仍然通过一种对称型 NAT 实现端口映射。这意味着:

  • 每个连接的外部端口是动态分配的,不同目标会有不同的外部端口。
  • 外部设备访问受限:只有特定目标 IP 和端口可以返回流量,其余通信被阻止。

这种情况下,虽然你的地址是公网的,但无法实现完全开放的端口访问。


2. 端口级防火墙(Port Filtering)

更常见的情况是运营商或你的网络设备启用了端口级防火墙,即:通过控制和过滤数据包的端口访问来保护网络。它基于“端口”这一概念来实施安全策略,即依据通信所使用的端口号(如 HTTP 使用 80 端口、HTTPS 使用 443 端口等)决定是否允许或拒绝数据流的传输。


工作原理

端口级防火墙的基本工作原理是:

  • 检测端口号:防火墙检查通过其网络接口的数据包,并确定每个数据包的源端口和目标端口。
  • 设置规则:防火墙根据预设的规则(允许或拒绝某些端口的流量)来过滤数据。比如,允许所有 80 端口的流量(HTTP),但阻止其他端口(如 FTP 的 21 端口)上的流量。
  • 策略应用:这些规则可以基于源 IP 地址、目标 IP 地址、协议类型(如 TCP 或 UDP)、端口号等进行设置。

类型

  1. 基于端口的访问控制
    只控制指定端口的流量。例如,某些防火墙只允许 80 和 443 端口上的流量,拒绝其他端口上的连接。
  2. 防止特定端口攻击
    防火墙可以限制某些容易被攻击的端口(如 23 端口的 Telnet,21 端口的 FTP)上的连接,减少潜在的安全风险。

优点

  • 简单有效:通过指定端口,防火墙可以很容易地控制允许和拒绝的流量。
  • 提高安全性:端口级防火墙可以限制某些危险的端口,防止黑客通过已知的漏洞进行攻击。
  • 性能较好:相较于更复杂的深度包检查(DPI)防火墙,端口级防火墙的性能通常较好,因为它的过滤规则相对简单。

缺点

  • 有限的防护:端口级防火墙主要依据端口号过滤数据,但无法对数据内容进行深度分析。因此,它对一些通过非标准端口进行的攻击(如通过 HTTP 隧道传输恶意流量)防护效果较差。
  • 端口混淆攻击:黑客可以通过将恶意流量伪装成合法流量(如使用 HTTP 协议或其他常见端口)绕过防火墙。

应用场景

  • 家庭和小型办公室网络:简单的端口级防火墙可以用来保护家庭或小型办公室网络,防止不必要的外部访问。
  • Web 服务器保护:确保 Web 服务器只接受 HTTP 或 HTTPS 流量,其他端口(如 FTP 或 SSH)被限制访问,以减少攻击面。
  • 阻止不必要的端口通信:在公司网络中,通常会设置端口级防火墙来阻止一些不必要的服务(如禁止通过 Telnet 访问设备)。

常见的端口级防火墙产品

  • iptables(Linux 环境):可以用于基于端口的访问控制。
  • Windows 防火墙:可以设置规则来允许或阻止特定端口的流量。
  • 硬件防火墙:企业网络中常用的防火墙设备,如 Cisco、Fortinet 等产品,通常也会提供基于端口的访问控制。

(未完待续)