网络地址转换 (NAT)
网络地址转换 (NAT) 是什么?
网络地址转换 (NAT)路由器在转发数据包时改写 IP 地址和端口的技术,使大量内部主机能共享一个或少量公网地址。
网络地址转换将网络内部的私有 IP 地址映射为互联网上使用的公网地址,并在回程时还原。传统 NAT 及其相关术语在 RFC 3022 和 RFC 2663 中有所描述。最常见的变体 PAT(也称 NAT overload)同时改写源端口并维护一张以 5 元组为键的转换表,从而把数千台内部主机复用在单个公网地址之后。NAT 主要是为减缓 IPv4 地址枯竭而引入的,同时也隐藏内部拓扑、默认阻挡未经请求的入站流量,提供有限但有用的隐蔽性。
NAT 本身并不是一道安全边界。它会干扰把地址嵌入载荷的协议(SIP、FTP、IPsec),因此路由器内置了改写这些载荷的 Application Level Gateways (ALGs)。Samy Kamkar 在 2020 年提出的 NAT Slipstreaming 攻击(CVE-2020-28041)正是利用了这一点:网页中的恶意 JavaScript 诱使受害者的浏览器发送精心构造的数据包,使路由器的 SIP ALG 误读,从而向任意内部端口打开一个入站针孔。Chrome(v87.0.4280.141)和 Firefox(v85)发布了封堵被滥用端口的补丁,随后 Armis 的研究人员又公布了 v2.0 绕过方法。
防御措施:禁用不必要的 ALGs,将 NAT 与真正的有状态防火墙搭配使用,并记住 NAT 在 IPv6 中正逐渐淡出,因为那里每台主机都能拥有一个全局可路由的地址。
flowchart LR
subgraph LAN [Private network]
H1[192.168.1.10:51000]
H2[192.168.1.11:51001]
end
H1 --> N[NAT router<br/>translation table]
H2 --> N
N -->|src 203.0.113.5:40001| I[Internet]
N -->|src 203.0.113.5:40002| I● 示例
- 01
家用路由器将 192.168.1.0/24 客户端转换为 ISP 分配的唯一 IPv4 地址。
- 02
运营商级 NAT(CGNAT)让一台公网 IPv4 被数百个移动用户共享。
● 常见问题
网络地址转换 (NAT) 是什么?
路由器在转发数据包时改写 IP 地址和端口的技术,使大量内部主机能共享一个或少量公网地址。 它属于网络安全的 网络安全 分类。
网络地址转换 (NAT) 是什么意思?
路由器在转发数据包时改写 IP 地址和端口的技术,使大量内部主机能共享一个或少量公网地址。
如何防御 网络地址转换 (NAT)?
针对 网络地址转换 (NAT) 的防御通常结合技术控制与运营实践,详见上方完整定义。
网络地址转换 (NAT) 还有哪些其他名称?
常见的别称包括: NAT, PAT, NAT overload。