NAT简介

devtools/2024/10/15 5:37:51/

一、NAT 概念定义

NAT(Network Address Translation,网络地址转换)是一种将私有 IP 地址转换为公有 IP 地址的技术。

  • 允许一个组织内部使用私有 IP 地址的网络通过少量的公有 IP 地址连接到互联网。
  • 实现了私有网络与外部网络的通信,同时节省了公有 IP 资源。
  • 在转换过程中,通常会对数据包的源 IP 地址或目的 IP 地址进行修改。
  • 帮助解决了 IPv4 地址资源有限的问题。
  • 使得多个内部设备可以共享一个或几个公有 IP 地址上网。
  • 可以增强内部网络的安全性,一定程度上隐藏了内部网络的结构。

二、NAT 工作原理

到达-检查-转换-转发

  • 当内部网络中的设备要与外部网络通信时,数据包到达 NAT 设备。
  • NAT 设备会检查数据包的源 IP 地址,
    • 如果是私有 IP 地址,就会根据设定的规则进行转换。
    • 对于源 IP 地址,将其替换为 NAT 设备所拥有的公有 IP 地址。
    • 还会根据具体的 NAT 类型(如 NAPT)对源端口进行转换,形成唯一的映射关系。
  • 转换后的数据包被发送到外部网络
  • 当外部网络的响应数据包返回时,NAT 设备根据之前记录的映射关系,将目的 IP 地址和端口转换回内部设备的私有 IP 地址和端口。
  • 将数据包转发给内部的相应设备。

三、NAT 三种类型

源NAT:

  • 对报文中源地址转换,用于私网访问公网。
  • 私网发送的报文到达NAT设备后,将报文中的私网IPv4地址转换成公网IPv4地址。

目的NAT:

  • 对目的地址和目的端口号转换,用于公网访问私网。
  • 公网发送的报文到达NAT设备后,将报文中的公网IPv4地址转换成私网IPv4地址。

双向NAT:

  • 同时转换报文的源信息和目的信息。
  • 源NAT和目的NAT的组合,外网访问内部服务器和私网访问内部服务器。

四、NAT 优点缺点

NAT 的优点:

  • 节省公网 IP 资源,可让大量内部设备通过少量公网 IP 与外部通信。
  • 一定程度上增强了内部网络的安全性,隐藏了内部网络的结构。
  • 方便网络管理和地址规划。

NAT 的缺点:

  • 某些应用可能会受到影响,如需要端到端 IP 地址可见的应用。
  • 可能导致网络延迟增加。
  • 网络故障排查增加了一定复杂性。
  • 与某些新兴网络技术的兼容性可能存在问题。

五、NAT 常见应用

  • 家庭网络:家庭中的多台设备通过路由器连接到互联网,路由器通常会使用 NAT 功能。
  • 小型企业网络:实现内部设备共享少量的公网 IP 地址。
  • 大型企业网络:用于不同区域的地址规划和网络隔离。
  • 云环境:保障云内网络与外部的通信。
  • 移动网络:如手机通过移动网络上网时,运营商网络中可能会用到 NAT。
  • 虚拟专用网络(VPN):在 VPN 连接中可能会涉及 NAT 操作来处理地址转换。
  • 分支机构网络:方便分支机构与总部网络或其他分支机构之间的通信。

六、NAT 未来发展

  • 与 IPv6 融合:随着 IPv6 的逐步推广,NAT 技术可能会在 IPv4 与 IPv6 共存的过渡时期继续发挥作用,以实现两者之间的平稳衔接和转换。
  • 智能化:变得更加智能,能够根据不同的应用需求和网络状况进行更精细、动态的地址转换策略调整。
  • 适应新应用和技术:不断适应新兴的网络应用和技术,如物联网、5G 等,确保这些场景下的地址转换需求得到满足。
  • 性能优化:持续进行性能提升,降低延迟和资源消耗,以更好地支持高带宽、低延迟的网络业务。
  • 安全增强:在保障地址转换功能的同时,进一步强化其在网络安全方面的作用,抵御更多复杂的网络攻击。
  • 与云计算紧密结合:在云计算环境中深度整合,为云服务提供高效的地址转换支持。

七、STUN NAT类型

  • UDP Blocked:位于防火墙之后,防火墙阻止了 UDP 通信。
  • Open Internet:公网 IP,允许主动发起和被动响应两种方式的 UDP 通信。
  • Symmetric Firewall:公网 IP,位于防火墙之后,防火墙阻止了外部主机的主动 UDP 通信。
  • Full Cone NAT:内网主机首次用 UDP socket 发数据包时,NAT 分配固定公网{IP:端口},之后该 socket 发的包都经此发送,且任何外部主机都可经此向该 socket 发包,NAT 维护内网到公网及外部主机到内网的映射。
  • Restricted Cone NAT:类似 Full Cone NAT,但需内部主机先向外发后外部主机才能收到其发至公网地址端口的数据报。
  • Port Restricted Cone NAT:类似 Restricted Cone NAT,但端口号需相同。
  • Symmetric NAT:相同内部 IP 地址和端口号对特定目的 IP 地址和端口号请求映射到相同公网 IP 地址和端口,同一主机不同源地址和端口对不同目的地址则有不同映射,外部主机收到 IP 包后才可向内发回 UDP 包,且为新会话分配新端口号。


http://www.ppmy.cn/devtools/44915.html

相关文章

NBM 算法【python,算法,机器学习】

朴素贝叶斯法(Naive Bayes model)是基于贝叶斯定理与特征条件独立假设的分类方法。 贝叶斯定理 P ( A ∣ B ) P ( B ∣ A ) ∗ P ( A ) P ( B ) P(A|B)\frac{P(B|A) * P(A)}{P(B)} P(A∣B)P(B)P(B∣A)∗P(A)​ 其中A表示分类,B表示属性&…

【前端Vue】——课堂笔记(二)

💻博主现有专栏: C51单片机(STC89C516),c语言,c,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux&#xf…

如何从异步调用中返回响应

想象一下,你打电话给朋友并让他帮你查一些资料。虽然这可能需要一段时间,但你会在电话里等待,直到朋友给你需要的答案。这就是同步调用的行为: function findItem() {var item;while (item_not_found) {// 查找}return item; }var item = findItem(); // 使用 item doSome…

JavaScript base64 与 File 之间的互转

JavaScript base64 与 File 之间的互转 一、base64 > File 在 JavaScript 中,可以使用 Blob 对象将 base64 字符串转换为 File 对象。 方法一、base64 直接转换为 File 对象: 首先, 需要从 base64 字符串中获取文件类型, 然后将文件类型和 base64…

react antd table表格如何获取当前行id

组件库上都有详细的介绍,有自带的一些属性!

Redis 主从复制

前言 在分布式系统中为了解决单点问题,通常会把数据复制多个副本部署到其他服务器,满⾜故障恢复和负载均衡等需求。Redis 也是如此,它为我们提供了复制的功能,实现了相同数据的多个 Redis 副本。复制功能是⾼可⽤ Redis 的基础&am…

家政预约小程序10公众号集成

目录 1 使用测试号3 工作流配置4 配置关注事件脚本5 注册开放平台6 获取公众号access_token6 实现关注业务逻辑总结 我们本次实战项目构建的相当于一个预约平台,既有家政企业,也有家政服务人员还有用户。不同的人员需要收到不同的消息,比如用…

Kubernetes 之 ReplicaSet

Kubernetes 之 ReplicaSet ReplicaSet 定义 ReplicaSet 是 Kubernetes 中的一种副本控制器,其主要作用是控制其管理的 Pod 的预设副本数量。它会持续监听这些 Pod 的运行状态,在Pod发生故障时执行重启策略,当 Pod 数量减少时会重新启动新的…