NAT和NAPT的介绍

一、NAT的介绍以及作用

二、NAPT的介绍以及作用

三、NAT vs NAPT


一、NAT的介绍以及作用

1.1 NAT的介绍

        NAT(Network Address Translation)是一种广泛应用于互联网的技术,主要用于解决IPv4地址耗尽问题,同时提供网络安全和网络管理功能。它通过将私有网络内部的设备地址转换为公共网络地址,使多个内部设备共享单个公网IP,显著提升了IP地址的利用率

1.2 为什么要有NAT

        IPv4 是一个32位的整数,最多可以表达40亿多的IP地址,相对于全球众多的需要联网的设备,ip地址不够用。IPv6可以解决IP不够用的问题,但目前的众多网络设备广泛支持IPv4。

1.3 NAT的核心原理

1. 基本思想

  • 私有网络:企业/家庭内部使用非公网IP段(如192.168.x.x、10.x.x.x、172.16.x.x至172.31.x.x)。
  • 公网IP:全球唯一的IPv4地址,用于与互联网通信。
  • NAT设备(如路由器、防火墙)负责在数据包转发时进行地址转换。

2. 工作流程

  • 入站流量:外部请求到达NAT设备,根据目标端口和协议映射到内部设备的私网IP。
  • 出站流量:内部设备发起请求时,NAT设备将私网IP替换为公网IP,并记录映射关系(如端口)。
  • 数据包转发:经转换后的数据包通过公网路由至目标,返回时NAT设备反向映射,确保流量正确送达内部设备。

1.4 NAT的主要类型

1.4.1 静态NAT(Static NAT)
  • 一对一映射:固定私网IP对应唯一公网IP及端口。
  • 典型场景:Web服务器对外提供服务,需稳定公网IP访问。

1.4.2 动态NAT
  • 临时映射:从公网IP池中动态分配未使用的端口和IP组合。
  • 适用场景:有限公网IP需支持多个内部设备间歇性上网。
  • 限制:公网IP数量决定并发连接数。

动态NAT基于地址池来实现私有地址与公有地址的转换。

当内部主机A和B需要访问公网IP时,网关RTA会从配置的公网地址池中选取一个未使用的公网ip作为映射。每台主机都会分配到地址池中的一个唯一地址。当不需要此连接时,对应的地址映射会被删除,公网地址也恢复到地址池待用。网关收到回复报文后,也会执行静态地址转换。

动态NAT中的地址池用尽后,只能等待被占用的公用IP被释放后,其他主机才能使用它访问公网

1.5 NAT的应用场景

1. IPv4地址短缺

  • 全球IPv4地址耗尽(约43亿),NAT允许多设备共享单一公网IP。

2. 网络安全

  • 隐藏内部网络拓扑,抵御外部攻击(如DDoS、端口扫描)。

3. 灵活扩展

  • 无需重新分配公网IP即可新增内部设备。

4. 远程访问

  • VPN结合NAT实现安全远程连接(如企业内网访问)。


二、NAPT的介绍以及作用

2.1 NAPT的介绍

        NAPT(网络地址端口转换)是NAT(网络地址转换)技术的扩展,不仅转换网络地址(IP),还通过端口映射区分不同内部设备。它是现代网络中实现多设备共享单一公网IP的核心技术,广泛应用于家庭宽带、企业内网和云服务。

2.2 NAPT的核心概念

1. 定义

  • NAPT将私有网络中的多个设备(不同IP或相同IP+不同端口)映射到公网IP的唯一端口组合,通过IP+端口的双重转换实现流量区分。

2. 关键技术

  • IP转换:私有IP → 公网IP。
  • 端口映射:私有端口 → 公网端口(如TCP/UDP端口号)。
  • 状态跟踪:记录每个映射关系的会话状态(如TCP三次握手、UDP连接)。

2.3 NAPT的工作原理

1. 数据包处理流程

  • 出站流量:
  1. 私有设备发起请求(如192.168.1.2:80→google.com:80)。
  2. NAPT设备分配公网端口(如203.0.113.1:65432)。
  3. 数据包头部修改为公网IP+端口,发送至互联网。
  • 入站流量:
  1. 互联网返回数据包(目标203.0.113.1:65432)。
  2. NAPT设备根据端口反向查找私有设备(192.168.1.2:80)。
  3. 数据包还原为私有网络格式,转发至目标设备。

2. 状态表(State Table)
NAPT维护会话状态表,记录以下信息:

  • 私有IP + 私有端口 → 公网IP + 公网端口
  • 协议类型(TCP/UDP)
  • TCP序列号(仅TCP)
  • 生存时间(TTL)

示例:

2.4 NAPT的类型

1. 基于端口的NAPT

  • 动态端口分配:为每个内部设备分配唯一公网端口(如TCP 1024-65535)。
  • 典型场景:家庭路由器、小型企业网络。

2. 基于协议的NAPT

  • 按协议分流:如TCP流量走80端口,UDP流量走53端口。
  • 适用场景:混合协议服务(如HTTP+DNS)。

3. 基于VPN的NAPT

  • 隧道封装:在VPN隧道中嵌入NAPT(如OpenVPN结合端口转发)。
  • 用途:远程办公、安全访问内网资源。

2.5 NAPT的应用场景

1. 家庭宽带

  • 多台手机、电脑共享一个公网IP,通过路由器自动分配端口。

2. 企业内网

  • 隐藏内部服务器IP(如数据库、OA系统),仅暴露必要端口。

3. 云服务器

  • AWS/ECS实例通过弹性公网IP(EIP)结合NAPT管理多个容器服务。

4. 网络安全

  • 防止端口扫描(外部无法探测内部设备端口)。

2.6 NAPT的优缺点


三、NAT vs NAPT

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

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

相关文章

VSCode通过SSH免密远程登录Windows服务器

系列 1.1 VSCode通过SSH远程登录Windows服务器 1.2 VSCode通过SSH免密远程登录Windows服务器 文章目录 系列1 准备工作2 本地电脑配置2.1 生成密钥2.2 VS Code配置密钥 3. 服务端配置3.1 配置SSH服务器sshd_config3.2 复制公钥3.3 配置权限(常见问题)3.…

大模型训练全流程深度解析

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。https://www.captainbed.cn/north 文章目录 1. 大模型训练概览1.1 训练流程总览1.2 关键技术指标 2. 数据准备2.1 数据收集与清洗2.2 数据…

export、export default 和 module.exports 深度解析

文章目录 1. 模块系统概述1.1 模块系统对比1.2 模块加载流程 2. ES Modules2.1 export 使用2.2 export default 使用2.3 混合使用 3. CommonJS3.1 module.exports 使用3.2 exports 使用 4. 对比分析4.1 语法对比4.2 使用场景 5. 互操作性5.1 ES Modules 中使用 CommonJS5.2 Com…

AI芯片设计

目的:未来的时代,一定会是AI的时代,那么,AI时代的三个重要组成部分,我要参与其中之一! 参考视频:AI芯片设计第一讲_哔哩哔哩_bilibili 端处理 云端

动手学深度学习:CNN和LeNet

前言 该篇文章记述从零如何实现CNN,以及LeNet对于之前数据集分类的提升效果。 从零实现卷积核 import torch def conv2d(X,k):h,wk.shapeYtorch.zeros((X.shape[0]-h1,X.shape[1]-w1))for i in range(Y.shape[0]):for j in range(Y.shape[1]):Y[i,j](X[i:ih,j:jw…

【开源代码解读】AI检索系统R1-Searcher通过强化学习RL激励大模型LLM的搜索能力

关于R1-Searcher的报告: 第一章:引言 - AI检索系统的技术演进与R1-Searcher的创新定位 1.1 信息检索技术的范式转移 在数字化时代爆发式增长的数据洪流中,信息检索系统正经历从传统关键词匹配到语义理解驱动的根本性变革。根据IDC的统计…

使用Node的http模块创建web服务,给客户端返回html页面时,css失效的根本原因(有助于理解http)

最近正在尝试使用node写后端,使用node创建http服务的时候,碰到了这样的一个问题: 这是我的源代码: import { createServer } from http import { join, dirname, extname } from path import { fileURLToPath } from url import…

JVM 2015/3/15

定义:Java Virtual Machine -java程序的运行环境(java二进制字节码的运行环境) 好处: 一次编写,到处运行 自动内存管理,垃圾回收 数组下标越界检测 多态 比较:jvm/jre/jdk 常见的JVM&…

IP风险度自检,互联网的安全“指南针”

IP地址就像我们的网络“身份证”,而IP风险度则是衡量这个“身份证”安全性的重要指标。它关乎着我们的隐私保护、账号安全以及网络体验,今天就让我们一起深入了解一下IP风险度。 什么是IP风险度 IP风险度是指一个IP地址可能暴露用户真实身份或被网络平台…

【鸿蒙】封装日志工具类 ohos.hilog打印日志

封装一个ohos.hilog打印日志 首先要了解hilog四大日志类型: info、debug、warm、error 方法中四个参数的作用 domain: number tag: string format: string ...args: any[ ] 实例: //普通的info日志,使用info方法来打印 //第一个参数 : 0x0…

走路碎步营养补充贴士

走路碎步,这种步伐不稳的现象,在日常生活中并不罕见,特别是对于一些老年人或身体较为虚弱的人来说,更是一种常见的行走状态。然而,这种现象可能不仅仅是肌肉或骨骼的问题,它还可能是身体在向我们发出营养缺…

Python软件和搭建运行环境

目录 一、Python安装全流程(Windows/Mac/Linux) 1. 下载官方安装包 2. 详细安装步骤(以Windows为例) 3. 环境变量配置(Mac/Linux) 二、虚拟环境管理(关键!) 为什么需…

【蓝桥杯】省赛:神奇闹钟

思路 python做这题很简单,灵活用datetime库即可 code import os import sys# 请在此输入您的代码 import datetimestart datetime.datetime(1970,1,1,0,0,0) for _ in range(int(input())):ls input().split()end datetime.datetime.strptime(ls[0]ls[1],&quo…

RabbitMQ (Java)学习笔记

目录 一、概述 ①核心组件 ②工作原理 ③优势 ④应用场景 二、入门 1、docker 安装 MQ 2、Spring AMQP 3、代码实现 pom 依赖 配置RabbitMQ服务端信息 发送消息 接收消息 三、基础 work Queue 案例 消费者消息推送限制(解决消息堆积方案之一&#…

HW基本的sql流量分析和wireshark 的基本使用

前言 HW初级的主要任务就是看监控(流量) 这个时候就需要我们 了解各种漏洞流量数据包的信息 还有就是我们守护的是内网环境 所以很多的攻击都是 sql注入 和 webshell上传 (我们不管对面是怎么拿到网站的最高权限的 我们是需要指出它是…

camellia redis proxy v1.3.3对redis主从进行读写分离(非写死,自动识别故障转移)

1 概述 camellia-redis-proxy是一款高性能的redis代理(https://github.com/netease-im/camellia),使用netty4开发,主要特性如下: 支持代理到redis-standalone、redis-sentinel、redis-cluster。支持其他proxy作为后端…

贪吃蛇小游戏-简单开发版

一、需求 本项目旨在开发一个经典的贪吃蛇游戏,用户可以通过键盘控制蛇的移动方向,让蛇吃掉随机出现在游戏区域内的食物,每吃掉一个食物,蛇的身体长度就会增加,同时得分也会相应提高。游戏结束的条件为蛇撞到游戏区域的…

使用 Docker 部署前端项目全攻略

文章目录 1. Docker 基础概念1.1 核心组件1.2 Docker 工作流程 2. 环境准备2.1 安装 Docker2.2 验证安装 3. 项目配置3.1 项目结构3.2 创建 Dockerfile 4. 构建与运行4.1 构建镜像4.2 运行容器4.3 访问应用 5. 使用 Docker Compose5.1 创建 docker-compose.yml5.2 启动服务5.3 …

接口自动化测试用例

Post接口自动化测试用例 Post方式的接口是上传接口,需要对接口头部进行封装,所以没有办法在浏览器下直接调用,但是可以用Curl命令的-d参数传递接口需要的参数。当然我们还以众筹网的登录接口为例,讲解post方式接口的自动化测试用…

使用WireShark解密https流量

概述 https协议是在http协议的基础上,使用TLS协议对http数据进行了加密,使得网络通信更加安全。一般情况下,使用WireShark抓取的https流量,数据都是加密的,无法直接查看。但是可以通过以下两种方法,解密抓…