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.xdnf.cn/news/1475210.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

王老师 linux c++ 通信架构 笔记(一)linux虚拟机的安装

(0)本门课程会涉及很多知识。在此集中记录,做笔记,也可能加入别的专栏。 (1) vmware 15 的下载和密钥上网查找。 ubuntu - 16 - 04 的版本才 800 M ,来 csdn 找镜像 下载。 (2&#…

23款奔驰S400升级原厂后排电动座椅调节有哪些功能

奔驰 S400 商务版升级后排电动座椅后,通常会具备以下功能: • 电动调节功能:可以通过按钮或控制面板来调节座椅的前后、上下、倾斜等位置,以获得最佳的舒适度。 • 座椅加热功能:在寒冷的天气中,座椅加热…

计算机网络之令牌环

1.令牌环工作原理 令牌环(Token Ring)是一种局域网(LAN)的通信协议,最初由IBM在1984年开发并标准化为IEEE 802.5标准。在令牌环网络中,所有的计算机或工作站被连接成一个逻辑或物理的环形拓扑结构。网络中…

jvisualvm工具使用--添加远程监视

jvisualvm简介 jvisualvm该工具位于jdk的bin目录下,是jdk自带的可用于监控线程、内存情况、查看方法的CPU时间和内存中的对 象、已被GC的对象、反向查看分配的堆栈等,即:Java虚拟机监控、故障排查及性能分析工具。 远程监控方法 以windows端…

直面生产制造的8大核心痛点

1.制造部门的计划紊乱问题 1.1计划的重要性与常见缺陷 计划是制造部门高效运作的前提。在实际运作中,计划的缺失或不周会导致生产效率的大幅降低。常见缺陷包括: -缺乏综合的生产计划,过分依赖销售计划,忽视生产和采购的实际能…

一文学会 BootStrap

文章目录 认识BootStrap历史优缺点使用注意安装CDN源码引入包管理器 媒体查询屏幕尺寸的分割点(Breakpoints)响应式容器网格系统基本使用底层实现.container.row.col、.col-份数 网格嵌套自动布局列 Auto-layout响应式类 Responsive Class 响应式工具类-…

WAIC2024 上海 | Gooxi 全面展示智算新成果,加速人工智能落地应用

浦江之畔,大咖云集;智能浪潮,奔涌不息。7月4日,被誉为人工智能界风向标的世界人工智能大会暨人工智能全球治理高级别会议在上海盛大召开,Gooxi此次携最新AI服务器以及解决方案参与,以算为擎赋能新质生产力&…

花朵短视频:四川江兴川丰科技有限公司

花朵短视频:绽放于屏幕间的自然诗篇 在快节奏的现代生活中,我们常常渴望一抹清新与宁静,以慰藉心灵的疲惫。而花朵短视频,就像是大自然精心编织的一首首无声诗篇,四川江兴川丰科技有限公司通过手机屏幕的方寸之间&…

vue3+ts 重复参数提取成方法多处调用以及字段无值时不传字段给后端

参数提取前的写法,此写法值为空的时候也会传空字段给后端 会把无值的空字段传给后端 修改后的写法,不会把没有值的字段传给后端 // 列表和导出需要传给后端的公共参数(加 || undefined即可过滤空字段) const getCurentParam () …

举例说明深拷贝和浅拷贝

概述 简单描述一下对象的实例化过程。 创建对象的时候,或者说在实例化对象的时候 Person 类有年龄和学生类 int age 18; Student stu1 new Student(); 比如此时创建一个 age 对象,一个Student 对象,在虚拟机中,会在堆中开一…

基于mmap的读写工具封装案例

文章目录 注意事项C封装示例添加构造函数重载以支持追加模式支持文件大小动态变化异常安全性和资源泄漏预防提供更高级的数据访问接口示例代码改进 在很多高性能应用中,直接使用内存映射文件(mmap)进行文件的读写操作可以显著提高效率&#x…

工业4.0视角下:PLC转OPC UA网关的作用

在工业自动化领域,PLC(可编程逻辑控制器)是常见的控制设备,而OPC UA(开放型工业自动化统一架构)协议则是一种现代化的通信协议,用在工厂自动化系统中实现设备之间的数据交换和通信。PLC转OPC U…

极品AI大模型,抓紧收藏!整合包!

近期,科技巨头谷歌终于发布了1个月前在I/O开发者大会上预告过的Gemma 2大模型。据谷歌介绍,与第1代Gemma模型相比,新模型拥有更优的性能,推理效率也更高。我当然是,“无所谓,我会出手.jpg”,给大…

主数据深度剖析与实际应用

主数据深度剖析与实际应用 想象一下,你正在经营一家跨国连锁咖啡店。每天,全球数千家门店都在使用你的品牌,制作相同的饮品,为客户提供服务。但是,你突然发现一个问题:纽约的"拿铁"和东京的"拿铁"配方似乎不太一样。更糟糕的是,你的线上菜单和实体店菜单显…

最简单的浏览器插件启用github双因素身份验证 (2FA)方法

在github贡献一定的代码量后,github会要求启用双因素身份验证,否则登录会受到影响。一般有短信验证,app扫码验证,这里推荐一种最简单的方式,用浏览器插件验证。 首先,在edge浏览器的微软插件商店&#xff0…

人工智能赋能智慧园区,构建未来城市的科技典范

智慧工地视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上…

【免费资料】IEEE33节点系统参数及拓扑图visio

主要内容 对于初学配电网的同学,最经典的系统即是33节点配电网系统,在各个研究文献中出现频次最高的也是这个系统,为了让大家更好了解33节点系统参数,本次整理了系统节点、支路参数excel以及33节点网络拓扑图visio&#xff0c…

20240708 每日AI必读资讯

🤖破解ChatGPT惊人耗电!DeepMind新算法训练提效13倍,能耗暴降10倍 - 谷歌DeepMind研究团队提出了一种加快AI训练的新方法——多模态对比学习与联合示例选择(JEST),大大减少了所需的计算资源和时间。 - JE…

探索企业信用巅峰:3A企业认证的魅力与价值

在现代商业环境中,企业的信用和信誉是其发展的核心要素之一。3A企业认证作为信用评级的最高等级,正在吸引越来越多企业的关注。究竟什么是3A企业认证?它为什么对企业如此重要?本文将深入探讨3A企业认证的独特魅力和巨大价值。 3A企…

Oracle AWR报告快速分析工具

一、背景 详细大家都遇到过需要分析Oracle AWR报告的场景,分析AWR对于专业DBA不是什么问题,但是对于一些业务后台研发确实有些困难,很多业务研发人员看的就是条目太多,无从下手。 不过最近我在使用墨天轮浏览国产信创数据库时&am…