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 包,且为新会话分配新端口号。
相关文章:
NAT简介
一、NAT 概念定义 NAT(Network Address Translation,网络地址转换)是一种将私有 IP 地址转换为公有 IP 地址的技术。 允许一个组织内部使用私有 IP 地址的网络通过少量的公有 IP 地址连接到互联网。实现了私有网络与外部网络的通信…...
联想凌拓 NetApp AFF C250 全闪存存储助力丰田合成打造数据新“引擎”
联想凌拓 NetApp AFF C250全闪存存储助力丰田合成打造数据新“引擎” 丰田合成(张家港)科技有限公司(以下简称“丰田合成”)于2003年12月成立,坐落在中国江苏省张家港市保税区中华路113号,是日本丰田合成株…...
红队技巧:仿冒Windows登录
Metasploit框架:phish_windows_credentials Metasploit带有内置的后期漏洞利用功能,可帮助我们完成任务。由于它是后渗透的模块,因此只需要输入会话即可: use post/windows/gather/phish_windows_credentials set session 1 …...
821. 字符的最短距离 - 力扣
1. 题目 给你一个字符串 s 和一个字符 c ,且 c 是 s 中出现过的字符。 返回一个整数数组 answer ,其中 answer.length s.length 且 answer[i] 是 s 中从下标 i 到离它 最近 的字符 c 的 距离 。 两个下标 i 和 j 之间的 距离 为 abs(i - j) ,…...
BI工具如何为金融行业带来变革?金融行业营销管理策略大揭秘
当今数字化时代,金融行业正经历着前所未有的变革。随着大数据、人工智能、区块链等新兴技术的兴起,金融机构正面临着重新定义服务模式、风险管理和客户体验的挑战。商业智能(BI)作为这一变革的关键驱动力,已经成为金融…...
操作系统 - 计算机系统概述
事前提一嘴 室友考完研了,下一年就是我了,真不想和他们一起考,压力太大了,这里分享一点笔记吧 采用王道考研的书以及视频,去掉了一些书上的废话,加上了视频中的重点,最后总结出来的 如有侵权&a…...
[论文笔记]REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS
引言 今天带来一篇经典论文REACT: SYNERGIZING REASONING AND ACTING IN LANGUAGE MODELS的阅读笔记,论文中文意思是 在语言模型中协同推理和行动。 虽然大型语言模型(LLMs)在语言理解和互动决策任务中展现出强大的能力,但它们在推理(例如思维链提示)和…...
[]下标的意义
数组: int array[10]; array[0]获取的是值,还是引用? std::map<int,string> m_map; m_map[0]返回的是引用还是值,还是指针。 #include <iostream> #include <map> #include <vector> #include <al…...
去重复记录和排序——kettle开发09
一、去除重复记录 去除重复记录,就是将数据流中的数据进行字段比较,从而去掉重复值的过程。去除重复记录的前提是需要将数据流中的数据进行排序,然后再进行去重操作。 去除重复记录的逻辑是,如下图,我们将需要比较的…...
中创算力与中国移动初步达成战略合作意向,共同构建智能生态圈!
2024年5月14日,为进一步深化合作,促进业务共同发展,实现双方优势互补。中国移动云能力中心高级专家、郑州移动总经理助理邵根波、管城分公司政企部经理张文孟、航海东路分局张旭红莅临中创算力。中创董事长许伟威、副总经理杨光、技术总监刘朝…...
基础—SQL—DML(数据操作语言)插入数据
一、介绍 分类全称说明DMLData Manipulation Language数据操作语言。用来对数据库表中的数据进行增删改(插入、删除、修改) 则增、删、改是三个操作也就对应着三个关键字,分别是: 添加数据:( INSERT )修改数据&#…...
【改變,是面對的開始】
改變,不是為了逃避無法解決的困境,而是為了面對心靈深處最懼怕的聲音。 她離開宛如人間天堂的義大利,轉往物質相對匱乏的印度,想藉由清修的方式,理清混亂的內在,重新與自己對話。 赫然發現,認…...
AI大模型实现德语口语练习
利用AI大模型实现德语口语练习的应用需要整合多种技术和资源,以确保学生能够获得全面、互动和有效的学习体验。以下是实现德语口语练习应用的详细流程和技术要点。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 实现流程 …...
一文读懂npm i的命令以及作用
目录 1. 基本知识2. 常见用法 1. 基本知识 npm i 是 Node Package Manager (npm) 的一个命令,用于安装 Node.js 项目依赖的包 是 npm install 的简写形式,功能完全相同 详细解析 npm: npm 是 Node.js 的包管理工具,用于安装、共…...
You don‘t have enough free space或者no space left on device异常
1.磁盘空间不足 Linux安装软件显示 You dont have enough free space 或者docker拉镜像时,出现磁盘空间不足的情况 no space left on device 如果你是ubuntu系统。查看磁盘空间 df -h 多半是这个目录满了/dev/mapper/ubuntu--vg-ubuntu--lv 大多情况我们只希望扩…...
饮料添加剂新型褪色光照试验仪器太阳光模拟器
太阳光模拟器的定义和功能 太阳光模拟器是一种高科技设备,它可以模拟太阳光的光谱、光强和光照条件,用于实验室环境中对太阳能电池、光电器件以及其他需要太阳光条件的设备和材料进行评估。太阳光模拟器的主要功能包括模拟太阳光的光谱分布、辐照度、光…...
ElasticSearch - 删除已经设置的认证密码(7.x)
文章目录 Pre版本号 7.x操作步骤检查当前Elasticsearch安全配置停止Elasticsearch服务修改Elasticsearch配置文件删除密码重启Elasticsearch服务验证配置 小结 Pre Elasticsearch - Configuring security in Elasticsearch 开启用户名和密码访问 版本号 7.x ES7.x 操作步骤 …...
9.4 Go语言入门(运算符)
Go语言入门(运算符) 目录三、运算符1. 算术运算符2. 关系运算符3. 逻辑运算符4. 位运算符5. 赋值运算符6. 其他运算符7. 运算符优先级 目录 Go 语言(Golang)是一种静态类型、编译型语言,由 Google 开发,专注…...
CLIP 源码分析:simple_tokenizer.py
tokenizer的含义 from .clip import *引入头文件时为什么有个. 正文 import gzip import html import os from functools import lru_cacheimport ftfy import regex as re# 上面的都是头文件# 这段代码定义了一个函数 default_bpe(),它使用了装饰器 lru_cache()。…...
AWS安全性身份和合规性之Shield
shield:盾(牌);(保护机器和操作者的)护罩,防护屏,挡板;屏障;保护物;(警察的)盾形徽章;保护人;掩护物;盾形纹徽;盾形奖牌; AWS Shield是一项AWS托管的DDoS(Distributed Denial of Service,分布式…...
大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
【机器视觉】单目测距——运动结构恢复
ps:图是随便找的,为了凑个封面 前言 在前面对光流法进行进一步改进,希望将2D光流推广至3D场景流时,发现2D转3D过程中存在尺度歧义问题,需要补全摄像头拍摄图像中缺失的深度信息,否则解空间不收敛…...
Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...
【HTTP三个基础问题】
面试官您好!HTTP是超文本传输协议,是互联网上客户端和服务器之间传输超文本数据(比如文字、图片、音频、视频等)的核心协议,当前互联网应用最广泛的版本是HTTP1.1,它基于经典的C/S模型,也就是客…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
技术栈RabbitMq的介绍和使用
目录 1. 什么是消息队列?2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...
SiFli 52把Imagie图片,Font字体资源放在指定位置,编译成指定img.bin和font.bin的问题
分区配置 (ptab.json) img 属性介绍: img 属性指定分区存放的 image 名称,指定的 image 名称必须是当前工程生成的 binary 。 如果 binary 有多个文件,则以 proj_name:binary_name 格式指定文件名, proj_name 为工程 名&…...
