NAT的四种类型

参考文章:

NAT的四种分类:全锥形NAT,地址受限锥形NAT,端口受限锥形NAT,对称NAT

Full cone NAT(全锥形NAT)

所有从同一个内网的(IP,端口)发送出来的请求都会被映射到同一个外网(IP,端口),且任何一个外网主机都可以通过访问映射后的公网地址,实现访问位于内网的主机设备功能。

外网主机可以主动连接内网主机。

Restricted Cone NAT(地址受限锥形NAT)

所有从同一个内网的(IP,端口)发送出来的请求都会被映射到通过一个外网(IP,端口),但与全锥形不同点在于:生成的映射表项与目的IP有关,只有符合要求的目的IP(要访问的公网服务器IP)才可以通讯。此NAT还有个特点:不能主动连接内网中的主机地址,连接必须由内网地址发起。

限制比全锥形NAT多了:IP地址限制。

此类型NAT除了与源IP和源端口相关外,还与目的IP有关,只有内网主机主动连接的公网IP才可以与内网中的主机通讯。

在这里插入图片描述

Port Restricted Cone NAT(端口受限锥形NAT)

所有从同一个内网的(IP,端口)发送出来的请求都会被映射到通过一个外网(IP,端口),但是在地址受限锥形NAT基础上增加了端口的限制。

地址受限锥形NAT时,只有内网主机主动连接的公网主机才可与之进行通讯,而不用担心端口号是否与请求的端口相同。

但是端口受限锥形NAT除了IP限制外,增加了端口限制。意思是说:除了之前主动连接了主机的(IP,port1,)可以通讯,其他的(IP,port2)等都不可以与之通讯。此NAT映射与报文的三元组绑定

在这里插入图片描述

Symetric NAT(对称NAT)

所有从同一个内网(IP,端口)发送到同一个目的IP和端口的请求都会被映射到同一个IP和端口。换句话说(SIP,Sport, DIP, Dport)只要有一个发生变化都会使用不同的映射条目,即此NAT映射与报文四元组绑定。

  • SIP: Source IP,源IP地址
  • Sport: Source Port,源端口
  • DIP: Destination IP,目的IP地址
  • Dport: Destination Port,目的端口

在这里插入图片描述

“流量过滤的过程依赖 conntrack 维护的连接状态记录,但实际的过滤行为是由iptables/nftables规则或内核NAT模块根据这些状态执行的。”

具体流程示例

  1. 内网主机 192.168.1.100 访问 8.8.8.8:80conntrack 记录状态为 NEW
  2. iptables的NAT规则POSTROUTING 链修改源IP为 1.2.3.4:60000,并更新 conntrack
  3. 返回包 8.8.8.8:80 → 1.2.3.4:60000 到达时:
    • 内核查询 conntrack,发现匹配 ESTABLISHED 状态。
    • 如果是对称NAT:进一步检查端口是否匹配会话。
    • 如果是端口受限锥形NAT:检查 8.8.8.8:80 是否在记录中。
  4. 最终决策
    • 通过 conntrack 验证后,内核决定是否转发或丢弃数据包。

🌟 总结

  • conntrack 是“账本”:记录谁在和谁通信。
  • iptables/内核是“警察”:根据账本决定是否放行。