NAT四种模式的简单解释
什么是 NAT?
NAT 代表网络地址转换,允许多个内网设备共享一个公网 IP 地址,使内网设备能够与外部互联网通信,主要是为了解决IPV4地址不足的问题,NAT通常部署在路由器上。 NAT 在正常的网页浏览、观看视频没太大问题,主要影响在 P2P 连接上,对游戏、下载、视频通话等应用,会受到不同 NAT 类型的影响。
NAT类型 | 外部访问规则 | 对应的 NAT 模式 |
---|---|---|
NAT1(全锥形) | 任何外部主机都可以直接访问内网设备的任意端口。 | Static,静态NAT |
NAT2(受限锥形) | 只有发送过请求的外部主机才能访问内网设备的任意端口。(限制源地址) | No-PAT,NAT时只转换地址,不转换端口 |
NAT3(端口受限锥形) | 只有发送过请求的外部主机才能访问内网设备的指定端口(限制源地址,且要求被访问的端口和发送过请求的源端口相同)。 | PAT-EIM |
NAT4(对称型) | 每次与外部主机通信时,都会分配不同的端口,且只有发送过请求的外部主机才能访问内网设备的指定端口。 | PAT-APDM |
什么是 PAT?
PAT(Port Address Translation)是一种NAT动态转换方式。PAT 方式下,一个 NAT 地址可以同时分配给多个内网地址共用,NAT 设备需要对报文的 IP 地址和传输层端口同时进行转换。
目前,PAT 支持两种不同的地址转换模式:
Address and Port-Dependent Mapping(关心对端地址和端口转换模式,APDM)
:对于来自相同源地址和源端口号的报文,相同的源地址和源端口号并不要求被转换为相同的外部地址和端口号,若其目的地址或目的端口号不同,通过 PAT 映射后,相同的源地址和源端口号通常会被转换成不同的外部地址和端口号。与 Endpoint-Independent Mapping 模式不同的是,NAT 设备只允许这些目的地址对应的外部网络的主机可以通过该转换后的地址和端口来访问这些内部网络的主机。这种模式安全性好,但由于同一个内网主机地址转换后的外部地址不唯一,因此不便于位于不同 NAT 网关之后的主机使用内网主机转换后的地址进行互访。
Endpoint-Independent Mapping(不关心对端地址和端口转换模式,EIM)
:只要是来自相同源地址和源端口号的报文,不论其目的地址是否相同,通过 PAT 映射后,其源地址和源端口号都被转换为同一个外部地址和端口号,该映射关系会被记录下来并生成一个 EIM 表项;并且 NAT 设备允许所有外部网络的主机通过该转换后的地址和端口来访问这些内部网络的主机。这种模式可以很好的支持位于不同 NAT 网关之后的主机进行互访。
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现