当前位置: 首页 > news >正文

NAT技术(网络地址转换)

NAT 是一种在 IP 网络中,通过修改 IP 数据包的源或目标地址信息,将一个地址空间映射到另一个地址空间的技术。

简单来说,NAT 就像一个公司或一栋大楼的总机接线员,它使得一个组织内部的所有设备可以使用“内部号码”(私有IP地址),但与外界通信时,都统一使用公司总机的“公共号码”(公有IP地址)。


一、为什么需要 NAT?—— 核心问题:IPv4 地址枯竭

互联网的基石是 IP 协议,而 IPv4 协议提供的 IP 地址数量约为 43 亿个。随着互联网的爆炸式发展,全球联网设备数量远超这个数字。如果每台手机、电脑、智能手表都分配一个独一无二的公网 IP 地址,地址早就用完了。

为了解决这个问题,人们划分出了两类 IP 地址:

  1. 公网 IP 地址 (Public IP):全球唯一,可以直接在互联网上被访问,由互联网服务提供商(ISP)分配,数量有限且需要付费。

  2. 私网 IP 地址 (Private IP):在一个局部范围(如你家、一个公司、一所学校)内使用,可以重复。你家里的 192.168.1.101 和我家的 192.168.1.101 互不影响。这些地址不能在公共互联网上被路由。

    • 常见的私网地址段:

      • 10.0.0.0 - 10.255.255.255

      • 172.16.0.0 - 172.31.255.255

      • 192.168.0.0 - 192.168.255.255

NAT 的诞生,就是为了让众多使用私网 IP 的设备,能够通过共享一个或少数几个公网 IP 地址来访问互联网。


二、NAT 是如何工作的?—— 接线员的比喻

我们用一个具体的例子来解释你家路由器(最常见的 NAT 设备)的工作流程。

  • 你的电脑: 私网 IP 192.168.1.100

  • 你的路由器: 它有两个地址,对内是私网地址 192.168.1.1,对外是运营商分配的公网 IP 120.50.60.70

  • 你想访问的网站: example.com (假设其公网 IP 为 93.184.216.34)

步骤 1:发送数据(内部员工打外线电话)
  1. 创建数据包: 你的电脑创建一个数据包,包头信息如下:

    • 源地址: 192.168.1.100:12345 (IP:端口号)

    • 目标地址: 93.184.216.34:80

  2. 路由器接收: 数据包发送到你的默认网关,也就是路由器。

  3. NAT 转换 (接线员操作): 路由器看到这是一个发往公网的数据包,于是执行 NAT 操作:

    • 它将数据包的源地址从你的私网 IP 替换成它自己的公网 IP。为了区分内部多台设备同时上网,它还会分配一个新的端口号。

    • 修改后的数据包:

      • 源地址: 120.50.60.70:55555 (路由器的公网IP:一个新的端口)

      • 目标地址: 93.184.216.34:80 (目标地址不变)

  4. 建立映射表 (接线员做笔记): 路由器内部会有一个 NAT 转换表,它会记录下这次转换,以便回来的数据能找到路:

内部地址 (私网)

外部地址 (公网)

192.168.1.100:12345

120.50.60.70:55555

  1. 发送到公网: 路由器将修改后的数据包发送到互联网。对于 example.com 服务器来说,它认为这个请求来自 120.50.60.70,完全不知道你 192.168.1.100 的存在。

步骤 2:接收数据(外线电话回拨)
  1. 服务器响应: example.com 服务器处理完请求,发回一个响应数据包。这个包的目标是请求的来源:

    • 源地址: 93.184.216.34:80

    • 目标地址: 120.50.60.70:55555

  2. 路由器接收: 你的路由器收到了这个从公网发来的数据包。

  3. 查询映射表 (接线员查笔记): 路由器查看数据包的目标地址 120.50.60.70:55555,然后去自己的 NAT 转换表里查询。

  4. 反向 NAT 转换: 它找到了匹配的记录,知道这个数据包是给 192.168.1.100:12345 的。于是它再次修改数据包:

    • 源地址: 93.184.216.34:80

    • 目标地址: 192.168.1.100:12345 (换回了你的电脑的私网地址)

  5. 转发到内网: 路由器将这个最终的数据包转发给你局域网内的电脑。你成功收到了网页内容。

三、NAT 的主要类型

  1. 静态 NAT (Static NAT)

    • 一对一映射:将一个私网 IP 地址永久地、唯一地映射到一个公网 IP 地址。

    • 用途:通常用于需要从外部直接访问的内部服务器,比如公司的网站服务器或邮件服务器。这并没有节省 IP 地址,但能隐藏内部真实 IP。

  2. 动态 NAT (Dynamic NAT)

    • 多对多映射:有一个公网 IP 地址池,内部设备需要上网时,就从池中临时租用一个公网 IP。用完后释放,供其他设备使用。

    • 用途:适用于内部设备数量大于可用公网 IP 数量,但同时上网设备不多的情况。

  3. PAT (Port Address Translation) 或 NAPT

    • 多对一映射:这是最常见、最主流的一种 NAT,也叫“地址过载 (Overloading)”。我们上面详细解释的例子就是 PAT。

    • 它将多个私网 IP 地址映射到同一个公网 IP 地址的不同端口号上,通过端口号来区分不同的内部设备和会话。你家里的路由器使用的就是这种技术。


四、NAT 的优缺点

优点

  • 缓解 IPv4 地址耗尽:这是它最核心的贡献,极大地延长了 IPv4 的生命周期。

  • 增强网络安全:NAT 设备像一个天然的防火墙。由于外部网络无法直接知道你内部设备的私网 IP,也无法主动发起连接(因为 NAT 表里没有映射记录),这在很大程度上保护了内部网络免受外部的直接攻击。

缺点

  • 破坏了端到端连接模型:互联网设计的初衷是任何两个节点都可以直接通信。NAT 的存在使得位于 NAT 后面的设备无法轻易地被外界直接访问,破坏了这一原则。

  • 影响 P2P 应用:像在线游戏、视频会议、BT 下载等需要建立点对点(Peer-to-Peer)连接的应用会变得非常困难。因为双方都可能在 NAT 后面,谁也无法主动连接谁。这催生了像 STUN/TURN/ICE 这样的“NAT 穿透”技术。

  • 处理某些协议时会出问题:有些协议(如 FTP 的一部分)会在其数据载荷中包含 IP 地址信息,标准的 NAT 设备可能无法识别并修改这些信息,导致协议工作不正常。

总结

NAT 是一项为了应对 IPv4 地址短缺而发明的伟大“变通”技术。它通过扮演一个“中间人”或“接线员”的角色,成功地让大规模的私有网络共享有限的公网资源。尽管它带来了一些副作用,但在 IPv6(拥有近乎无限的地址空间,旨在消除对 NAT 的需求)完全普及之前,NAT 仍然是支撑现代互联网运作不可或缺的关键技术。

http://www.dtcms.com/a/272254.html

相关文章:

  • 【实战】使用 ELK 搭建 Spring Boot Docker 容器日志监控系统
  • OSPF实验以及核心原理全解
  • 【SkyWalking】配置告警规则并通过 Webhook 推送钉钉通知
  • HP EVA SAN 数据恢复利器:Data recovery plugin for HP StorageWorks EVA
  • 前端项目集成husky + lint-staged + commitlint
  • Web-Bench:基于web标准和框架的benchmark
  • Fiddler中文版全面评测:功能亮点、使用场景与中文网资源整合指南
  • 什么是强化学习(RL)--2
  • 如何在VMware里的飞牛OS访问主机里面图片文件夹
  • 【运维实战】解决 K8s 节点无法拉取 pause:3.6 镜像导致 API Server 启动失败的问题
  • 【EGSR2025】材质+扩散模型+神经网络相关论文整理随笔(三)
  • 华为昇腾NPU与NVIDIA CUDA生态兼容层开发实录:手写算子自动转换工具链(AST级代码迁移方案)
  • 缓存穿透与击穿多方案对比与实践指南
  • 设计模式的六大设计原则
  • AI问答之手机相机专业拍照模式的主要几个参数解释
  • 【笔记】使用 html 创建网址快捷方式
  • 达梦数据库DMDRS搭建单向dm8-dm8数据同步
  • 【工具教程】批量提取OCR图片中固定文字保存WPS表格,批量OCR识别图像中的文字保存到Excel表格的操作步骤和注意事项
  • 虚拟环境已安装该包,且已激活,但报错
  • 智能体的记忆系统:短期记忆、长期记忆与知识图谱
  • Spring for Apache Pulsar->Reactive Support->Quick Tour
  • 【LeetCode100】--- 1.两数之和【复习回滚】
  • 氢能源杂谈
  • 深入拆解Spring核心思想之一:IoC
  • 天津医大用网络药理学+分子对接发表中科院二区IF5
  • 【Python】基于Python提取图片验证码
  • SYM32第二十天 ESP8266-01S和电脑实现串口通信(3)
  • 羊肚菌自动采收车设计cad【7张】+三维图+设计说明书
  • 电脑息屏工具,一键黑屏超方便
  • 双esp8266-01之间UDP透传传输,自定义协议