NAT:地址转换技术

为什么会引入NAT?

NAT(网络地址转换)的引入主要是为了解决两个问题

  1. IPv4地址短缺:互联网快速发展,可用的公网IP地址越来越少。
  2. 网络安全:需要一种方法来保护内部网络不被直接暴露在互联网上。

IPv4 & IPv6

IPv4使用32位地址,理论上可以提供约43亿个唯一地址

a) 私有地址范围:
10.0.0.0 到 10.255.255.255 (10/8 前缀)
172.16.0.0 到 172.31.255.255 (172.16/12 前缀)
192.168.0.0 到 192.168.255.255 (192.168/16 前缀)
b) 回环地址:127.0.0.0 到 127.255.255.255

IPv6使用128位地址,提供了一个极其庞大的地址空间,约340万亿亿亿亿个地址。IPv6的地址空间如此之大,以至于即使给地球上的每一粒沙子分配一个IPv6地址,也只会用掉很小一部分地址空间。

为什么不能引入IPv6来解决IP不够用?

IPv6的引入是为了从根本上解决IPv4地址短缺的问题。然而,尽管IPv6已经存在多年,但它并没有完全取代IPv4

因为IPv6的全面部署是一个缓慢的过程。网络设备、操作系统、应用程序都需要更新以支持IPv6。这个过程耗时很长,且成本较高。

虽然IPv6最终会解决地址短缺问题,但在完全过渡期间,NAT仍然扮演着重要角色:

  • 它允许组织在现有IPv4基础设施上继续运营。
  • 提供了IPv4到IPv6过渡的缓冲时间。
  • 在混合环境中,帮助IPv4和IPv6网络互相通信。

总之,虽然IPv6是长期解决方案,但NAT在当前和可预见的未来仍然非常重要,它为向IPv6的平滑过渡提供了必要的支持。/

NAT是什么?

网络地址转换 (NAT) 是一种将 IP 地址空间映射到另一个 IP 地址空间的方法,方法是在数据包通过流量路由设备传输数据包时修改数据包的 IP 标头中的网络地址信息。但无法路由网络的地址空间。面对 IPv4 地址耗尽,它已成为节省全局地址空间的流行且必不可少的工具。NAT 网关的一个 Internet 可路由 IP 地址可用于整个专用网络。 

NAT就像是一个翻译官,负责在内部网络和外部网络之间转换IP地址。想象一下,NAT是一个办公室的前台接待:

  • 当内部员工(内网设备)需要与外界通信时,前台会用公司的地址(公网IP)代替员工的个人地址(内网IP)。
  • 当外部人员(互联网)想要联系公司内部时,前台会将请求转发给相应的员工(内网设备)。

NAT可以干什么?

NAT有几个重要的功能:

a) 节省IP地址:允许多台内网设备共享一个公网IP地址。

b) 增强安全性:隐藏内部网络结构,减少直接攻击的可能。

c) 简化网络管理:可以更灵活地管理内部网络,而不影响外部通信。

d) 实现负载均衡:可以将incoming的流量分配到不同的内部服务器。

总的来说,NAT就像是网络世界的一个智能门卫,它既能帮助解决地址短缺的问题,又能提高网络的安全性和灵活性。


NAT mapping vs NAT filtering

NAT Mapping(NAT映射)

NAT mapping 定义了内部网络地址和端口如何映射到外部网络地址和端口。

主要类型包括:

a) Static (静态映射):

  • 一对一映射,内部IP总是映射到同一个外部IP。
  • 例如:内部IP 192.168.1.10 永远映射到外部IP 203.0.113.5。

b) Dynamic (动态映射):

  • 从一个IP池中动态分配外部IP。
  • 例如:内部IP可能在不同时间映射到不同的外部IP。

c) Port Address Translation (PAT):

  • 多个内部IP共享一个外部IP,通过修改端口号来区分不同的连接。
  • 这是最常见的形式,也称为NAT overload。

NAT Filtering(NAT过滤)

NAT filtering 决定了如何处理进入内部网络的数据包,主要关注安全性。

主要类型包括:

a) Endpoint-Independent Filtering:

  • 只要内部主机已经发起了连接,就允许任何外部主机向内部主机发送数据包。
  • 最宽松的过滤方式。

b) Address-Dependent Filtering:

  • 只允许内部主机曾经通信过的外部IP地址发送数据包回内部网络。
  • 提供了一定程度的安全性。

c) Address and Port-Dependent Filtering:

  • 最严格的过滤方式。
  • 只允许内部主机曾经通信过的特定外部IP和端口组合发送数据包回内部网络。

  1. NAT Mapping:
    • Static: 固定的一对一映射
    • Dynamic: 动态分配外部IP
    • PAT (Port Address Translation): 多个内部IP共享一个外部IP,通过端口区分
  2. NAT Filtering:
    • Endpoint-Independent: 允许任何外部主机发送数据包
    • Address-Dependent: 只允许已知IP地址发送数据包
    • Address and Port-Dependent: 只允许已知IP和端口组合发送数据包

主要区别


NAT 的类型

NAT可以分为三种类型:Source NAT、Destination NAT和Bidirectional NAT。具体取决于数据包的源或目标的IP地址是否被转换,这些是NAT(网络地址转换)的不同实现方式。

总结

  • SNAT主要用于内网访问外网。如:员工A(IP:192.168.1.15)想要访问 www.example.com(IP:93.184.216.34)
  • DNAT主要用于外网访问内网特定服务。如:外部用户想访问公司的网站 www.mycompany.com(指向203.0.113.10)
  • BiNAT用于解决复杂网络环境中的地址冲突。如:公司A的员工(IP:192.168.1.10)需要访问公司B的服务器(IP:192.168.1.20)

Source NAT (SNAT)

  • 定义:修改数据包的源IP地址。
  • 主要用途:允许私有网络中的设备访问互联网。
  • 工作原理:
    • 当内部设备发送数据包到外网时,SNAT将源IP地址从私有IP改为公网IP
    • 返回的数据包会自动被转换回原始的私有IP地址。
  • 优点:隐藏了内部网络结构,提高安全性。

示例:内网PC(192.168.1.10)访问网站时,路由器将源地址改为其公网IP(203.0.113.1)。

Destination NAT (DNAT)

  • 定义:修改数据包的目标IP地址。
  • 主要用途:允许外部网络访问内部网络中的特定服务。
  • 工作原理:
    • incoming数据包的目标地址从公网IP改为内网IP
    • 对应的回复数据包会自动被转换回公网IP。
  • 优点:可以在不暴露整个内网的情况下,提供特定的内部服务。

示例:外部请求访问Web服务器时,路由器将目标地址从公网IP(203.0.113.1:80)改为内网服务器IP(192.168.1.100:80)。

Bidirectional NAT (BiNAT)

目的: BiNAT主要用于连接两个使用重叠IP地址空间的网络,例如两个都使用192.168.1.x私有地址范围的公司网络。

BiNAT的主要优点是

  • 允许有重叠IP地址的网络进行通信
  • 适用于网络合并或VPN连接的场景
  • 提供了额外的安全层,因为外部网络无法直接看到内部网络结构

工作原理:在两个使用重叠IP地址空间的网络之间进行通信,同时执行源NAT和目标NAT。

  • 数据流向:对outgoing流量执行SNAT,对incoming流量执行DNAT。
    • 从网络A到网络B:
      • 源IP被转换(类似SNAT)
      • 目标IP被转换(类似DNAT)
    • 从网络B到网络A:
      • 同样进行源IP和目标IP的双向转换

Bidirectional NAT的工作原理示例

示例:两个使用相同私有IP范围(如192.168.1.x)的公司网络需要合并或通过VPN连接时

  1. 数据从网络A(192.168.1.10)发送到网络B(192.168.1.20)。
  2. 当数据包经过BiNAT设备时:
    • 源IP从192.168.1.10转换为10.0.0.1
    • 目标IP从192.168.1.20转换为10.0.0.2
  3. 当数据包进入网络B时:
    • 源IP从10.0.0.1转换为临时分配的IP 192.168.1.200
    • 目标IP从10.0.0.2转换回原始的192.168.1.20

这个过程允许两个使用相同私有IP地址范围的网络进行通信,同时避免了地址冲突。返回的数据包会经历相反的转换过程。

  • SRC(Source)指的是数据包的发送方或起始点的IP地址。
  • DST(Destination)指的是数据包的接收方或目标的IP地址。


NAT 的实现类型

  • 静态NAT:一对一的固定映射。
  • 动态NAT:从IP池中动态分配地址。
  • PAT/NAPT:多个内部IP共享一个公网IP,通过端口区分。

1. 静态NAT(Static NAT)

  • 定义:一对一的固定映射,内部IP地址与外部IP地址永久对应。
  • 用途:通常用于需要从外网访问的内部服务器。
  • 优点:配置简单,易于管理。
  • 缺点:需要为每个内部主机分配一个公网IP,不节省IP地址。

2. 动态NAT(Dynamic NAT)

  • 定义:从一个公网IP地址池中动态分配地址给内部主机。
  • 用途:适用于内部主机数量少于公网IP数量的情况。
  • 优点:比静态NAT更灵活,可以在多个内部主机间共享公网IP。
  • 缺点:仍然需要相当数量的公网IP,可能在高峰时段耗尽IP池。

3. NAPT (网络地址端口转换)

  • 定义:NAPT不仅转换IP地址,还转换端口号。它允许多个内网设备共享同一个公网IP地址,通过不同的端口号来区分不同的连接。
  • 用途:最常见的NAT实现,广泛用于家庭和小型办公室网络。
  • 优点:极大地节省公网IP地址,一个公网IP可以服务成百上千的内部主机。
  • 缺点:可能在某些应用程序中造成兼容性问题,特别是那些依赖特定端口的应用。
  •  3.1 对称NAT
    • 为每个内部连接创建一个唯一的外部映射。即使是相同的内部IP:端口对,如果目标不同,外部映射也会不同。
    3.2 锥形NAT
    • 完全锥形:一旦内部地址(iAddr:iPort)映射到外部地址(eAddr:ePort),所有发自iAddr:iPort的包都经由eAddr:ePort向外发送。任何外部主机都可以通过向eAddr:ePort发送包到达iAddr:iPort。
    • 受限锥形:类似于完全锥形,但仅允许iAddr:iPort之前发送过数据的外部主机通过eAddr:ePort到达iAddr:iPort。
    • 端口受限锥形:比受限锥形更严格,仅允许iAddr:iPort之前发送过数据的特定外部主机:端口组合通过eAddr:ePort到达iAddr:iPort。

补充说明

  • 基础NAT主要关注IP地址的转换,而NAPT则同时处理IP地址和端口号的转换。
  • 锥形NAT通常更有利于P2P应用和某些网络游戏,因为它们允许特定类型的入站连接。
  • 对称NAT提供了最高级别的安全性,但可能会影响某些应用程序的正常运行,尤其是那些依赖入站连接的应用。

NAT Server

  1. NAT服务器的作用: NAT服务器位于内部网络和外部网络(互联网)之间,负责转换IP地址和端口号,使得内部网络的设备能够与外部网络通信。
  2. 地址转换:
    • 内部服务器的IP是192.168.1.2(私有IP地址)
    • 外部访问者使用7.7.7.7(公网IP地址)来访问内部服务器
  3. 端口映射:
    • 外部访问者使用端口3535
    • 内部服务器实际使用端口80(通常是Web服务)
  4. 服务器映射表(Server Mapping Table):
    • 显示了NAT如何将外部请求映射到内部服务器
    • 对于任何源IP(S-IP: Any),从外部1.1.1.10:80来的TCP请求会被转发到内部的192.168.1.2:80
  5. 会话表(Session Table):
    • 记录了当前活跃的连接
    • 显示从7.7.7.7:3535来的TCP连接被映射到1.1.1.10:80,然后再转发到内部的192.168.1.2:80
  6. 双向通信: NAT服务器通过维护这些映射关系,确保了内外网络之间的双向通信可以正常进行。

这个NAT配置允许外部用户通过公网IP和特定端口访问内部的Web服务器,同时保护了内部网络的结构和真实IP地址。这是端口转发的一个典型应用,常用于允许外部访问内部托管的服务,如网站、游戏服务器等。


NAT实现的应用

如:智能家居系统,远程办公访问,多人游戏主机服务器,个人博客网站

Port forwarding

端口转发:端口转发是 NAT 的一种实现,当数据包通过网络网关(如路由器或防火墙)时,它将通信请求从一个地址和端口号组合转发到另一个地址和端口号组合。此技术最常用于使在专用网络上的主机上运行的应用程序服务可供公用网络(如 Internet)上的主机使用。正如设备需要 IP 才能在网络中被识别一样,设备上运行的服务(如 SMTP 或 FTP)也需要被识别以启用外部通信。端口号有助于识别这些服务,端口转发是使服务可供公共网络上的主机使用的技术。每当服务需要通信时,端口号都有助于识别设备上的正确目标/源,并有助于进行适当的数据传输

例子:IT支持远程访问

  • 远程员工通过互联网发起VPN连接到公司的公网IP(203.0.113.1)和VPN端口(1194)。
  • 公司路由器接收到VPN请求,使用NAT和端口转发。
  • 路由器将VPN流量转发到内部网络的VPN服务器(192.168.1.10:1194)。
  • 建立VPN连接后,远程员工可以安全地访问内部资源,如文件服务器。


参考

https://en.wikipedia.org/wiki/Network_address_translation#Implementation

What Is NAT? What Are the NAT Types? | FS Community

https://www.comparitech.com/net-admin/network-address-translation-overloading/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/42889.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

低通滤波以及卡尔曼滤波

先讲解几个低通滤波,低通滤波比卡尔曼滤波简单,因为卡尔曼滤波涉及到两个输入量,一个是控制量,一个是观测量,而低通滤波是一个输入量 1,利用工具箱配置低通滤波 参考地址:https://blog.csdn.net…

SystemUIService启动-Android13

SystemUIService启动-Android13 1、SystemUIService启动2、其他SystemUI services启动2.1 Dagger依赖注入2.2 Recents为例 1、SystemUIService启动 SystemUI启动&#xff0c;及其SystemUIService启动 <!-- SystemUi service component --><string name"config_s…

什么是海外仓管理自动化?策略及落地实施步骤指南

作为海外仓的管理者&#xff0c;你每天都面临提高海外仓运营效率、降低成本和满足客户需求的问题。海外仓自动化管理技术为这些问题提供了不错的解决思路&#xff0c;不过和任何新技术一样&#xff0c;从策略到落地实施&#xff0c;都有一个对基础逻辑的认识过程。 今天我们整…

重生奇迹mu的地图名

地图之一&#xff1a;勇者大陆 勇者大陆地处奇迹大陆中央。终年阴雨连绵&#xff0c;气候潮湿闷热。植物由充满黑暗阴森气氛的草地所构成。这里的NPC数量是所有地图中最多的。因为地步交通要冲&#xff0c;所以也是玩家聚集最多的地方。 这里是剑士、魔法师、魔剑士和圣导师初…

vue3关于在线考试 实现监考功能 推流拉流

vue3 关于在线考试 实现监考功能&#xff0c; pc端考试 本质是直播推流的功能 使用腾讯云直播: 在线文档 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><link rel"icon" href"/f…

永磁同步电机控制算法--最大转矩电流比控制(虚拟信号注入法)

目前&#xff0c;国内外相关学者对 MTPA 控制方法进行了一系列的理论研究与仿真分析。通过研究取得的成果综合来看&#xff0c;该控制方法主要有&#xff1a;直接公式计算法、曲线拟合法、查表法、搜索法、高频信号注入法以及参数辨识法等。 之前的文章中已经介绍了直接公式计…

对于“百模大战”,几乎所有大佬的口风都180 °大转变了?

文 | 智能相对论 作者 | 陈泊丞 在2024世界人工智能大会暨人工智能全球治理高级别会议产业发展主论坛上&#xff0c;百度创始人、董事长兼首席执行官李彦宏谈了些对于AI大模型的看法&#xff0c;语惊四座。 他先是指出&#xff0c;“百模大战造成了社会资源的巨大浪费&#x…

现在2024年网络安全真实情况还好就业吗?_2024年网络安全专业到底行不行了

2024年网络安全行业的前景看起来非常乐观。根据当前的趋势和发展&#xff0c;一些趋势和发展可能对2024年网络安全行业产生影响&#xff1a; 5G技术的广泛应用&#xff1a;5G技术的普及将会使互联网的速度更快&#xff0c;同时也将带来更多的网络威胁和安全挑战。网络安全专家…

java-spring boot光速入门教程(超详细!!)

目录 一、引言 1.1 初始化配置 1.2 整合第三方框架 1.3 后期维护 1.4 部署工程 1.5 敏捷式开发 二、SpringBoot介绍 spring boot 2.1 搭建一个spring boot工程 2.2 使用idea创建项目 2.3 在线创建姿势 2.4 项目的目录结构 2.5 项目的运行方式 2.6 yml文件格式 2…

分享外贸工作中常用英文标准表达和英文语句

常用英文表达 报拉格斯最低到岸价 quote the lowest price CIF Lagos经营纺织品多年 be in the line of textiles for many years货物受欢迎 the goods are very popular with customers / have met with a warm reception /be well received/accepted/ enjoy a wide populari…

Java线程死锁及解决方法

多线程环境下&#xff0c;死锁即两个或两个以上的线程去争夺同一个共享资源&#xff0c;而导致互相等待的情况。 要产生死锁&#xff0c;必须满足如下四个条件&#xff1a; 互斥条件&#xff0c;共享资源x和y只能被一个线程占有请求和保持条件&#xff0c;T1持有x&#xff0c…

解读BASE理论:高可用性与性能的完美平衡

Base概念 BASE 理论是一种处理大规模分布式系统中的数据一致性问题的思路。相比于传统的严格一致性&#xff0c;它更灵活&#xff0c;适用于那些需要高可用性和性能的系统。BASE 理论由三个部分组成&#xff1a; 基本可用&#xff08;Basically Available&#xff09; 基本可用…

利用亚马逊云科技云原生Serverless代码托管服务开发OpenAI ChatGPT-4o应用

今天小李哥继续介绍国际上主流云计算平台亚马逊云科技AWS上的热门生成式AI应用开发架构。上次小李哥分享​了利用谷歌云serverless代码托管服务Cloud Functions构建Gemini Pro API​&#xff0c;这次我将介绍如何利用亚马逊的云原生服务Lambda调用OpenAI的最新模型ChatGPT 4o。…

CSAL: the Next-Gen Local Disks for the Cloud——论文泛读

EuroSys 2024 Paper 论文阅读笔记整理 问题 云本地磁盘以其实惠的价格和高性能而极具吸引力。在云本地磁盘中&#xff0c;物理存储设备直接连接到计算服务器&#xff0c;并作为块设备虚拟化到虚拟机&#xff08;VM&#xff09;。在这种设置下&#xff0c;计算节点受其有限的计…

纯前端如何实现Gif暂停、倍速播放

前言 GIF 我相信大家都不会陌生&#xff0c;由于它被广泛的支持&#xff0c;所以我们一般用它来做一些简单的动画效果。一般就是设计师弄好了之后&#xff0c;把文件发给我们。然后我们就直接这样使用&#xff1a; <img src"xxx.gif"/>这样就能播放一个 GIF …

MPC学习资料汇总

模型预测控制MPC学习资料汇总 需要的私信我~ 需要的私信我~ 需要的私信我~ 【01】课件内容 包含本号所有MPC课程的课件&#xff0c;以及相关MATLAB文档。 【02】课件源代码 本号所有MPC课程的源代码。 【03】MPC仿真案例 三个MPC大型仿真案例&#xff1a; 1&#xff09;…

【数据结构】09.树与二叉树

一、树的概念与结构 1.1 树的概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树&#xff0c;也就是说它是根朝上&#xff0c;而叶朝下的。 根结点&#xff1a;根…

俯卧撑计数器(Python)

通过 MediaPipe 检测人体姿态&#xff0c;计算俯卧撑角度和计数&#xff0c;并在图像上进行可视化展示 需要有cv2库和mediapipe库 mediapipe库&#xff1a; MediaPipe是Google开源的机器学习框架&#xff0c;用于构建实时音频、视频和多媒体处理应用程序。它提供了一组预训练的…

一文清晰了解HTML

有这样一个txt记事本文件和一张图片&#xff1a; txt文本内容是这样的&#xff1a; <html><head><title>HTML学习</title></head><body><h1>hello HTML</h1><img src"高清修复.png"/></body> </html…

LabVIEW的JKI State Machine

JKI State Machine是一种广泛使用的LabVIEW架构&#xff0c;由JKI公司开发。这种状态机架构在LabVIEW中提供了灵活、可扩展和高效的编程模式&#xff0c;适用于各种复杂的应用场景。JKI State Machine通过状态的定义和切换&#xff0c;实现了程序逻辑的清晰组织和管理&#xff…