NAT类型

NAT类型详解

全锥形NAT

全锥形NAT是最宽松的一种NAT类型,也称为"开放锥形NAT"。

工作原理:

  • 内部主机A向外部主机发送数据包时,NAT设备会为A创建一个映射
  • 一旦映射建立,任何外部主机都可以通过这个公网IP和端口与A通信
  • 不需要事先建立连接或发送数据

特点:

  • 穿透性最好,安全性最低
  • 适合P2P应用和PCDN技术
  • 现代路由器中较少见
  graph TD
    subgraph 内网
        A[内部主机A192.168.1.10:3000]
    end

    subgraph NAT设备
        N[全锥形NAT18.18.0.10]
    end

    subgraph 外网
        S1[外部主机1155.99.24.2:8000]
        S2[外部主机213.13.0.10:1232]
    end

    A -->|映射| N
    N -->|开放通道| S1
    N -->|开放通道| S2

    style A fill:#f9f,stroke:#333
    style N fill:#bbf,stroke:#333,color:#fff
    style S1 fill:#9f9,stroke:#333
    style S2 fill:#9f9,stroke:#333

IP受限型NAT

IP受限型NAT也称为"限制锥形NAT"。

工作原理:

  • 内部主机A向外部主机S1发送数据包后,NAT设备创建映射
  • 只有S1可以通过该公网端口向A发送数据
  • 其他主机即使知道公网IP和端口也无法通信
  graph TD
    subgraph 内网
        A[内部主机A192.168.1.10:3000]
    end

    subgraph NAT设备
        N[IP受限型NAT18.18.0.10]
    end

    subgraph 外网
        S1[外部主机1155.99.24.2:8000]
        S2[外部主机213.13.0.10:1232]
    end

    A -->|建立连接| N
    N -->|允许| S1
    N -.->|拒绝| S2

    style A fill:#f9f,stroke:#333
    style N fill:#bbf,stroke:#333,color:#fff
    style S1 fill:#9f9,stroke:#333
    style S2 fill:#9f9,stroke:#333

端口受限型NAT

端口受限型NAT是限制性更强的一种锥形NAT。

工作原理:

  • 内部主机A向外部主机S1的特定端口发送数据后,NAT设备创建映射
  • 只有S1从相同IP和端口向A发送数据时,数据包才能通过
  • 即使S1从不同端口发送数据也会被拒绝

特点:

  • 比IP受限型更安全
  • 常见于现代路由器
  • P2P通信穿透难度增加
  graph TD
    subgraph 内网
        A[内部主机A192.168.1.10:3000]
    end

    subgraph NAT设备
        N[端口受限型NAT18.18.0.10]
    end

    subgraph 外网
        S1[外部主机1155.99.24.2:8000]
        S2[外部主机2155.99.24.2:8001]
    end

    A -->|向S1:8000发送| N
    N -->|允许S1:8000| A
    N -.->|拒绝S1:8001| A

    style A fill:#f9f,stroke:#333
    style N fill:#bbf,stroke:#333,color:#fff
    style S1 fill:#9f9,stroke:#333
    style S2 fill:#9f9,stroke:#333
内部连接标识 (内部主机A ->外部主机) 外部连接标识 (NAT公网IP ->外部主机)
192.168.1.5:5000 -> 1.1.1.1:80 2.2.2.2:6000 -> 1.1.1.1:80
192.168.1.5:5000 -> 3.3.3.3:80 2.2.2.2:6000 -> 3.3.3.3:80

对称型NAT

对称型NAT是最严格的NAT类型。

工作原理:

  • 每当内部主机A向不同的外部主机发送数据时,NAT设备都会分配不同的公网端口
  • 外部主机必须先收到A发给它的数据,然后才能向A发送数据
  • 即使知道公网IP和端口,也无法主动连接

特点:

  • 安全性最高
  • P2P通信最难穿透
  • 常见于企业级网络设备
  graph TD
    subgraph 内网
        A[内部主机A192.168.1.10:3000]
    end

    subgraph NAT设备
        N[对称型NAT18.18.0.10]
    end

    subgraph 外网
        S1[外部主机1155.99.24.2:8000]
        S2[外部主机213.13.0.10:1232]
    end

    A -->|向S1发送| N
    A -->|向S2发送| N
    N -->|不同端口| S1
    N -->|不同端口| S2

    style A fill:#f9f,stroke:#333
    style N fill:#bbf,stroke:#333,color:#fff
    style S1 fill:#9f9,stroke:#333
    style S2 fill:#9f9,stroke:#333
内部连接标识 (你的电脑 -> 目标) 外部连接标识 (NAT公网IP -> 目标) 备注
192.168.1.5:5000 -> 1.1.1.1:80 2.2.2.2:6000 -> 1.1.1.1:80 访问服务器 A,分配端口 6000
192.168.1.5:5000 -> 3.3.3.3:80 2.2.2.2:7000 -> 3.3.3.3:80 访问服务器 B,分配新端口 7000

各类型NAT安全性比较

NAT类型 安全性 穿透难度 适用场景
NAT1 - 全锥形 最低 最容易 P2P应用、PCDN
NAT2 - IP受限型 中等 中等 一般家庭网络
NAT3 - 端口受限型 较高 较难 现代路由器
NAT4 - 对称型 最高 最难 企业级网络

安全性排序: 对称型NAT > 端口受限型 > IP受限型 > 全锥形

大多数现代路由器采用端口受限型NAT,在安全性和功能性之间取得了良好平衡。全锥形NAT由于安全风险较高,已逐渐被淘汰。

总结

理解不同类型的NAT对于网络工程师、开发者和普通用户都非常重要。选择合适的NAT类型需要在安全性功能性性能之间进行权衡。

对于普通用户,现代路由器的默认设置通常已经足够安全和实用。对于需要P2P通信的应用开发者,则需要针对不同NAT类型实现相应的连接策略。

Licensed under CC BY-NC-SA 4.0
使用 Hugo 构建
主题 StackJimmy 设计