【Router】路由器中NAT、NAPT、NPT是什么?

参考链接

NAT vs. NAPT: What’s the Difference?

IPv6 Network Prefix Translation (NPt) | pfSense Documentation (netgate.com)

趣谈NAT/NAPT的原理,这篇不可不读! - 知乎 (zhihu.com)

NAT (Network Address Translation) 

NAT说明

        NAT(网络地址转换)的功能主要是通过修改 IP 数据包标头中的网络地址信息来重新映射 IP 地址。它广泛用于路由器中,将私有地址转换为单个公共地址,确保私有网络内多个设备的无缝互联网连接。NAT 是一种工具,用于在每个设备的唯一公有 IP 不切实际或不必要的情况下保留公有 IP 地址。

         NAT 更侧重于转换 IP 地址,而不太关心通过其的流量的具体情况。它在操作方面更简单,并保持了将私有网络地址转换为公共网络地址以进行 Internet 通信的基本要求。NAT 在个人会话差异化不是优先事项的网络中非常有效。

        NAT 的基本原理是转换一对一或多对一 IP 地址。这意味着它可以将多个私有地址转换为单个公共地址,也可以将特定的公共地址分配给特定的私有地址。这是网络中的一项基本技术,可在使用有限的公有 IP 地址池的同时促进外部访问。

NAT工作原理

  • 当内网主机需要访问公网设备时,NAT的设备需要从地址池中挑选一个空闲的公网IP地址,建立与内网主机报文源ip地址间的一个NAT转换表项(正反向)。
  • 根据这个表项然后把报文的私有源IP改成公网IP然后发送出去
  • NAT设备收到公网主机的回应报文后,根据其目的IP地址查找反向的NAT表项,依据查表结果将报文转换后向内网主机的发送

NAPT (Network Address Port Translation)     

NAPT介绍  

         NAPT(网络地址端口转换)是 NAT 的一个子类型,它还通过将端口号与 IP 地址一起转换来扩展此功能。这意味着 NAPT 不仅将私有 IP 地址转换为公共 IP 地址,而且还跟踪端口号以区分多个 Internet 会话。它特别适用于通过单个公有 IP 处理大量设备的流量,管理地址和端口信息以促进互联网连接。

        另一方面,NAPT 更加复杂,因为它同时处理 IP 地址和端口号。这种复杂性允许对 Internet 流量进行更高效、更详细的管理,因为它可以通过使用不同的端口号处理来自单个 IP 地址的多个连接。NAPT 的附加转换层使其在复杂的网络场景中更加通用

       NAPT 的运作更加动态。它不仅执行 IP 地址转换,还修改端口号,从而实现多对多转换功能。NAPT 的这一功能使其能够管理和区分源自同一设备的多个会话或连接,从而更有效地处理复杂的网络流量场景。

       NAPT,网络端口地址转换,它是属于一种多对一的地址转换,它通过使用“ip地址+端口号”的形式进行转换,使多个内网的用户可以共用一个公网的IP地址来访问外网。

NAPT工作原理

  • 当内网主机需要访问公网设备时,NAT设备从地址池中选取一对空闲的“公网ip地址+端口号”,建立与内网报文“源ip地址+源端口号”间的NAPT转换表项(正反向)。
  • 根据表项把报文“源ip和源端口”改成“公网ip和端口”后转发出去。
  • NAT设备收到公网主机的回应报文后,根据其“目的IP地址+目的端口号”查找反向NAPT表项,依据查表结果将报文转换后向私网主机发送。

NAT实现主要包括: Easy IP、地址池NAT(NAPT). NAT Server和静态NAT/NAPT 

Easy IP

       Easy IP方式可以利用访问控制列表来控制哪些内部地址可以进行地址转换。Easy IP方式特别适合小型局域网访问Internet 的情况。这里的小型局域网主要指中小型网吧、小型办公室等环境.一般具有以下特点:内部主机较少、出接口通过拨号方式获得临时公网IP 地址以供内部主机访问Internet。

NAT Server

       当外网用户访问内网服务器时,NAT Server通过事先配置好的“公网IP地址+端口号”与“私网IP地址+端口号”间的映射关系,将服务器的“公网IP 地址+端口号”,根据映射关系替换成对应的“私网IP地址+端口号”。

静态NAT

       是指在进行NAT转换时,内部网络主机的IP 同公网IP 是- -对静态绑定的,静态NAT中的公网IP只会给唯一且固定的内网主机转换使用。

静态NAPT

        是指“内部网络主机的IP+协议号+端口号”同“公网IP+协议号+端口号”是一对一静态绑定的,静态NAPT中的公网IP可以为多个私网IP使用。

Network Prefix Translation (NPT)

       网络前缀转换(简称NPT)的工作方式类似于 1:1 NAT。NPT有几个用途,但许多人质疑它的实际用途。跟 NPT“私有” IPv6 空间 () 可以在 LAN 上使用,并且可以 由 NPT转换为公共的路由 IPv6 前缀,因为它来来去去 一个 WAN。这种做法的效用是值得商榷的。一种用途是避免对 LAN 重新编号 如果外部提供商发生变化,但是由于任何外部查找 旧的前缀也必须进行调整,它的有用性可以是两种方式, 尤其是当配置必须考虑避免 VPN 隧道空间中的冲突时。

IPv6 NPT规则

ip6tables -t nat -A POSTROUTING -o eth0.99 -j NETMAP --to 2607:xxx::/64 -s fda3:xxx::/64
ip6tables -t nat -A PREROUTING -i eth0.99 -j NETMAP -d 2607:xxx::/64 --to fda3:xxx::/64

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

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

相关文章

成都睿明智科技有限公司电商服务可靠不?

在这个短视频风起云涌的时代,抖音不仅成为了人们娱乐消遣的首选平台,更是众多商家竞相追逐的电商新蓝海。成都睿明智科技有限公司,作为抖音电商服务领域的佼佼者,正以其独到的洞察力和专业的服务,助力无数品牌在这片沃…

微信小程序:miniprogram-ci自动打包工具使用介绍以及支持配置环境变量、jekins打包、taro、uni-app三方工具

微信小程序:miniprogram-ci自动打包工具使用介绍以及支持配置环境变量、jekins打包、taro、uni-app三方工具 背景介绍 一直都是本地电脑运行微信开发者工具打包上传。多项目中新老版本对node版本要求不一致,老是切来切去。而且同一个人开发上传需要打包…

pandas-使用技巧

pandas-使用技巧 简单技巧 仅个人笔记使用,感谢点赞关注 简单技巧 pd.to_dict():Dataframe格式数据转字典数据pd.dropna():去nan值& | ~:pd逻辑运算符pd.isnan():判断是否为nan值pd.concat:多个pd拼接…

李宏毅机器学习2022-HW7-BERT-Question Answering

文章目录 TaskBaselineMediumStrongBoss Code Link Task HW7的任务是通过BERT完成Question Answering。 数据预处理流程梳理 数据解压后包含3个json文件:hw7_train.json, hw7_dev.json, hw7_test.json。 DRCD: 台達閱讀理解資料集 Delta Reading Comprehension …

openpnp - 底部相机视觉识别CvPipeLine的参数bug修正

文章目录 openpnp - 底部相机视觉识别的CvPipeLine的参数bug概述笔记openpnp的视觉识别参数的错误原因备注END openpnp - 底部相机视觉识别的CvPipeLine的参数bug 概述 底部相机抓起一个SOD323的元件,进行视觉识别。 识别出的矩形错了,是一个很长的长方…

Qt_软件添加版本信息

文章内容: 给生成的软件添加软件的版权等信息 #include <windows.h> //中文的话增加下面这一行 #pragma code_page(65001)VS_VERSION_INFO VERSIONINFO

TEI text-embeddings-inference文本嵌入模型推理框架

参看: https://github.com/huggingface/text-embeddings-inference#docker 文本嵌入模型榜单 https://huggingface.co/spaces/mteb/leaderboard bge模型下载 https://huggingface.co/BAAI/bge-m3/tree/main export HF_ENDPOINT=https://hf-mirror.comhuggingface-cli dow…

STM32-HAL库 - MAX30102心率血氧传感器 —— 2024.10.15

一、教程简介 本教程使用CubeMX配合Keil5编写代码&#xff0c;带你10分钟拿下MAX30102。在官方例程的基础上进行移植和封装&#xff0c;测量数据准确。采用模拟I2C&#xff0c;任意三个引脚均可驱动。 二、MAX30102简介 MAX30102是一个集成的脉搏血氧仪和心率监测仪生物传感器…

Tortoise SVN 安装汉化教程(乌龟SVN)

1.首先下载 去官网下载 如果下载比较慢的&#xff0c;链接自取 https://pan.quark.cn/s/cb6f2eee3f90 2. 安装Tortoise SVN 无脑next到完成 最后到桌面右键 你就发现svn出来了&#xff0c;但是是英文的&#xff01;&#xff01;&#xff01;&#xff01; 像我这种英文不好的…

流体力学笔记

目录 1、名词2、湍流与涡流3 涡激振动4 压力面与吸力面参考&#xff1a;[空气动力学的“他山之石”](https://zhuanlan.zhihu.com/p/412542513) 1、名词 转列&#xff1a;transition 涡脱落&#xff1a;vortex shedding 涡分离&#xff1a;vortex rupture 气动噪声&#xff1a…

【java Web如何开发?】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

rel,npt时间服务器

服务器端配置 配置文件/etc/chrony.conf 开放端口 查看123端口是否开放 关闭防火墙 客户端配置 配置文件/etc/chrony.conf 重启文件和查看是否成功 注意事项要在ping通下实现&#xff0c;要是能ping通配置好了还是不行可以查看防火墙是否关闭

EMCMO--多任务优化求解约束多目标问题

EMCMO–多任务优化求解约束多目标问题 title&#xff1a; An Evolutionary Multitasking Optimization Framework for Constrained Multi-objective Optimization Problems author&#xff1a; Kangjia Qiao, Kunjie Yu, BoyangQu, Jing Liang, Hui Song, and Caitong Yue. …

Redis7 数据类型

Redis7 数据类型 文章目录 Redis7 数据类型1. Redis键&#xff08;Key&#xff09;2. Redis字符串&#xff08;String&#xff09;3. Redis列表&#xff08;List&#xff09;4. Redis哈希表&#xff08;Hash&#xff09;5. Redis集合&#xff08;Set&#xff09;5.1 常用操作5.…

Atlas800昇腾服务器(型号:3000)—驱动与固件安装(一)

服务器配置如下&#xff1a; CPU/NPU&#xff1a;鲲鹏 CPU&#xff08;ARM64&#xff09;A300I pro推理卡 系统&#xff1a;Kylin V10 SP1【下载链接】【安装链接】 驱动与固件版本版本&#xff1a; Ascend-hdk-310p-npu-driver_23.0.1_linux-aarch64.run【下载链接】 Ascend-…

Vue3学习:vite项目中图片不能显示,报错 require is not defined

今天做了一个案例“给你喜欢的人送花”&#xff0c;如果喜欢谁&#xff0c;就给谁送花&#xff0c;最多可以送5朵。运行效果如下。 这个项目是使用 npm create vitelatest 命令创建的。 包括2个组件&#xff1a; 根组件App.vue子组件HelloVote.vue。 目录结构如图所示&#x…

秋招面试题记录_半结构化面试

c八股(可能问的多一点) 1.简单说说C11语法特性 答&#xff1a; 1.auto以及decltype自动类型推导&#xff0c;避免手动声明复杂类型&#xff0c;减少冗长代码提升了可读性和安全性。 2.智能指针 自动释放内存 (具体说说) 有shared和unique 差异主要体现在所有权、内存开销、…

Java项目-基于springboot框架的校园在线拍卖系统项目实战(附源码+文档)

作者&#xff1a;计算机学长阿伟 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、ElementUI等&#xff0c;“文末源码”。 开发运行环境 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/…

Java的walkFileTree方法用法【FileVisitor接口】

在Java旧版本中遍历文件系统只能通过File类通过递归来实现&#xff0c;但是这种方法不仅消耗资源大而且效率低。 NIO.2的Files工具类提供了两个静态工具方法walk()和walkFileTree()可用来高效并优雅地遍历文件系统。walkFileTree()功能更强&#xff0c;可自定义实现更多功能&am…

(二十)、从宿主机访问 k8s(minikube) 发布的 redis 服务

文章目录 1、环境准备2、具体操作2.1、启动 minikube (start/stop)2.2、准备 redis-deployment.yaml2.3、执行 redis-deployment.yaml2.3.1、查看 pod 信息和日志 2.4、检查部署和服务状态2.4.1、如果需要删除 3、查看 IP 的几个命令3.1、查看IP的几个命令3.2、解读3.3、宿主机…