NAT简介

一、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.mzph.cn/pingmian/17284.shtml

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

相关文章

Angular安装与基础语法

安装Angular cli npm i -g angular-cli 创建项目 npm new project_name(项目名称) 启动项目 cd project_name(j进入新创建的项目) ng serve --open 创建组件 ng g c xxx 会在根组件的统计生成一个组件xxx文件夹,比如ng g c hello 就会生成一个hello组件文件…

夜骑,是探索城市的另一种维度,是与自我对话的静谧时光

月光下的骑行浪漫主义者 想象一下,当白日的喧嚣退去,城市的霓虹开始闪烁,你跨上心爱的自行车,迎着凉爽的晚风,穿梭于灯火阑珊之中。夜骑,不仅仅是一场运动,更是一种逃离日常、探索未知的冒险。但…

【Ambari】Docker 安装Ambari 大数据单机版本

目录 一、前期准备 1.1 部署 docker 1.2 部署 docker-compose 1.3 版本说明 二 、镜像构建启动 2.1 系统镜像构建 2.2 安装包源镜像构建 2.3 kdc镜像构建 2.4 集群安装 2.5 容器导出为镜像 三、Ubuntu环境安装测试 3.1 环境准备 3.2 集群容器启动 一、前期准备 1.…

git多人开发,不用merge的操作方法,阿里codeup

阿里云效 Codeup 是阿里云提供的一款代码托管平台,它集成了代码仓库管理、代码审查、持续集成等功能,非常适合团队协作开发。 通过 Codeup 的合并申请(Merge Request,MR)功能,可以方便地进行代码合并和审查…

如何在OrangePi AIpro智能小车上实现安全强化学习算法

随着人工智能和智能移动机器人的广泛应用,智能机器人的安全性和高效性问题受到了广泛关注。在实际应用中,智能小车需要在复杂的环境中自主导航和决策,这对算法的安全性和可靠性提出了很高的要求。传统的强化学习算法在处理安全约束时存在一定…

享受当下,还是留待未来?一项fMRI与眼动追踪技术的联合研究

摘要 时间贴现(temporal discount)是指个体对奖励的估计会随着时间流逝而下降的心理现象。具体而言,当获得奖励的时间以日期(日期条件;例如,2023年6月8日)而不是延迟(延迟条件;例如,30天)呈现时,贴现率较低…

免费,Python蓝桥杯等级考试真题--第14级(含答案解析和代码)

Python蓝桥杯等级考试真题–第14级 一、 选择题 答案:B 解析:键为‘B’对应的值为602,故答案为B。 答案:A 解析:字典的符合为花括号,先键后值,故答案为A。 答案:C 解析&#xff1a…

Stable Diffusion 字体和场景结合【把四季藏在海里】

把四季藏在海里,话不多说,上教程。 一、花瓣找字 打开花瓣找下字,也可以自己做,我不会,谢谢。本文用到的字,版权归原作者所有。 白底黑字:那么就是浪花占主要部分,字就是海的效果&…

【改进】YOLOv8 AND YOLOv9 总目录

说明:本专栏为YOLOV8和YOLOV9的使用以及改进的方法。平时比较忙,只能随缘回答问题哈,谨慎订阅! 💛 💙 💜 ❤️ 💚 💛 💙 💜 ❤️ 💚 &…

sdut java lab 7.1(法二好理解)

7-1 sdut-JAVA-Pig Latin 分数 12 全屏浏览 切换布局 作者 马新娟 单位 山东理工大学 Write a program that requests a word as input, translates the word into Pig Latin and outputs the word input and its equivalent in Pig Latin. The rules for translating a …

C++:STL容器的学习-->string

C:STL容器的学习-->string 1. 构造方法2. string的赋值操作3. string字符串的拼接4. string 查找和替换5. string字符串的比较6. string字符存取7. string 插入和删除8. string截取 需要添加头文件#include <string> 1. 构造方法 string() 创建空的字符串 string(c…

Cordova 环境部署,将 H5 打包为 Android App

Cordova 环境部署&#xff0c;将 H5 打包为 Android App 一、环境配置 1、JDK 环境变量 JAVA_HOME%JAVA_HOME%\bin 2、Android SDK 环境变量 ANDROID_HOMEANDROID_SDK_ROOT%ANDROID_HOME%\build-tools%ANDROID_HOME%\tools%ANDROID_HOME%\platform-tools 3、Node 环境…

C++学习/复习6---内存管理(数据的位置/大小)/new、delete/内存相关面试题(malloc与new/内存泄漏)

一、内存中区域 1.不同数据的存储位置 2.数据占用内存大小 二、动态内存函数 三、new与delete 1.操作内置类型 2.操作自定义类型 四、operator new与operator delete 1.底层源码&#xff08;malloc/free&#xff09; 2.内置/自定义与构造和析构 3.举例 五、定位new表达式 1.举…

使用 Django 和 RabbitMQ 构建高效的消息队列系统

文章目录 RabbitMQ 简介Django 中使用 RabbitMQ总结与拓展 在现代的 Web 应用程序开发中&#xff0c;构建一个高效的消息队列系统变得越来越重要。使用消息队列可以帮助我们解耦系统中不同模块的任务&#xff0c;并提高系统的性能和可扩展性。本文将介绍如何结合 Django 和 Rab…

5.27背单词

formula 公式 conviction 定罪 mischief 恶作剧 counsel 律师 overt 明显的 contagious 有传染性的 dwelling 住所 subtle 不明显的 hazard 危险 vicinity 附近地区 host 大量 dinosaur 恐龙 glamor 魅力 slack 松弛的 gigantic 巨大的 exquisite 精致的 bloody 血的 disastrou…

LeetCode994腐烂的橘子

题目描述 在给定的 m x n 网格 grid 中&#xff0c;每个单元格可以有以下三个值之一&#xff1a;值 0 代表空单元格&#xff1b;值 1 代表新鲜橘子&#xff1b;值 2 代表腐烂的橘子。每分钟&#xff0c;腐烂的橘子 周围 4 个方向上相邻 的新鲜橘子都会腐烂。返回 直到单元格中没…

C++ std::reference_wrapper:让引用更强大

std::reference_wrapper 的通俗易懂解释 一、简介二、std::reference_wrapper 的初衷三、常用示例3.1、与 make_pair 和 make_tuple 一起使用3.2、引用容器3.3、通过 std::thread 按引用传递参数给启动函数3.4、引用作为类成员3.5、按引用传递函数对象3.6、与绑定表达式一起使用…

重新安装 Windows 10/11 后如何恢复丢失的数据?

“嗨&#xff0c;我的 Windows 10/11 崩溃了&#xff0c;所以我不得不重新安装它。我使用 USB 可启动驱动器重新安装了操作系统。但是&#xff0c;重新安装后&#xff0c;C 盘上的所有先前文件都丢失了。有什么方法可以恢复丢失的文件吗&#xff1f;” - 孙雯 在大多数情况下&…

软考 系统架构设计师系列知识点之SOME/IP与DDS(3)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之SOME/IP与DDS&#xff08;2&#xff09; 本文内容参考&#xff1a; 车载以太网 - SOME/IP简介_someip-CSDN博客 https://zhuanlan.zhihu.com/p/369422441 什么是SOME/IP?_someip-CSDN博客 SOME/IP 详解系列&#…