网络基础 10 NAT协议
目录
10.NAT协议
NAT网络地址转换(Network Address Translation)属接入广域网(WAN)技术,是一种将私有(保留)地址转化为合法IP地址的转换技术
NAT协议的重点内容
- IPv4地址不够用(约43亿)所以需要NAT,同时NAT可以隐藏内网拓扑结构以提高安全性
- NAT是通过地址转换实现内网设备与公网通信的机制,端口复用(PAT)是NAT的一种实现方式,也是NAT的核心,通过端口复用,单个公网IP可支持成千上万的内网设备并发访问,极大缓解IPv4地址短缺问题。现在一般都用PAT作为默认的NAT模式
- 动态静态映射的区别
- 锥形NAT的穿透差异(NAT的行为模式)
通俗比喻:小区快递收发室
想象你住在一个小区(内网),每户有私有门牌号(如192.168.1.100
),但对外只用小区大门地址(公网IP如120.80.70.1
)。
核心功能:
- 地址复用:通过公网IP地址池或端口号区分内网设备。
- 安全隔离:隐藏内网拓扑,防止外部直接访问内网设备。
NAT的分类与技术原理
- 静态NAT
- 特点:一对一固定映射(内网IP ↔ 公网IP)。
- 优点:支持双向通信(内网可访问外网,外网也可主动访问内网)。
- 缺点:浪费公网IP资源,仅适合对外服务(如Web服务器)。
- 动态NAT
- 特点:从公网IP池中动态分配地址(多对多映射)。
- 地址池管理:预先配置一组公网IP地址(如10个),形成“地址池”。
- 按需分配:当内网设备(如20台机器)需要访问外网时,动态NAT从地址池中 随机分配一个公网IP 与内网IP绑定。
- 会话结束后释放:内网设备断开连接后,公网IP被释放回地址池,供其他设备使用
- 限制:公网IP池需足够大,且仅支持内网访问外网。
- 多对多映射:动态NAT允许多个内网IP共享多个公网IP(地址池中的IP数量通常少于内网设备数量)。
- 例如:10个公网IP → 20台内网设备(动态分配,按需使用)。
- 一对一绑定:每个会话(内网IP → 公网IP)是一对一的,但公网IP是动态分配的(非固定)
- 多对多映射:动态NAT允许多个内网IP共享多个公网IP(地址池中的IP数量通常少于内网设备数量)。
- 应用场景:企业内网用户临时访问互联网。
- 特点:从公网IP池中动态分配地址(多对多映射)。
- PAT(端口地址转换,Port Address Translation)
- 特点:多对一映射,通过端口号区分会话(NAPT)。
- 核心机制:
- 内网设备访问外网时,NAT设备修改源IP为公网IP,并分配唯一端口号。
- 外网返回数据包时,根据公网IP和端口号匹配到内网设备。
- 优势:极大节省公网IP资源(单个公网IP可支持数千设备)。
- 典型应用:家庭路由器、小型办公室网络。
- Easy IP
- 特点:直接使用路由器出口接口的公网IP进行转换,无需额外地址池。
- 应用场景:家庭宽带、中小企业上网(无需手动配置地址池)。
NAT的优缺点与限制
- 优点
- 节省公网IP资源:通过PAT实现多对一转换。
- 增强安全性:内网地址对外不可见。
- 简化网络管理:内网可自由规划私有地址。
- 缺点与限制
- 无法支持所有协议:部分协议(如FTP、SIP)依赖IP地址传递,需特殊处理。
- 限制P2P通信:对称NAT或严格防火墙可能导致P2P连接失败。
- 增加延迟:地址转换过程可能引入轻微性能开销。
- NAT穿透技术
- STUN/ICE/UPnP:用于解决P2P通信中的NAT穿透问题。
- 中继服务器:通过第三方服务器转发数据(如WebRTC中的TURN)。
应用场景
- 家庭/企业上网
- PAT:家庭路由器共享一个公网IP。
- Easy IP:中小企业低成本接入互联网。
- 对外服务发布
- 静态NAT/DNAT:Web服务器、邮件服务器需固定公网IP。
- 网络安全防护
- 动态NAT:隐藏内网设备,防止外部扫描。
- IPv4/IPv6过渡
- 双栈/NAT-PT:平滑迁移至IPv6环境。
扩展
锥形NAT的分类是NAT设备行为模式的描述(“外部设备访问内网主机” 的安全策略),而静态/动态/PAT是NAT的实现方式
NAT类型 | 是否支持锥形NAT | 说明 |
---|---|---|
静态NAT | ✅ | 静态NAT通常表现为 全锥形NAT(固定公网IP和端口),因为映射关系固定。 |
动态NAT | ✅ | 动态NAT可能表现为 地址受限锥形NAT(公网IP动态分配,但限制外部IP)。 |
PAT(端口地址转换) | ✅ | PAT通常表现为 端口受限锥形NAT 或 对称NAT(通过端口号严格限制访问)。 |
锥形NAT
- 全锥形NAT(Full Cone NAT):
- 一旦内网主机A通过某个公网IP和端口(如
120.26.143.x:50001
)与外网通信,NAT设备会为该内网主机创建一个固定的映射(120.26.143.x:50001 → 内网IP:端口
)。 - 任何外部主机(如B、C等)均可通过
120.26.143.x:50001
访问内网主机A。
- 一旦内网主机A通过某个公网IP和端口(如
- 地址受限锥形NAT(Address-Restricted Cone NAT):
- 只有 内网主机A曾主动通信的外部IP地址(如B的IP)才能通过
120.26.143.x:50001
访问内网主机A。 - 限制条件:内网主机A访问过外网主机B的IP+端口,B在访问A时判断这个
IP
是不是A访问过的,是访问过的就可以访问A
- 只有 内网主机A曾主动通信的外部IP地址(如B的IP)才能通过
- 端口受限锥形NAT(Port-Restricted Cone NAT):
- 在地址受限的基础上,进一步限制 外部主机的端口。
- 限制条件:内网主机A访问过外网主机B的IP+端口,B在访问A时判断这个
IP+端口
是不是A访问过的,是访问过的就可以访问A - 与对称NAT区分:端口受限锥形NAT,不管内网主机A要和多少个外网主机通信,都只给a分配一个
固定的公网ip+端口
,外网主机访问这个端口时去判断外网主机的ip+端口是不是主机a发起过请求的
- 对称NAT(Symmetric NAT):
- 每次内网主机A与不同的外部ip+端口(
IP外:port
)通信时,都给A分配一个公网IP+端口(IP内:port
,通常用对称NAT时是PAT,所以公网IP固定而端口动态分配),当外部主机想访问A时,只能通过当时A访问它时用的IP内:port
才能访问到A,即四元组固定 - 限制条件:外部主机的IP和端口必须与内网主机A的原始请求完全一致,且每次连接的映射独立
- 与端口受限锥形NAT区别:访问每一个不同的外网IP+端口时,都会给A分配一个公网IP+端口,然后外网主机B想访问A时判断A和B此时的四元组对不对
- 四元组(SIP, DIP, Sport, Dport)固定是对称NAT的核心绑定规则:
- SIP:Sport:内网主机A的
源IP+源端口
- DIP:Dport:A主动发送请求的
目的IP+目的端口
- eIP:ePort:NAT分配的
公网IP+端口
- 结论:
- 四元组中的任意一项变化(如目标IP或Dport不同),都会导致NAT分配不同的(eIP:ePort)。
- 四元组固定 是指外部主机回传数据包时,必须使用与A主动发送请求时相同的(DIP:Dport)和(eIP:ePort)。
- SIP:Sport:内网主机A的
- 每次内网主机A与不同的外部ip+端口(