
NAT的四种类型
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模块根据这些状态执行的。”
具体流程示例
- 内网主机
192.168.1.100
访问8.8.8.8:80
,conntrack
记录状态为NEW
。 - iptables的NAT规则 在
POSTROUTING
链修改源IP为1.2.3.4:60000
,并更新conntrack
。 - 返回包
8.8.8.8:80 → 1.2.3.4:60000
到达时:- 内核查询
conntrack
,发现匹配ESTABLISHED
状态。 - 如果是对称NAT:进一步检查端口是否匹配会话。
- 如果是端口受限锥形NAT:检查
8.8.8.8:80
是否在记录中。
- 内核查询
- 最终决策:
- 通过
conntrack
验证后,内核决定是否转发或丢弃数据包。
- 通过
🌟 总结
conntrack
是“账本”:记录谁在和谁通信。- iptables/内核是“警察”:根据账本决定是否放行。